Revision 44262 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/featureform/swing/impl/dynformfield/selectableforeingkey/JDynFormFieldSelectableForeingKeyFactory.java

View differences:

JDynFormFieldSelectableForeingKeyFactory.java
24 24
package org.gvsig.featureform.swing.impl.dynformfield.selectableforeingkey;
25 25

  
26 26
import org.apache.commons.lang3.StringUtils;
27
import static org.gvsig.fmap.dal.DataManager.DAL_FOREING_CODE;
28
import static org.gvsig.fmap.dal.DataManager.DAL_FOREING_LABEL;
29
import static org.gvsig.fmap.dal.DataManager.DAL_FOREING_TABLE;
30
import org.gvsig.tools.ToolsLocator;
27
import org.gvsig.featureform.swing.JFeaturesForm;
28
import org.gvsig.fmap.dal.DataManager;
29
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
30
import org.gvsig.fmap.dal.feature.FeatureType;
31
import org.gvsig.fmap.dal.feature.ForeingKey;
31 32
import org.gvsig.tools.dataTypes.DataTypes;
32 33
import org.gvsig.tools.dynform.DynFormFieldDefinition;
34
import org.gvsig.tools.dynform.JDynForm;
33 35
import org.gvsig.tools.dynform.JDynFormField;
34 36
import org.gvsig.tools.dynform.spi.DynFormSPILocator;
35 37
import org.gvsig.tools.dynform.spi.DynFormSPIManager;
36 38
import org.gvsig.tools.dynform.spi.dynformfield.AbstractJDynFormFieldFactory;
37
import org.gvsig.tools.dynobject.DynObjectManager;
38 39

  
39 40
public class JDynFormFieldSelectableForeingKeyFactory extends AbstractJDynFormFieldFactory {
40 41

  
41 42
    public JDynFormFieldSelectableForeingKeyFactory() {
42
        super("FOREINGKEY_SELECTABLE", DataTypes.UNKNOWN, "DAL.SelectableForeingKey");
43
        super(
44
                "FOREINGKEY_SELECTABLE", 
45
                DataTypes.UNKNOWN, 
46
                null
47
        );
43 48
    }
44 49

  
45 50
    @Override
......
53 58
    }
54 59

  
55 60
    @Override
56
    public boolean isApplicableTo(DynFormFieldDefinition fieldDefinition) {
57
        if (StringUtils.equalsIgnoreCase("DAL.SelectableForeingKey", fieldDefinition.getSubtype())) {
58
            return true;
61
    public int getPriority() {
62
        return 500;
63
    }
64
    
65
    @Override
66
    public boolean isApplicableTo(JDynForm.DynFormContext context, DynFormFieldDefinition fieldDefinition) {
67
        if( !(context instanceof JFeaturesForm.FeaturesFormContext) ) {
68
            return false;
59 69
        }
60
        return false;
70
        FeatureType featureType = ((JFeaturesForm.FeaturesFormContext)context).getFeatureType();
71
        FeatureAttributeDescriptor attribute = featureType.getAttributeDescriptor(fieldDefinition.getName());
72
        if( attribute == null ) {
73
            return false;
74
        }
75
        ForeingKey foreingKey = attribute.getForeingKey();
76
        if( foreingKey==null ) {
77
            return false;
78
        }
79
        return foreingKey.isForeingKey() && foreingKey.isSelectable();
61 80
    }
62 81

  
63 82
    public static void selfRegister() {
64 83
        DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
65 84
        manager.registerDynFieldFactory(new JDynFormFieldSelectableForeingKeyFactory());
66
        DynObjectManager dynObjectManager = ToolsLocator.getDynObjectManager();
67
        dynObjectManager.registerTag(DAL_FOREING_CODE, "Part of a foreing key definition, store the field name in the referenced table.");
68
        dynObjectManager.registerTag(DAL_FOREING_TABLE, "Part of a foreing key definition, store the name of the referenced table.");
69
        dynObjectManager.registerTag(DAL_FOREING_LABEL, "Part of a foreing key definition, store an expression used to construct the label that identifies an entity in the referenced table.");
70 85
    }
71 86

  
72 87
}

Also available in: Unified diff