Revision 22 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingManager.java
DefaultEditingManager.java | ||
---|---|---|
6 | 6 |
*/ |
7 | 7 |
package org.gvsig.vectorediting.lib.impl; |
8 | 8 |
|
9 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
9 |
import org.gvsig.app.ApplicationLocator; |
|
10 |
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
|
11 |
import org.gvsig.editing.EditingNotification; |
|
12 |
import org.gvsig.editing.EditingNotificationManager; |
|
13 |
import org.gvsig.fmap.dal.exception.DataException; |
|
14 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
10 | 15 |
import org.gvsig.fmap.mapcontrol.MapControl; |
16 |
import org.gvsig.fmap.mapcontrol.MapControlLocator; |
|
17 |
import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior; |
|
11 | 18 |
import org.gvsig.tools.dynobject.DynObject; |
12 | 19 |
import org.gvsig.tools.service.AbstractManager; |
13 | 20 |
import org.gvsig.tools.service.Service; |
14 | 21 |
import org.gvsig.tools.service.ServiceException; |
22 |
import org.gvsig.utils.console.ResponseListener; |
|
15 | 23 |
import org.gvsig.vectorediting.lib.api.EditingBehavior; |
16 | 24 |
import org.gvsig.vectorediting.lib.api.EditingManager; |
17 | 25 |
import org.gvsig.vectorediting.lib.api.EditingService; |
18 | 26 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
19 | 27 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
28 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
|
20 | 29 |
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator; |
30 |
import org.slf4j.Logger; |
|
31 |
import org.slf4j.LoggerFactory; |
|
21 | 32 |
|
22 | 33 |
public class DefaultEditingManager extends AbstractManager implements |
23 | 34 |
EditingManager { |
24 | 35 |
|
36 |
private static final Logger logger = LoggerFactory |
|
37 |
.getLogger(EditingManager.class); |
|
38 |
|
|
25 | 39 |
public DefaultEditingManager() { |
26 | 40 |
super(new DefaultEditingProviderManager()); |
27 | 41 |
// TODO Auto-generated constructor stub |
... | ... | |
49 | 63 |
} |
50 | 64 |
} |
51 | 65 |
|
52 |
public EditingService getEditingService(String name, |
|
53 |
FeatureStore editableFeatureStore) { |
|
54 |
// TODO Auto-generated method stub |
|
66 |
public EditingService getEditingService(String name, FLyrVect layer) { |
|
67 |
try { |
|
68 |
DynObject params = this.createServiceParameters(name); |
|
69 |
params.setDynValue(EditingProviderFactory.LAYER_FIELD, layer); |
|
70 |
return (EditingService) this.getService(params); |
|
71 |
} |
|
72 |
catch (ServiceException e) { |
|
73 |
// TODO Auto-generated catch block |
|
74 |
e.printStackTrace(); |
|
75 |
} |
|
76 |
|
|
55 | 77 |
return null; |
56 | 78 |
} |
57 | 79 |
|
80 |
public void beginEdition(FLyrVect layer, DefaultViewPanel view) |
|
81 |
throws DataException { |
|
82 |
|
|
83 |
EditingNotificationManager editingNotificationManager = MapControlLocator |
|
84 |
.getEditingNotificationManager(); |
|
85 |
|
|
86 |
EditingNotification notification = editingNotificationManager |
|
87 |
.notifyObservers(this, EditingNotification.BEFORE_ENTER_EDITING_STORE, |
|
88 |
view.getDocument(), layer); |
|
89 |
|
|
90 |
if (notification.isCanceled()) { |
|
91 |
logger.info("Edit layer '" + layer.getName() |
|
92 |
+ "' canceled by somme observer."); |
|
93 |
throw new RuntimeException("Edit layer '" + layer.getName() |
|
94 |
+ "' canceled."); |
|
95 |
} |
|
96 |
|
|
97 |
initFocus(view); |
|
98 |
view.showConsole(); |
|
99 |
|
|
100 |
layer.getFeatureStore().edit(); |
|
101 |
layer.getFeatureStore().addObserver(view); |
|
102 |
layer.getFeatureStore().addObserver(view.getMapControl()); |
|
103 |
|
|
104 |
ApplicationLocator.getManager().refreshMenusAndToolBars(); |
|
105 |
|
|
106 |
editingNotificationManager.notifyObservers(this, |
|
107 |
EditingNotification.AFTER_ENTER_EDITING_STORE, view.getDocument(), |
|
108 |
layer); |
|
109 |
} |
|
110 |
|
|
111 |
private void initFocus(DefaultViewPanel view) { |
|
112 |
|
|
113 |
MapControl mapControl = view.getMapControl(); |
|
114 |
|
|
115 |
if (!mapControl.hasTool("VectorEditing")) { |
|
116 |
Behavior vectorEditing = new DefaultEditingBehavior(mapControl); |
|
117 |
mapControl.addBehavior("VectorEditing", vectorEditing); |
|
118 |
} |
|
119 |
|
|
120 |
view.addConsoleListener("cad", new ResponseListener() { |
|
121 |
public void acceptResponse(String response) { |
|
122 |
System.out.println(response); |
|
123 |
} |
|
124 |
}); |
|
125 |
|
|
126 |
mapControl.setTool("VectorEditing"); |
|
127 |
} |
|
58 | 128 |
} |
Also available in: Unified diff