Revision 95 org.gvsig.attributeeditor/trunk/org.gvsig.attributeeditor/org.gvsig.attributeeditor.mapcontrol/src/main/java/org/gvsig/fmap/mapcontrol/tools/Listeners/AttributeEditorPointListener.java

View differences:

AttributeEditorPointListener.java
33 33
import javax.swing.SwingUtilities;
34 34

  
35 35
import org.cresques.cts.IProjection;
36
import org.gvsig.featureform.swing.CreateJFeatureFormException;
37
import org.gvsig.featureform.swing.JFeatureForm;
38 36
import org.slf4j.Logger;
39 37
import org.slf4j.LoggerFactory;
40 38

  
41

  
39
import org.gvsig.featureform.swing.CreateJFeatureFormException;
40
import org.gvsig.featureform.swing.JFeatureForm;
42 41
import org.gvsig.fmap.dal.exception.DataException;
43 42
import org.gvsig.fmap.dal.feature.FeatureQuery;
43
import org.gvsig.fmap.dal.feature.FeatureSelection;
44
import org.gvsig.fmap.dal.feature.FeatureSet;
44 45
import org.gvsig.fmap.dal.feature.FeatureStore;
45 46
import org.gvsig.fmap.dal.feature.FeatureType;
46 47
import org.gvsig.fmap.dal.swing.DALSwingLocator;
......
70 71
 * @author fdiaz
71 72
 *
72 73
 */
