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
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