Revision 366

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingBehavior.java
125 125
                    }
126 126
                }
127 127

  
128
                Point point;
129
                point = vp.convertToMapPoint(e.getX(), e.getY());
128
                Point point; 
129
                if(getMapControl().getAdjustedPoint() != null){
130
                    point = vp.convertToMapPoint(getMapControl().getAdjustedPoint());
131
                } else {
132
                    point = vp.convertToMapPoint(e.getX(), e.getY());
133
                }
130 134

  
131 135
                try {
132 136
                    editingContext.getActiveService().setValue(point);
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingContext.java
27 27
import java.awt.BorderLayout;
28 28
import java.awt.Component;
29 29
import java.lang.ref.WeakReference;
30
import java.util.ArrayList;
30 31
import java.util.Set;
31 32
import java.util.Stack;
33
import java.util.prefs.PreferenceChangeEvent;
34
import java.util.prefs.PreferenceChangeListener;
35
import java.util.prefs.Preferences;
32 36

  
33 37
import org.slf4j.Logger;
34 38
import org.slf4j.LoggerFactory;
......
159 163
        }
160 164
    };
161 165

  
166
    private PreferenceChangeListener preferenceChangeListener =
167
        new PreferenceChangeListener() {
168

  
169
            public void preferenceChange(PreferenceChangeEvent evt) {
170
                String key = evt.getKey();
171
                if (key.equalsIgnoreCase("apply-snappers")) {
172
                    boolean newValue = Boolean.parseBoolean(evt.getNewValue());
173
                    getMapControl().setRefentEnabled(newValue);
174
                }
175
            }
176
        };
177

  
162 178
    public DefaultEditingContext(MapControl mapControl) {
163 179

  
164 180
        this.mapControlReference = new WeakReference<MapControl>(mapControl);
......
168 184
        this.serviceStack = new Stack<EditingService>();
169 185

  
170 186
        addLayerListeners();
187
        addPreferenceListener();
171 188
        addConsolePanelListeners(getConsolePanel());
172 189
    }
173 190

  
191
    private void addPreferenceListener() {
192
        Preferences prefs = Preferences.userRoot().node("snappers");
193
        prefs.addPreferenceChangeListener(preferenceChangeListener);
194
    }
195

  
174 196
    public void activateService(String name) {
175 197

  
176 198
        if ((getMapControl() != null)
......
389 411
            EditingNotification.AFTER_ENTER_EDITING_STORE, null, layer);
390 412

  
391 413
        getMapControl().setTool("VectorEditing");
414
        enableSnapping();
392 415
        showConsole();
393 416
    }
394 417

  
418
    @SuppressWarnings({ "rawtypes", "unchecked" })
419
    private void enableSnapping() {
420
        Preferences prefs = Preferences.userRoot().node("snappers");
421
        if ((prefs.getBoolean("apply-snappers", false) && currentLayer != null)) {
422
            getMapControl().setRefentEnabled(true);
423
            ArrayList layersToSnap =
424
                getMapControl().getMapContext().getLayersToSnap();
425
            if (!layersToSnap.contains(currentLayer)) {
426
                layersToSnap.add(currentLayer);
427
            }
428
        }
429
    }
430

  
431
    @SuppressWarnings("rawtypes")
432
    private void disableSnapping() {
433
        getMapControl().setRefentEnabled(true);
434
        ArrayList layersToSnap =
435
            getMapControl().getMapContext().getLayersToSnap();
436
        if (layersToSnap.contains(currentLayer)) {
437
            layersToSnap.remove(currentLayer);
438
        }
439
    }
440

  
395 441
    private void changeSelectedTool(String name) {
396 442
        if (name.equalsIgnoreCase(DEFAULT_TOOL)) {
397 443
            name = "selection-simple-select-view";
......
476 522

  
477 523
        cleanEditingContext();
478 524
        hideConsole();
525
        disableSnapping();
479 526
        changeSelectedTool(DEFAULT_TOOL);
480 527

  
481 528
        FeatureStore featureStore = layer.getFeatureStore();

Also available in: Unified diff