73
public class AttributeEditorPointListener extends AbstractPointListener implements ComponentListener{
74
public class AttributeEditorPointListener extends AbstractPointListener implements ComponentListener {
74 75

  
75 76
    private static Logger logger = LoggerFactory.getLogger(AttributeEditorPointListener.class);
76 77

  
......
85 86
     */
86 87
    private static int TOL = 7;
87 88

  
88
    public AttributeEditorPointListener(MapControl mapControl,
89
        JFeatureForm form) {
89
    public AttributeEditorPointListener(MapControl mapControl, JFeatureForm form) {
90 90
        super();
91 91
        this.mapControl = mapControl;
92 92
        this.form = form;
......
97 97
        this.mapControl = mapControl;
98 98
    }
99 99

  
100
    private FLyrVect getLayer(){
100
    private FLyrVect getLayer() {
101 101
        FLayer[] layers = mapControl.getMapContext().getLayers().getActives();
102
        if(layers==null || layers.length!=1){
102
        if (layers == null || layers.length != 1) {
103 103
            return null;
104 104
        }
105 105
        return (FLyrVect) layers[0];
......
108 108

  
109 109
    public void point(PointEvent e) throws BehaviorException {
110 110
        MouseEvent mouseEvent = e.getEvent();
111
        if (((mouseEvent.getModifiersEx() & (InputEvent.CTRL_DOWN_MASK
112
            | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK
113
            | InputEvent.ALT_GRAPH_DOWN_MASK | InputEvent.META_DOWN_MASK)) != 0) || !SwingUtilities.isLeftMouseButton(mouseEvent)) {
111
        if (((mouseEvent.getModifiersEx() & (InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK
112
            | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK | InputEvent.META_DOWN_MASK)) != 0)
113
            || !SwingUtilities.isLeftMouseButton(mouseEvent)) {
114 114
            return;
115 115
        }
116 116

  
......
120 120
            FLyrVect layer = getLayer();
121 121
            if (layer == null) {
122 122
                String msg = i18nManager.getTranslation("There_is_no_one_and_only_one_active_layer");
123
                ToolsSwingLocator.getThreadSafeDialogsManager().messageDialog(
124
                    msg,
125
                    i18nManager.getTranslation("attribute_editor"),
126
                    JOptionPane.INFORMATION_MESSAGE);
123
                ToolsSwingLocator.getThreadSafeDialogsManager().messageDialog(msg,
124
                    i18nManager.getTranslation("attribute_editor"), JOptionPane.INFORMATION_MESSAGE);
127 125
                return;
128 126
            }
127
            FeatureStore featureStore;
128
            featureStore = layer.getFeatureStore();
129 129
            if (layer != this.currentLayer) {
130 130
                if (this.currentLayer != null) {
131 131
                    if (this.form != null) {
......
134 134
                }
135 135
                this.currentLayer = layer;
136 136
                if (this.form != null) {
137
                    FeatureStore featureStore =
138
                        this.currentLayer.getFeatureStore();
139 137
                    this.form.bind(featureStore);
140 138
                }
141 139
            }
......
150 148
                    this.form = getForm();
151 149
                    this.form.showForm(MODE.TOOL);
152 150
                }
151

  
152
                if (query != null) {
153
                    try {
154
                        synchronized (featureStore) {
155
                            FeatureSet featSet = featureStore.getFeatureSet(query);
156
                            FeatureSelection selection = (FeatureSelection) featureStore.getSelection();
157
                            selection.deselectAll();
158
                            selection.select(featSet);
159
                        }
160
                    } catch (DataException ex) {
161
                        throw new RuntimeException("Error getting a feature set with the query " + query);
162
                    }
163
                }
153 164
                this.form.setQuery(query);
154 165
            }
155 166
        } catch (Exception ex) {
156
            logger.warn("Can't show attribute information from point on the layer "+layerName, ex);
157
            String msg = i18nManager.getTranslation("Cant_show_attribute_information_for_layer_%1_on_point",new String[]{layerName});
158
            ToolsSwingLocator.getThreadSafeDialogsManager().messageDialog(
159
                msg,
160
                i18nManager.getTranslation("attribute_editor"),
161
                JOptionPane.WARNING_MESSAGE);
167
            logger.warn("Can't show attribute information from point on the layer " + layerName, ex);
168
            String msg =
169
                i18nManager.getTranslation("Cant_show_attribute_information_for_layer_%1_on_point",
170
                    new String[] { layerName });
171
            ToolsSwingLocator.getThreadSafeDialogsManager().messageDialog(msg,
172
                i18nManager.getTranslation("attribute_editor"), JOptionPane.WARNING_MESSAGE);
162 173
        }
163 174
    }
164 175

  
165 176
    private JFeatureForm getForm() throws CreateJFeatureFormException, ServiceException, DataException {
166 177
        if (this.form == null) {
167
            DataSwingManager swingManager =
168
                DALSwingLocator.getSwingManager();
169
                FeatureStore store = this.currentLayer.getFeatureStore();
170
                this.form = swingManager.createJFeatureForm(store);
171
                this.form.setPreferredSize(new Dimension(300, 200));
172
                this.form.asJComponent().setName(ATTRIBUTE_EDITOR_FORM_NAME);
173
                this.form.asJComponent().addComponentListener(this);
178
            DataSwingManager swingManager = DALSwingLocator.getSwingManager();
179
            FeatureStore store = this.currentLayer.getFeatureStore();
180
            this.form = swingManager.createJFeatureForm(store);
181
            this.form.setPreferredSize(new Dimension(300, 200));
182
            this.form.asJComponent().setName(ATTRIBUTE_EDITOR_FORM_NAME);
183
            this.form.asJComponent().addComponentListener(this);
174 184
        }
175 185
        return this.form;
176 186
    }
177 187

  
178
    private FeatureQuery queryByPoint(Point point, double tol)
179
        throws CreateGeometryException, DataException {
188
    private FeatureQuery queryByPoint(Point point, double tol) throws CreateGeometryException, DataException {
180 189
        GeometryManager manager = GeometryLocator.getGeometryManager();
181 190
        Circle circle = (Circle) manager.create(TYPES.CIRCLE, SUBTYPES.GEOM2D);
182 191
        circle.setPoints(point, tol);
......
187 196
        String geomName = featureType.getDefaultGeometryAttributeName();
188 197
        featureQuery.setFeatureType(featureType);
189 198

  
190
        Geometry query_geo =
191
            this.currentLayer.transformToSourceCRS(circle, true);
199
        Geometry query_geo = this.currentLayer.transformToSourceCRS(circle, true);
192 200

  
193 201
        IProjection query_proj = this.currentLayer.getMapContext().getProjection();
194 202
        if (this.currentLayer.getCoordTrans() != null) {
......
196 204
        }
197 205

  
198 206
        IntersectsGeometryEvaluator iee =
199
            new IntersectsGeometryEvaluator(query_geo, query_proj,
200
                featureStore.getDefaultFeatureType(), geomName);
207
            new IntersectsGeometryEvaluator(query_geo, query_proj, featureStore.getDefaultFeatureType(), geomName);
201 208
        featureQuery.setFilter(iee);
202 209
        featureQuery.setAttributeNames(null);
203 210
        return featureQuery;

Also available in: Unified diff