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

View differences:

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