Revision 95 org.gvsig.attributeeditor/trunk/org.gvsig.attributeeditor/org.gvsig.attributeeditor.mapcontrol/src/main/java/org/gvsig/fmap/mapcontrol/tools/Listeners/AttributeEditorPointListener.java
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