Statistics
| Revision:

gvsig-3d / 2.0 / trunk / org.gvsig.gvsig3d.app / org.gvsig.gvsig3d.app.extension / src / main / java / org / gvsig / gvsig3d / app / gui / styling / SymbolSelector3D.java @ 339

History | View | Annotate | Download (7.19 KB)

1
package org.gvsig.gvsig3d.app.gui.styling;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.FlowLayout;
5
import java.awt.GridBagConstraints;
6
import java.awt.GridBagLayout;
7
import java.awt.Insets;
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10
import java.awt.event.ItemEvent;
11
import java.awt.event.ItemListener;
12

    
13
import javax.swing.DefaultComboBoxModel;
14
import javax.swing.JButton;
15
import javax.swing.JComboBox;
16
import javax.swing.JPanel;
17
import javax.swing.SwingConstants;
18
import javax.swing.border.TitledBorder;
19

    
20
import org.gvsig.andami.PluginServices;
21
import org.gvsig.andami.ui.mdiManager.WindowInfo;
22
import org.gvsig.app.gui.styling.SymbolSelector;
23
import org.gvsig.app.project.documents.view.legend.gui.ISymbolSelector;
24
import org.gvsig.fmap.geom.type.GeometryType;
25
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
26
import org.gvsig.gvsig3d.impl.symbology3d.marker.impl.NodeMarker3DSymbol;
27
import org.gvsig.gvsig3d.impl.symbology3d.marker.impl.PictureMarker3DSymbol;
28
import org.gvsig.gvsig3d.impl.symbology3d.marker.impl.SimpleMarker3DSymbol;
29
import org.gvsig.gvsig3d.symbology3d.I3DSymbol;
30
import org.gvsig.gvsig3d.symbology3d.marker.ISimpleMarker3DSymbol;
31
import org.gvsig.i18n.Messages;
32

    
33
import ucar.nc2.constants._Coordinate;
34

    
35
public class SymbolSelector3D extends JPanel implements ISymbolSelector,
36
                ActionListener {
37
        /**
38
         * 
39
         */
40
        private static final long serialVersionUID = 7378124199631050961L;
41
        private WindowInfo wi;
42
        private JPanel _tabsPane;
43
        private JComboBox comboBox;
44
        private SimpleSymbolTab _ssTab;
45
        private PictureSymbolTab _psTab;
46
        private Object3DSymbolTab _obTab;
47

    
48
        private ISymbol _oldsymbol;
49
        private JPanel panel;
50
        private JButton btnNewButton;
51
        private JButton btnNewButton_1;
52
        private ISymbol _newSymbol;
53

    
54
        private ISymbolSelectorTab _activeTab;
55

    
56
        public SymbolSelector3D() {
57
                super();
58

    
59
                initComponents();
60
                _tabsPane.setLayout(new BorderLayout(0, 0));
61
                _ssTab = new SimpleSymbolTab(this);
62
                _psTab = new PictureSymbolTab(this);
63
                _obTab = new Object3DSymbolTab(this);
64
                _tabsPane.add(_ssTab);
65
                _activeTab = _ssTab;
66
                addAcceptCancelButtons();
67

    
68
        }
69

    
70
        public SymbolSelector3D(ISymbol symbol) {
71
                super();
72
                _oldsymbol = symbol;
73
                System.out.println("I'M a CHAMPION");
74
        }
75

    
76
        public SymbolSelector3D(ISymbol symbol, GeometryType shapeType) {
77
                super();
78
                _oldsymbol = symbol;
79
                initComponents();
80
                SimpleSymbolTab ssTab = new SimpleSymbolTab(this);
81
                _tabsPane.add(ssTab);
82
                addAcceptCancelButtons();
83

    
84
                System.out.println("I'M a CHAMPION");
85
        }
86

    
87
        public SymbolSelector3D(String domain, ISymbol symbol, Integer shapeType) {
88
                super();
89
                _oldsymbol = symbol;
90
                _ssTab = new SimpleSymbolTab(this);
91
                _psTab = new PictureSymbolTab(this);
92
                _obTab = new Object3DSymbolTab(this);
93
                initComponents();
94

    
95
                if (symbol.getClass().equals(SimpleMarker3DSymbol.class)) {
96
                        _ssTab.updatePanel((I3DSymbol) symbol);
97
                        _tabsPane.add(_ssTab, BorderLayout.CENTER);
98
                        _activeTab = _ssTab;
99
                } else if (symbol.getClass().equals(PictureMarker3DSymbol.class)) {
100
                        _psTab.updatePanel((I3DSymbol) symbol);
101
                        _tabsPane.add(_psTab, BorderLayout.CENTER);
102
                        _activeTab = _psTab;
103
                } else if (symbol.getClass().equals(NodeMarker3DSymbol.class)) {
104
                        _obTab.updatePanel((I3DSymbol) symbol);
105
                        _tabsPane.add(_obTab, BorderLayout.CENTER);
106
                        _activeTab = _obTab;
107
                }
108
                addAcceptCancelButtons();
109

    
110
        }
111

    
112
        private void initComponents() {
113
                setBorder(new TitledBorder(null, "Marker Symbols",
114
                                TitledBorder.LEADING, TitledBorder.TOP, null, null));
115
                GridBagLayout gridBagLayout = new GridBagLayout();
116
                gridBagLayout.columnWidths = new int[] { 0, 0 };
117
                gridBagLayout.rowHeights = new int[] { 0, 0, 0, 0 };
118
                gridBagLayout.columnWeights = new double[] { 1.0, Double.MIN_VALUE };
119
                gridBagLayout.rowWeights = new double[] { 0.2, 0.6, 0.2,
120
                                Double.MIN_VALUE };
121
                setLayout(gridBagLayout);
122

    
123
                comboBox = new JComboBox();
124
                comboBox.addItemListener(new ItemListener() {
125
                        public void itemStateChanged(ItemEvent arg0) {
126
                                int which = comboBox.getSelectedIndex();
127
                                System.out.println("Case: " + which);
128
                                switch (which) {
129
                                case 0:
130
                                        _tabsPane.removeAll();
131
                                        System.out.println("A?ado panel 1");
132
                                        _tabsPane.add(_ssTab, BorderLayout.CENTER);
133
                                        _activeTab = _ssTab;
134
                                        _tabsPane.repaint();
135
                                        _tabsPane.validate();
136
                                        break;
137

    
138
                                case 1:
139
                                        _tabsPane.removeAll();
140
                                        System.out.println("A?ado panel 2");
141
                                        _tabsPane.add(_psTab, BorderLayout.CENTER);
142
                                        _activeTab = _psTab;
143
                                        _tabsPane.repaint();
144
                                        _tabsPane.validate();
145
                                        break;
146

    
147
                                case 2:
148
                                        _tabsPane.removeAll();
149
                                        System.out.println("A?ado panel 3");
150
                                        _tabsPane.add(_obTab, BorderLayout.CENTER);
151
                                        _activeTab = _obTab;
152
                                        _tabsPane.repaint();
153
                                        _tabsPane.validate();
154
                                        break;
155
                                default:
156
                                        break;
157

    
158
                                }
159

    
160
                        }
161
                });
162
                comboBox.setModel(new DefaultComboBoxModel(new String[] { "Simple  ",
163
                                "Picture", "3D Object " }));
164
                GridBagConstraints gbc_comboBox = new GridBagConstraints();
165
                gbc_comboBox.insets = new Insets(0, 0, 5, 0);
166
                gbc_comboBox.weightx = 0.3;
167
                gbc_comboBox.ipadx = 10;
168
                gbc_comboBox.anchor = GridBagConstraints.WEST;
169
                gbc_comboBox.gridx = 0;
170
                gbc_comboBox.gridy = 0;
171
                add(comboBox, gbc_comboBox);
172

    
173
                _tabsPane = new JPanel();
174
                GridBagConstraints gbc_tabbedPane = new GridBagConstraints();
175
                gbc_tabbedPane.weighty = 0.8;
176
                gbc_tabbedPane.weightx = 0.8;
177
                gbc_tabbedPane.insets = new Insets(0, 0, 5, 0);
178
                gbc_tabbedPane.fill = GridBagConstraints.BOTH;
179
                gbc_tabbedPane.gridx = 0;
180
                gbc_tabbedPane.gridy = 1;
181
                add(_tabsPane, gbc_tabbedPane);
182

    
183
        }
184

    
185
        private void addAcceptCancelButtons() {
186

    
187
                panel = new JPanel();
188
                GridBagConstraints gbc_panel = new GridBagConstraints();
189
                gbc_panel.anchor = GridBagConstraints.NORTHEAST;
190
                gbc_panel.weighty = 0.2;
191
                gbc_panel.weightx = 0.2;
192
                gbc_panel.gridx = 0;
193
                gbc_panel.gridy = 2;
194
                add(panel, gbc_panel);
195
                panel.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
196

    
197
                btnNewButton = new JButton("Cancel");
198
                btnNewButton.addActionListener(new ActionListener() {
199
                        public void actionPerformed(ActionEvent arg0) {
200
                                PluginServices.getMDIManager().closeWindow(
201
                                                SymbolSelector3D.this);
202
                        }
203
                });
204
                panel.add(btnNewButton);
205

    
206
                btnNewButton_1 = new JButton("Accept");
207
                btnNewButton_1.addActionListener(new ActionListener() {
208
                        public void actionPerformed(ActionEvent arg0) {
209
                                _newSymbol = _activeTab.getNewSymbol();
210

    
211
                                if (_newSymbol instanceof ISimpleMarker3DSymbol)
212
                                        ((ISimpleMarker3DSymbol) (_newSymbol))
213
                                                        .setGeometry(((ISimpleMarker3DSymbol) (_oldsymbol))
214
                                                                        .getGeometry());
215
                                // setSymbol(_newSymbol);
216

    
217
                                PluginServices.getMDIManager().closeWindow(
218
                                                SymbolSelector3D.this);
219
                        }
220
                });
221
                btnNewButton_1.setHorizontalAlignment(SwingConstants.RIGHT);
222
                panel.add(btnNewButton_1);
223

    
224
        }
225

    
226
        public ISymbol getSymbol() {
227

    
228
                return _oldsymbol;
229

    
230
        }
231

    
232
        public WindowInfo getWindowInfo() {
233

    
234
                if (wi == null) {
235
                        wi = new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
236
                        wi.setWidth(200);
237
                        wi.setHeight(400);
238
                        wi.setTitle(Messages.getText("symbol_selector"));
239
                }
240
                return wi;
241
        }
242

    
243
        public Object getWindowProfile() {
244
                return WindowInfo.DIALOG_PROFILE;
245
        }
246

    
247
        public void actionPerformed(ActionEvent e) {
248
                // TODO Auto-generated method stub
249

    
250
        }
251

    
252
        public Object getSelectedObject() {
253
                return _newSymbol;
254
        }
255

    
256
        public void setSymbol(Object symbol) {
257
                _newSymbol = (ISymbol) symbol;
258

    
259
        }
260

    
261
}