Revision 35

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/resources-plugin/config.xml
36 36
			description="" active="true" priority="1">
37 37

  
38 38
			<action name="InsertPoint" label="Insert_point" tooltip="insert_point"
39
				action-command="insert_point" icon="layer-insert-point" position="302020000"
39
				action-command="InsertPoint" icon="layer-insert-point" position="302020000"
40 40
				accelerator="" />
41 41

  
42 42
			<menu text="tools/insert_point" name="insert_point" />
......
52 52
			description="" active="true" priority="1">
53 53

  
54 54
			<action name="InsertCircle" label="Insert_circle" tooltip="insert_circle"
55
				action-command="insert_circle" icon="layer-insert-circle" position="302030000"
55
				action-command="Circle2P" icon="layer-insert-circle" position="302030000"
56 56
				accelerator="" />
57 57

  
58 58
			<menu text="tools/insert_circle" name="insert_cirlce" />
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingService.java
54 54
   * 
55 55
   */
56 56
  public void start();
57
  
58
  /**
59
   * 
60
   * @return
61
   */
62
  public String getName();
57 63

  
58 64
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/EditingProvider.java
61 61
   * 
62 62
   */
63 63
  public void start();
64
  
65
  /**
66
   * 
67
   * @return
68
   */
69
  public String getName();
64 70
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingBehavior.java
13 13
import java.awt.event.MouseEvent;
14 14
import java.awt.geom.Point2D;
15 15
import java.awt.image.BufferedImage;
16
import java.util.HashMap;
17
import java.util.Map;
16 18

  
17 19
import org.cresques.cts.IProjection;
18 20
import org.gvsig.andami.PluginServices;
......
49 51

  
50 52
public class DefaultEditingBehavior extends Behavior implements EditingBehavior {
51 53

  
54
  private Map<FLyrVect, EditingService> serviceRegistration;
55

  
52 56
  private MapControl mapControl;
53 57

  
54 58
  private FLyrVect currentLayer;
......
85 89
        if (layer.isActive() && layer.isEditing()) {
86 90
          view.showConsole();
87 91
          getMapControl().setTool("VectorEditing");
88
          cleanBehavior();
92
          // cleanBehavior();
89 93
        }
90 94
        else if (!layer.isEditing() && layer.isActive()) {
91
          setCurrentLayer((FLyrVect) layer);
95
          changeCurrentLayer((FLyrVect) layer);
92 96
          view.hideConsole();
93 97
          getMapControl().setTool("zoomIn");
94 98
          PluginServices.getMainFrame().setSelectedTool("ZOOM_IN");
95 99
        }
96
        setCurrentLayer((FLyrVect) layer);
100
        changeCurrentLayer((FLyrVect) layer);
97 101

  
98 102
      }
99 103

  
......
109 113
  };
110 114

  
111 115
  public void cleanBehavior() {
112
    activeService = null;
113
    currentParam = null;
114
    
116
    // activeService = null;
117
    // currentParam = null;
118

  
115 119
    DefaultViewPanel view = getActiveView();
116
    view.getConsolePanel().addText("\nSeleccione un herramienta\n", JConsole.MESSAGE);
117
    ApplicationLocator.getManager().refreshMenusAndToolBars();
120
    view.getConsolePanel().addText("\nSeleccione un herramienta\n",
121
        JConsole.MESSAGE);
122
//    MainFrame main = PluginServices.getMainFrame();
123
//    main.setSelectedTool("");  We can define a default tool. I.E Zoom in.
118 124
  }
119 125

  
120 126
  public DefaultEditingBehavior(MapControl mapControl) {
121 127
    // TODO Auto-generated constructor stub
122 128
    if (mapControl != null) {
123 129
      this.mapControl = mapControl;
130
      serviceRegistration = new HashMap<FLyrVect, EditingService>();
124 131
      sbl = new StatusBarListener(mapControl);
125 132
      initMapControlListeners(mapControl);
126 133
      FLayers layers = mapControl.getMapContext().getLayers();
127 134
      for (int i = 0; i < layers.getLayersCount(); i++) {
128 135
        if (layers.getLayer(i) instanceof FLyrVect
129 136
            && layers.getLayer(i).isActive())
130
          setCurrentLayer((FLyrVect) layers.getLayer(i));
137
          changeCurrentLayer((FLyrVect) layers.getLayer(i));
131 138
      }
132 139

  
133 140
    }
......
136 143
  public void activateTool(String name) {
137 144

  
138 145
    EditingManager manager = EditingLocator.getManager();
139
    
146

  
140 147
    if (currentLayer != null) {
141
      EditingService service = (EditingService) manager.getEditingService(name,
142
          currentLayer);
148
      EditingService service = serviceRegistration.get(currentLayer);
149
      if (service == null) {
150
        service = (EditingService) manager
151
            .getEditingService(name, currentLayer);
152
        serviceRegistration.put(currentLayer, service);
153
      }
143 154
      if (service != null) {
144 155
        this.activeService = service;
145 156
        service.start();
......
197 208
    else {
198 209
      askQuestion(currentParam);
199 210
      setCaretPosition(getActiveView());
200

  
201 211
    }
202 212

  
203 213
  }
......
323 333
          MapControlLocator.getMapControlManager().getAxisReferenceSymbol());
324 334
    }
325 335
  }
326
  
336

  
327 337
  private void setCaretPosition(DefaultViewPanel view) {
328 338

  
329 339
    JEditTextArea jeta = view.getConsolePanel().getTxt();
......
332 342

  
333 343
  }
334 344

  
335

  
336
  public void setCurrentLayer(FLyrVect layer) {
345
  private void changeCurrentLayer(FLyrVect layer) {
337 346
    this.currentLayer = layer;
347
    this.activeService = serviceRegistration.get(layer);
348
    if (activeService != null) {
349
      getNextParameter();
350
      MainFrame main = PluginServices.getMainFrame();
351
      main.setSelectedTool(activeService.getName());
352
    }
338 353
  }
339 354

  
340 355
  private void showCoords(Point point) {
......
372 387
  }
373 388

  
374 389
  private void textEntered(String response) {
375
    if(response == null){
390
    if (response == null) {
376 391
      cleanBehavior();
377
    } else{
392
    }
393
    else {
378 394
      int type = currentParam.getType();
379 395
      try {
380 396
        switch (type) {
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingService.java
62 62
    // TODO Auto-generated method stub
63 63
    this.provider.start();
64 64
  }
65

  
66
  public String getName() {
67
    // TODO Auto-generated method stub
68
    return provider.getName();
65 69
  }
70
  }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.insertpoint/src/main/java/org/gvsig/vectorediting/lib/prov/insertpoint/InsertPointEditingProvider.java
101 101
    // TODO Auto-generated method stub
102 102
    this.values = new HashMap<EditingServiceParameter, Object>();
103 103
  }
104

  
105
  public String getName() {
106
    // TODO Auto-generated method stub
107
    return this.PROVIDER_NAME;
108
  }
104 109
}

Also available in: Unified diff