Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extEditing / src / org / gvsig / editing / gui / preferences / SnapConfigPage.java @ 30335

History | View | Annotate | Download (5.77 KB)

1
package org.gvsig.editing.gui.preferences;
2

    
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.prefs.Preferences;
6

    
7
import javax.swing.ImageIcon;
8
import javax.swing.JPanel;
9

    
10
import org.gvsig.andami.PluginServices;
11
import org.gvsig.andami.messages.NotificationManager;
12
import org.gvsig.andami.preferences.AbstractPreferencePage;
13
import org.gvsig.andami.preferences.StoreException;
14
import org.gvsig.andami.ui.mdiManager.IWindow;
15
import org.gvsig.app.project.documents.view.gui.View;
16
import org.gvsig.app.project.documents.view.toolListeners.snapping.gui.SnapConfig;
17
import org.gvsig.fmap.mapcontrol.MapControl;
18
import org.gvsig.fmap.mapcontrol.MapControlLocator;
19
import org.gvsig.fmap.mapcontrol.MapControlManager;
20
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
21
import org.gvsig.tools.ToolsLocator;
22
import org.gvsig.tools.extensionpoint.ExtensionPoint;
23
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
24
import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
25

    
26

    
27

    
28

    
29
/**
30
 * Preferencias de snapping.
31
 *
32
 * @author Vicente Caballero Navarro
33
 */
34
public class SnapConfigPage extends AbstractPreferencePage {
35
    private static Preferences prefs = Preferences.userRoot().node("snappers");
36
    private ImageIcon icon;
37
    private SnapConfig snapConfig;   
38
        private static boolean applySnappers=true;
39
    @SuppressWarnings("unchecked")
40
    private MapControl mc=null;
41
    private static MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
42

    
43
    public SnapConfigPage() {
44
        super();
45
        icon = new ImageIcon(this.getClass().getClassLoader().getResource("images/Snapper.png"));
46
        IWindow window=PluginServices.getMDIManager().getActiveWindow();
47
        if (window instanceof View){
48
                mc=((View)window).getMapControl();
49
                 snapConfig = new SnapConfig(mc);
50
             snapConfig.setSnappers();
51
             addComponent(snapConfig);
52
        }
53

    
54
    }    
55

    
56
    /**
57
     * DOCUMENT ME!
58
     *
59
     * @throws StoreException DOCUMENT ME!
60
     */
61
    public void storeValues() throws StoreException {
62
            for (int n = 0; n < mapControlManager.getSnapperCount(); n++) {
63
            Boolean b = (Boolean) snapConfig.getTableModel().getValueAt(n, 0);
64
            ISnapper snp = (ISnapper) mapControlManager.getSnapperAt(n);
65
            String nameClass=snp.getClass().getName();
66
            nameClass=nameClass.substring(nameClass.lastIndexOf('.'));
67
            prefs.putBoolean("snapper_activated" + nameClass, b.booleanValue());
68
            if (b.booleanValue()){
69
                    snp.setEnabled(b);                    
70
            }
71
            prefs.putInt("snapper_priority"+ nameClass,snp.getPriority());
72
        }
73
        boolean b=snapConfig.applySnappers();
74
        prefs.putBoolean("apply-snappers",b);
75
        applySnappers=b;
76
    }
77

    
78
    /**
79
     * DOCUMENT ME!
80
     */
81
    public void setChangesApplied() {
82
            setChanged(false);
83
    }
84

    
85
    /**
86
     * DOCUMENT ME!
87
     *
88
     * @return DOCUMENT ME!
89
     */
90
    public String getID() {
91
        return this.getClass().getName();
92
    }
93

    
94
    /**
95
     * DOCUMENT ME!
96
     *
97
     * @return DOCUMENT ME!
98
     */
99
    public String getTitle() {
100
        return PluginServices.getText(this, "Snapping");
101
    }
102

    
103
    /**
104
     * DOCUMENT ME!
105
     *
106
     * @return DOCUMENT ME!
107
     */
108
    public JPanel getPanel() {
109
        return this;
110
    }
111

    
112
    /**
113
     * DOCUMENT ME!
114
     */
115
    public void initializeValues() {
116
            if (prefs.get("apply-snappers", null) == null){
117
                    initializeDefaults();
118
            }
119
            for (int n = 0; n < mapControlManager.getSnapperCount(); n++) {
120
            ISnapper snp = mapControlManager.getSnapperAt(n);
121
            String nameClass=snp.getClass().getName();
122
            nameClass=nameClass.substring(nameClass.lastIndexOf('.'));
123
            boolean select = prefs.getBoolean("snapper_activated" + nameClass, false);
124
            int priority = prefs.getInt("snapper_priority" + nameClass,3);
125
            snp.setPriority(priority);
126
            if (select){
127
                    snp.setEnabled(select);   
128
            }           
129
        }
130
        applySnappers = prefs.getBoolean("apply-snappers",true);
131
        snapConfig.setApplySnappers(applySnappers);
132
        snapConfig.selectSnappers();
133
    }
134

    
135
    /**
136
     * DOCUMENT ME!
137
     */
138
    public void initializeDefaults() {
139
            for (int n = 0; n < mapControlManager.getSnapperCount(); n++) {
140
            ISnapper snp = mapControlManager.getSnapperAt(n);
141
            String nameClass=snp.getClass().getName();
142
            nameClass=nameClass.substring(nameClass.lastIndexOf('.'));
143
            if (nameClass.equals(".FinalPointSnapper")){
144
                    int priority = 1;
145
                    prefs.putInt("snapper_priority" + nameClass, priority);
146
                    snp.setEnabled(true);            
147
                    snp.setPriority(priority);
148
            }else if (nameClass.equals(".NearestPointSnapper")){
149
                    int priority = 2;
150
                    prefs.putInt("snapper_priority" + nameClass, priority);
151
                    snp.setEnabled(true);                    
152
                    snp.setPriority(priority);
153
            }else{
154
                    int priority = 3;
155
                    prefs.putInt("snapper_priority" + nameClass, priority);
156
                    snp.setEnabled(false);                    
157
                    snp.setPriority(priority);
158
            }
159
        }
160
        applySnappers = true;
161
        snapConfig.setApplySnappers(applySnappers);
162
        snapConfig.selectSnappers();
163
    }
164

    
165
    /**
166
     * DOCUMENT ME!
167
     *
168
     * @return DOCUMENT ME!
169
     */
170
    public ImageIcon getIcon() {
171
        return icon;
172
    }
173

    
174
    /**
175
     * DOCUMENT ME!
176
     *
177
     * @return DOCUMENT ME!
178
     */
179
    public boolean isValueChanged() {
180
            return super.hasChanged();
181
    }
182
}