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 @ 329

History | View | Annotate | Download (6.21 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.SimpleMarker3DSymbol;
27
import org.gvsig.gvsig3d.symbology3d.marker.ISimpleMarker3DSymbol;
28
import org.gvsig.i18n.Messages;
29

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

    
43
        private ISymbol _oldsymbol;
44
        private JPanel panel;
45
        private JButton btnNewButton;
46
        private JButton btnNewButton_1;
47
        private ISymbol _newSymbol;
48

    
49
        private ISymbolSelectorTab _activeTab;
50

    
51
        public SymbolSelector3D() {
52
                super();
53

    
54
                initComponents();
55
                _tabsPane.setLayout(new BorderLayout(0, 0));
56
                _ssTab = new SimpleSymbolTab(this);
57
                _psTab = new PictureSymbolTab(this);
58
                _obTab = new Object3DSymbolTab(this);
59
                _tabsPane.add(_ssTab);
60
                _activeTab = _ssTab;
61
                addAcceptCancelButtons();
62

    
63
        }
64

    
65
        public SymbolSelector3D(ISymbol symbol) {
66
                super();
67
                _oldsymbol = symbol;
68
                System.out.println("I'M a CHAMPION");
69
        }
70

    
71
        public SymbolSelector3D(ISymbol symbol, GeometryType shapeType) {
72
                super();
73
                _oldsymbol = symbol;
74
                initComponents();
75
                SimpleSymbolTab ssTab = new SimpleSymbolTab(this);
76
                _tabsPane.add(ssTab);
77
                addAcceptCancelButtons();
78

    
79
                System.out.println("I'M a CHAMPION");
80
        }
81

    
82
        public SymbolSelector3D(String domain, ISymbol symbol, Integer shapeType) {
83
                super();
84
                _oldsymbol = symbol;
85
                _ssTab = new SimpleSymbolTab(this);
86
                _psTab = new PictureSymbolTab(this);
87
                _obTab = new Object3DSymbolTab(this);
88
                initComponents();
89
                _tabsPane.add(_ssTab);
90
                _activeTab = _ssTab;
91
                addAcceptCancelButtons();
92

    
93
        }
94

    
95
        private void initComponents() {
96
                setBorder(new TitledBorder(null, "Marker Symbols",
97
                                TitledBorder.LEADING, TitledBorder.TOP, null, null));
98
                GridBagLayout gridBagLayout = new GridBagLayout();
99
                gridBagLayout.columnWidths = new int[] { 0, 0 };
100
                gridBagLayout.rowHeights = new int[] { 0, 0, 0, 0 };
101
                gridBagLayout.columnWeights = new double[] { 1.0, Double.MIN_VALUE };
102
                gridBagLayout.rowWeights = new double[] { 0.0, 1.0, 1.0,
103
                                Double.MIN_VALUE };
104
                setLayout(gridBagLayout);
105

    
106
                comboBox = new JComboBox();
107
                comboBox.addItemListener(new ItemListener() {
108
                        public void itemStateChanged(ItemEvent arg0) {
109
                                int which = comboBox.getSelectedIndex();
110
                                System.out.println("Case: " + which);
111
                                switch (which) {
112
                                case 0:
113
                                        _tabsPane.removeAll();
114
                                        System.out.println("A?ado panel 1");
115
                                        _tabsPane.add(_ssTab);
116
                                        _activeTab = _ssTab;
117
                                        _tabsPane.repaint();
118
                                        _tabsPane.validate();
119
                                        break;
120

    
121
                                case 1:
122
                                        _tabsPane.removeAll();
123
                                        System.out.println("A?ado panel 2");
124
                                        _tabsPane.add(_psTab);
125
                                        _activeTab = _psTab;
126
                                        _tabsPane.repaint();
127
                                        _tabsPane.validate();
128
                                        break;
129

    
130
                                case 2:
131
                                        _tabsPane.removeAll();
132
                                        System.out.println("A?ado panel 3");
133
                                        _tabsPane.add(_obTab);
134
                                        _activeTab = _obTab;
135
                                        _tabsPane.repaint();
136
                                        _tabsPane.validate();
137
                                        break;
138
                                default:
139
                                        break;
140

    
141
                                }
142

    
143
                        }
144
                });
145
                comboBox.setModel(new DefaultComboBoxModel(new String[] { "Simple  ",
146
                                "Picture", "3D Object " }));
147
                GridBagConstraints gbc_comboBox = new GridBagConstraints();
148
                gbc_comboBox.insets = new Insets(0, 0, 5, 0);
149
                gbc_comboBox.weightx = 0.3;
150
                gbc_comboBox.ipadx = 10;
151
                gbc_comboBox.anchor = GridBagConstraints.WEST;
152
                gbc_comboBox.gridx = 0;
153
                gbc_comboBox.gridy = 0;
154
                add(comboBox, gbc_comboBox);
155

    
156
                _tabsPane = new JPanel();
157
                GridBagConstraints gbc_tabbedPane = new GridBagConstraints();
158
                gbc_tabbedPane.weighty = 0.8;
159
                gbc_tabbedPane.weightx = 0.8;
160
                gbc_tabbedPane.insets = new Insets(0, 0, 5, 0);
161
                gbc_tabbedPane.fill = GridBagConstraints.BOTH;
162
                gbc_tabbedPane.gridx = 0;
163
                gbc_tabbedPane.gridy = 1;
164
                add(_tabsPane, gbc_tabbedPane);
165

    
166
        }
167

    
168
        private void addAcceptCancelButtons() {
169

    
170
                panel = new JPanel();
171
                GridBagConstraints gbc_panel = new GridBagConstraints();
172
                gbc_panel.anchor = GridBagConstraints.NORTHEAST;
173
                gbc_panel.weighty = 0.2;
174
                gbc_panel.weightx = 0.2;
175
                gbc_panel.gridx = 0;
176
                gbc_panel.gridy = 2;
177
                add(panel, gbc_panel);
178
                panel.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
179

    
180
                btnNewButton = new JButton("Cancel");
181
                panel.add(btnNewButton);
182

    
183
                btnNewButton_1 = new JButton("Accept");
184
                btnNewButton_1.addActionListener(new ActionListener() {
185
                        public void actionPerformed(ActionEvent arg0) {
186
                                _newSymbol = _activeTab.getNewSymbol();
187

    
188
                                if (_newSymbol instanceof ISimpleMarker3DSymbol)
189
                                        ((ISimpleMarker3DSymbol) (_newSymbol))
190
                                                        .setGeometry(((ISimpleMarker3DSymbol) (_oldsymbol))
191
                                                                        .getGeometry());
192
                                //setSymbol(_newSymbol);
193
                                PluginServices.getMDIManager().closeWindow(
194
                                                SymbolSelector3D.this);
195
                        }
196
                });
197
                btnNewButton_1.setHorizontalAlignment(SwingConstants.RIGHT);
198
                panel.add(btnNewButton_1);
199

    
200
        }
201

    
202
        public ISymbol getSymbol() {
203

    
204
                return _oldsymbol;
205

    
206
        }
207

    
208
        public WindowInfo getWindowInfo() {
209

    
210
                if (wi == null) {
211
                        wi = new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
212
                        wi.setWidth(600);
213
                        wi.setHeight(400);
214
                        wi.setTitle(Messages.getText("symbol_selector"));
215
                }
216
                return wi;
217
        }
218

    
219
        public Object getWindowProfile() {
220
                return WindowInfo.DIALOG_PROFILE;
221
        }
222

    
223
        public void actionPerformed(ActionEvent e) {
224
                // TODO Auto-generated method stub
225

    
226
        }
227

    
228
        public Object getSelectedObject() {
229
                return _newSymbol;
230
        }
231

    
232
        public void setSymbol(Object symbol) {
233
                _newSymbol = (ISymbol) symbol;
234

    
235
        }
236

    
237
}