Statistics
| Revision:

svn-gvsig-desktop / 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 / DefaultJFeatureForm.java @ 44590

History | View | Annotate | Download (2.3 KB)

1 42775 jjdelcerro
2 42112 jjdelcerro
package org.gvsig.featureform.swing.impl;
3
4
import javax.swing.JComponent;
5
import org.gvsig.featureform.swing.JFeatureForm;
6
import org.gvsig.fmap.dal.DALLocator;
7
import org.gvsig.fmap.dal.feature.EditableFeature;
8
import org.gvsig.fmap.dal.feature.Feature;
9
import org.gvsig.fmap.dal.feature.FeatureStore;
10 42775 jjdelcerro
import org.gvsig.fmap.dal.feature.FeatureType;
11
import org.gvsig.fmap.dal.feature.FeatureTypeDefinitionsManager;
12 42112 jjdelcerro
import org.gvsig.tools.dynform.DynFormLocator;
13
import org.gvsig.tools.dynform.JDynForm;
14
import org.gvsig.tools.dynobject.DynClass;
15 42775 jjdelcerro
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17 42112 jjdelcerro
18
19 42775 jjdelcerro
public class DefaultJFeatureForm implements JFeatureForm {
20
    private static final Logger logger = LoggerFactory.getLogger(DefaultJFeatureForm.class);
21
22
    Feature feature;
23
    FeatureStore store;
24
    JDynForm form;
25
26 42489 jjdelcerro
    @Override
27 42112 jjdelcerro
    public JComponent asJComponent() {
28 42775 jjdelcerro
       return this.form.asJComponent();
29 42112 jjdelcerro
    }
30
31 42775 jjdelcerro
    public DefaultJFeatureForm() {
32
            this.feature = null;
33
        this.store = null;
34 42112 jjdelcerro
    }
35 44253 jjdelcerro
36
    @Override
37
    public FeatureStore getFeatureStore() {
38
        return store;
39
    }
40 42775 jjdelcerro
41
    @Override
42
    public void setStore(FeatureStore store) {
43 43362 jjdelcerro
        if( java.util.Objects.equals(this.store, store) ) {
44 42112 jjdelcerro
            return;
45
        }
46
        this.store = store;
47 42775 jjdelcerro
        if( store == null ) {
48
            this.form = null;
49
            return;
50 42112 jjdelcerro
        }
51 42489 jjdelcerro
        try {
52 42775 jjdelcerro
            FeatureType featureType = this.store.getDefaultFeatureType();
53
            FeatureTypeDefinitionsManager featureTypeDefinitionsManager = DALLocator.getFeatureTypeDefinitionsManager();
54
            DynClass dynClass = featureTypeDefinitionsManager.get(store,featureType);
55
            this.form = DynFormLocator.getDynFormManager().createJDynForm(dynClass);
56
        } catch (Exception ex) {
57
            logger.warn("Can't create form.",ex);
58
            throw new RuntimeException("Can't create form.",ex);
59 42489 jjdelcerro
        }
60
    }
61 42775 jjdelcerro
62 42489 jjdelcerro
    @Override
63 42775 jjdelcerro
    public void setFeature(Feature feature) {
64
        this.feature = feature;
65
        this.setStore(this.feature.getStore());
66
        this.form.setValues(feature.getAsDynObject());
67 42112 jjdelcerro
    }
68 42775 jjdelcerro
69 42489 jjdelcerro
    @Override
70 42775 jjdelcerro
    public JDynForm getDynForm() {
71
        return this.form;
72 42112 jjdelcerro
    }
73 42775 jjdelcerro
74 42489 jjdelcerro
    @Override
75 42775 jjdelcerro
    public void fetch(EditableFeature feature) {
76
        this.form.getValues(feature.getAsDynObject());
77 42112 jjdelcerro
    }
78 42775 jjdelcerro
79 42112 jjdelcerro
}