Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / gui / preferencespage / LayerOrderPage.java @ 28960

History | View | Annotate | Download (3.78 KB)

1 28447 vcaballero
package com.iver.cit.gvsig.gui.preferencespage;
2
3
import java.awt.GridBagConstraints;
4
import java.awt.Insets;
5
import java.awt.event.ItemEvent;
6
import java.awt.event.ItemListener;
7
import java.util.Iterator;
8
9
import javax.swing.ImageIcon;
10
import javax.swing.JComboBox;
11
import javax.swing.JLabel;
12
import javax.swing.JPanel;
13
14
import com.iver.andami.PluginServices;
15
import com.iver.andami.plugins.IExtension;
16
import com.iver.andami.preferences.AbstractPreferencePage;
17
import com.iver.andami.preferences.StoreException;
18
import com.iver.cit.gvsig.fmap.layers.order.DefaultOrderManager;
19
import com.iver.cit.gvsig.fmap.layers.order.OrderManager;
20
import com.iver.utiles.extensionPoints.ExtensionPoint;
21
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
22
23
public class LayerOrderPage extends AbstractPreferencePage implements ItemListener {
24
        private static final long serialVersionUID = 1L;
25
        private ImageIcon icon = null;
26
        private boolean initialized = false;
27
        private JComboBox managerCombo = null;
28
        protected boolean changed = false;
29
30
        public void setChangesApplied() {
31
        }
32
33
        public LayerOrderPage() {
34
                super();
35
                setParentID(ViewPage.class.getName());
36
        }
37
38
        public void storeValues() throws StoreException {
39
                Object object = managerCombo.getSelectedItem();
40
                if (object instanceof OrderManager) {
41
                        OrderManager manager = (OrderManager) object;
42
                        IExtension ext = PluginServices.getExtension(com.iver.cit.gvsig.LayerOrderExtension.class);
43
                        com.iver.cit.gvsig.LayerOrderExtension orderExt = (com.iver.cit.gvsig.LayerOrderExtension) ext;
44
                        orderExt.setDefaultOrderManager(manager);
45
                }
46
                changed = false;
47
        }
48
49
        public String getID() {
50
                return getClass().getName();
51
        }
52
53
        public ImageIcon getIcon() {
54
                if (icon==null) {
55
//                        icon = new ImageIcon(this.getClass().getClassLoader().getResource("images/orderManager.png"));
56
                        icon = PluginServices.getIconTheme().get("layer-order-manager");
57
                }
58
                return icon;
59
        }
60
61
        public JPanel getPanel() {
62
                return this;
63
        }
64
65
        public String getTitle() {
66
                return PluginServices.getText(this, "Layer_loading_order");
67
        }
68
69
        public void initializeDefaults() {
70
        }
71
72
        public void initializeValues() {
73
                if (!initialized) {
74
                        initialized = true;
75
                        createUI();
76
                }
77
        }
78
79
        private void createUI() {
80
                JLabel label = new JLabel(PluginServices.getText(this, "Default_order_manager"));
81
                managerCombo = new JComboBox();
82
                try {
83
                        ExtensionPoint ep =
84
                                (ExtensionPoint) ExtensionPointsSingleton.getInstance().
85
                                get(DefaultOrderManager.getExtensionPointName());
86
                        IExtension ext = PluginServices.getExtension(com.iver.cit.gvsig.LayerOrderExtension.class);
87
                        com.iver.cit.gvsig.LayerOrderExtension orderExt = (com.iver.cit.gvsig.LayerOrderExtension) ext;
88
                        String defaultManager = null;
89
                        if (orderExt.existsDefaultOrderManager()) {
90
                                // only set the item if there is a configured default order manager,
91
                                // otherwise we would set DefaultOrderManager() as user preference
92
                                defaultManager = orderExt.getDefaultOrderManager().getCode();
93
94
                        }
95
                        Iterator iterator = ep.values().iterator();
96
                        while (iterator.hasNext()) {
97
                                Object object = iterator.next();
98
                                if (object instanceof OrderManager) {
99
                                        OrderManager manager = (OrderManager) object;
100
                                        managerCombo.addItem(object);
101
                                        if (defaultManager!=null
102
                                                        && manager.getCode().equals(defaultManager)) {
103
                                                managerCombo.setSelectedItem(object);
104
                                        }
105
                                }
106
                        }
107
                }
108
                catch (Exception ex) {
109
                        PluginServices.getLogger().warn("Error getting layer order managers", ex);
110
                }
111
                managerCombo.addItemListener(this);
112
                this.addComponent(label, managerCombo, GridBagConstraints.NONE, new Insets(8, 8, 8, 8));
113
        }
114
115
        public boolean isValueChanged() {
116
                return changed;
117
        }
118
119
        public void itemStateChanged(ItemEvent e) {
120
                changed = true;
121
        }
122
123
}