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 | } |