Revision 1198
org.gvsig.attributeeditor/trunk/org.gvsig.attributeeditor/org.gvsig.attributeeditor.mapcontrol/src/main/java/org/gvsig/fmap/mapcontrol/tools/Listeners/AttributeEditorPointListener.java | ||
---|---|---|
29 | 29 |
import java.awt.event.InputEvent; |
30 | 30 |
import java.awt.event.MouseEvent; |
31 | 31 |
import java.util.function.Predicate; |
32 |
import javax.swing.Action; |
|
32 | 33 |
|
33 | 34 |
import javax.swing.JOptionPane; |
34 | 35 |
import javax.swing.SwingUtilities; |
... | ... | |
42 | 43 |
|
43 | 44 |
import org.gvsig.featureform.swing.CreateJFeatureFormException; |
44 | 45 |
import org.gvsig.featureform.swing.JFeaturesForm; |
46 |
import org.gvsig.fmap.dal.DataStoreProviderFactory; |
|
45 | 47 |
import org.gvsig.fmap.dal.exception.DataException; |
46 | 48 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
47 | 49 |
import org.gvsig.fmap.dal.feature.FeatureSelection; |
48 | 50 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
49 | 51 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
52 |
import org.gvsig.fmap.dal.feature.FeatureStoreNotification; |
|
53 |
import org.gvsig.fmap.dal.feature.FeatureStoreProviderFactory; |
|
50 | 54 |
import org.gvsig.fmap.dal.feature.FeatureType; |
51 | 55 |
import org.gvsig.fmap.dal.swing.DALSwingLocator; |
52 | 56 |
import org.gvsig.fmap.dal.swing.DataSwingManager; |
... | ... | |
70 | 74 |
import org.gvsig.tools.dispose.DisposeUtils; |
71 | 75 |
import org.gvsig.tools.evaluator.Evaluator; |
72 | 76 |
import org.gvsig.tools.i18n.I18nManager; |
77 |
import org.gvsig.tools.observer.Observable; |
|
78 |
import org.gvsig.tools.observer.Observer; |
|
73 | 79 |
import org.gvsig.tools.service.ServiceException; |
74 | 80 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
75 | 81 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager.MODE; |
... | ... | |
92 | 98 |
private final MapControl mapControl; |
93 | 99 |
private JFeaturesForm form; |
94 | 100 |
private Predicate<FeatureStore> refreshCallback; |
101 |
private Observer refreshFormObserver; |
|
95 | 102 |
|
96 | 103 |
public AttributeEditorPointListener(MapControl mapControl, JFeaturesForm form) { |
97 | 104 |
super(); |
98 | 105 |
this.mapControl = mapControl; |
99 | 106 |
this.form = form; |
107 |
this.refreshFormObserver = (Observable o, Object o1) -> { |
|
108 |
doRefreshFormObserver(o, o1); |
|
109 |
}; |
|
100 | 110 |
} |
101 | 111 |
|
102 | 112 |
public AttributeEditorPointListener(MapControl mapControl) { |
103 | 113 |
super(); |
104 | 114 |
this.mapControl = mapControl; |
115 |
this.refreshFormObserver = (Observable o, Object o1) -> { |
|
116 |
doRefreshFormObserver(o, o1); |
|
117 |
}; |
|
118 |
|
|
105 | 119 |
} |
106 | 120 |
|
107 | 121 |
private FLyrVect getLayer() { |
... | ... | |
204 | 218 |
} |
205 | 219 |
|
206 | 220 |
private void disposeForm() { |
221 |
if( this.form != null ) { |
|
222 |
FeatureStore store = this.form.getFeatureStore(); |
|
223 |
if( store!=null ) { |
|
224 |
store.deleteObserver(this.refreshFormObserver); |
|
225 |
} |
|
226 |
} |
|
207 | 227 |
DisposeUtils.disposeQuietly(this.form); |
208 | 228 |
this.form = null; |
209 | 229 |
} |
... | ... | |
235 | 255 |
break; |
236 | 256 |
} |
237 | 257 |
}); |
258 |
store.addObserver(this.refreshFormObserver); |
|
238 | 259 |
} |
239 | 260 |
return this.form; |
240 | 261 |
} |
262 |
|
|
263 |
private void doRefreshFormObserver(Observable o, Object o1) { |
|
264 |
if( this.form == null || |
|
265 |
!(o instanceof FeatureStore && o1 instanceof FeatureStoreNotification ) ) { |
|
266 |
return; |
|
267 |
} |
|
268 |
try { |
|
269 |
FeatureStoreNotification n = (FeatureStoreNotification) o1; |
|
270 |
if( n.getType().equalsIgnoreCase(FeatureStoreNotification.AFTER_REFRESH) ) { |
|
271 |
Action refreshAction = this.form.getFormset().getAction(JFeaturesForm.REFRESHFORM_ACTION); |
|
272 |
if( refreshAction!=null ) { |
|
273 |
refreshAction.actionPerformed(null); |
|
274 |
} |
|
275 |
} |
|
276 |
} catch(Exception ex) { |
|
277 |
LOGGER.warn("Can't refresh attribute editor",ex); |
|
278 |
} |
|
279 |
} |
|
241 | 280 |
|
242 | 281 |
private FeatureQuery queryByPoint(Point point, double tol) throws CreateGeometryException, DataException { |
243 | 282 |
GeometryManager manager = GeometryLocator.getGeometryManager(); |
Also available in: Unified diff