svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / gui / selectionByTheme / SelectionByTheme.java @ 40558
History | View | Annotate | Download (9.58 KB)
1 | 40558 | jjdelcerro | /**
|
---|---|---|---|
2 | * gvSIG. Desktop Geographic Information System.
|
||
3 | 40435 | jjdelcerro | *
|
4 | 40558 | jjdelcerro | * Copyright (C) 2007-2013 gvSIG Association.
|
5 | 40435 | jjdelcerro | *
|
6 | * This program is free software; you can redistribute it and/or
|
||
7 | * modify it under the terms of the GNU General Public License
|
||
8 | 40558 | jjdelcerro | * as published by the Free Software Foundation; either version 3
|
9 | 40435 | jjdelcerro | * of the License, or (at your option) any later version.
|
10 | *
|
||
11 | * This program is distributed in the hope that it will be useful,
|
||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | *
|
||
16 | * You should have received a copy of the GNU General Public License
|
||
17 | * along with this program; if not, write to the Free Software
|
||
18 | 40558 | jjdelcerro | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 | * MA 02110-1301, USA.
|
||
20 | 40435 | jjdelcerro | *
|
21 | 40558 | jjdelcerro | * For any additional information, do not hesitate to contact us
|
22 | * at info AT gvsig.com, or visit our website www.gvsig.com.
|
||
23 | 40435 | jjdelcerro | */
|
24 | package org.gvsig.app.gui.selectionByTheme; |
||
25 | |||
26 | import java.awt.BorderLayout; |
||
27 | import java.awt.GridLayout; |
||
28 | import java.util.ArrayList; |
||
29 | |||
30 | import javax.swing.DefaultComboBoxModel; |
||
31 | import javax.swing.JLabel; |
||
32 | import javax.swing.JPanel; |
||
33 | |||
34 | import org.gvsig.andami.PluginServices; |
||
35 | import org.gvsig.andami.ui.mdiManager.IWindow; |
||
36 | import org.gvsig.andami.ui.mdiManager.WindowInfo; |
||
37 | import org.gvsig.gui.beans.swing.JButton; |
||
38 | import org.gvsig.utils.swing.JComboBox; |
||
39 | |||
40 | |||
41 | |||
42 | public class SelectionByTheme extends JPanel implements IWindow { |
||
43 | public static final int EQUALS = 0; |
||
44 | public static final int DISJOINT = 1; |
||
45 | public static final int INTERSECTS = 2; |
||
46 | public static final int TOUCHES = 3; |
||
47 | public static final int CROSSES = 4; |
||
48 | public static final int WITHIN = 5; |
||
49 | public static final int CONTAINS = 6; |
||
50 | public static final int OVERLAPS = 7; |
||
51 | public final String[] textosAcciones = new String[] { |
||
52 | PluginServices.getText(this, "Sean_iguales_a"), //"sean iguales a", |
||
53 | PluginServices.getText(this, "Sean_disjuntos_a"), //"sean disjuntos a", |
||
54 | PluginServices.getText(this, "Intersecten_con"), //"intersecten con", |
||
55 | PluginServices.getText(this, "Toquen"), //"toquen", |
||
56 | PluginServices.getText(this, "Crucen_con"), //"crucen con", |
||
57 | PluginServices.getText(this, "Contengan"), //"contengan", |
||
58 | PluginServices.getText(this, "Esten_contenidos_en"), //"est?n contenidos en", |
||
59 | PluginServices.getText(this, "Se_superponen_a"), //"se superponen a" |
||
60 | }; |
||
61 | |||
62 | private SelectionByThemeModel dataSource = null; |
||
63 | |||
64 | private ArrayList listeners = new ArrayList(); |
||
65 | |||
66 | private JPanel jPanel = null; |
||
67 | private JPanel jPanel1 = null; |
||
68 | private JLabel jLabel = null; |
||
69 | private JComboBox cmbAction = null; |
||
70 | private JLabel jLabel1 = null; |
||
71 | private JComboBox cmbCapas = null; |
||
72 | private JButton btnNew = null; |
||
73 | private JButton btnAdd = null; |
||
74 | private JButton btnFrom = null; |
||
75 | private JButton btnCancel = null; |
||
76 | /**
|
||
77 | * This is the default constructor
|
||
78 | */
|
||
79 | public SelectionByTheme() {
|
||
80 | super();
|
||
81 | initialize(); |
||
82 | } |
||
83 | /**
|
||
84 | * This method initializes this
|
||
85 | *
|
||
86 | * @return void
|
||
87 | */
|
||
88 | private void initialize() { |
||
89 | this.setLayout(new BorderLayout(10, 10)); |
||
90 | this.add(new JLabel(), BorderLayout.NORTH); |
||
91 | this.add(new JLabel(), BorderLayout.WEST); |
||
92 | this.add(getJPanel(), BorderLayout.CENTER); |
||
93 | this.add(getJPanel1(), BorderLayout.EAST); |
||
94 | this.add(new JLabel(), BorderLayout.SOUTH); |
||
95 | this.setSize(540, 95); |
||
96 | } |
||
97 | /**
|
||
98 | * This method initializes jPanel
|
||
99 | *
|
||
100 | * @return JPanel
|
||
101 | */
|
||
102 | private JPanel getJPanel() { |
||
103 | if(jPanel == null) { |
||
104 | jPanel = new JPanel(); |
||
105 | java.awt.FlowLayout layFlowLayout1 = new java.awt.FlowLayout();
|
||
106 | layFlowLayout1.setVgap(30);
|
||
107 | jPanel.setLayout(new GridLayout(4, 2, 5, 5)); |
||
108 | jPanel.add(getJLabel(), null);
|
||
109 | jPanel.add(getCmbAction(), null);
|
||
110 | jPanel.add(getJLabel1(), null);
|
||
111 | jPanel.add(getCmbCapas(), null);
|
||
112 | |||
113 | } |
||
114 | return jPanel;
|
||
115 | } |
||
116 | /**
|
||
117 | * This method initializes jPanel1
|
||
118 | *
|
||
119 | * @return JPanel
|
||
120 | */
|
||
121 | private JPanel getJPanel1() { |
||
122 | if(jPanel1 == null) { |
||
123 | jPanel1 = new JPanel(); |
||
124 | jPanel1.setLayout(new GridLayout(4, 1, 5, 5)); |
||
125 | jPanel1.add(getBtnNew(), null);
|
||
126 | jPanel1.add(getBtnAdd(), null);
|
||
127 | jPanel1.add(getBtnFrom(), null);
|
||
128 | jPanel1.add(getBtnCancel(), null);
|
||
129 | jPanel1.setPreferredSize(new java.awt.Dimension(200,220)); |
||
130 | } |
||
131 | return jPanel1;
|
||
132 | } |
||
133 | /**
|
||
134 | * This method initializes jLabel
|
||
135 | *
|
||
136 | * @return JLabel
|
||
137 | */
|
||
138 | private JLabel getJLabel() { |
||
139 | if(jLabel == null) { |
||
140 | jLabel = new JLabel(); |
||
141 | jLabel.setText(PluginServices.getText(this, "Seleccionar_de_las_capas_activas_los_elementos_que") + "... "); |
||
142 | } |
||
143 | return jLabel;
|
||
144 | } |
||
145 | /**
|
||
146 | * This method initializes cmbAction
|
||
147 | *
|
||
148 | * @return JComboBox
|
||
149 | */
|
||
150 | private JComboBox getCmbAction() { |
||
151 | if(cmbAction == null) { |
||
152 | cmbAction = new JComboBox(); |
||
153 | cmbAction.setPreferredSize(new java.awt.Dimension(200,20)); |
||
154 | DefaultComboBoxModel model = new DefaultComboBoxModel(textosAcciones); |
||
155 | cmbAction.setModel(model); |
||
156 | } |
||
157 | return cmbAction;
|
||
158 | } |
||
159 | /**
|
||
160 | * This method initializes jLabel1
|
||
161 | *
|
||
162 | * @return JLabel
|
||
163 | */
|
||
164 | private JLabel getJLabel1() { |
||
165 | if(jLabel1 == null) { |
||
166 | jLabel1 = new JLabel(); |
||
167 | jLabel1.setText(PluginServices.getText(this, "Elementos_seleccionados_de_la_capa")); |
||
168 | } |
||
169 | return jLabel1;
|
||
170 | } |
||
171 | /**
|
||
172 | * This method initializes cmbCapas
|
||
173 | *
|
||
174 | * @return JComboBox
|
||
175 | */
|
||
176 | private JComboBox getCmbCapas() { |
||
177 | if(cmbCapas == null) { |
||
178 | cmbCapas = new JComboBox(); |
||
179 | cmbCapas.setPreferredSize(new java.awt.Dimension(200,20)); |
||
180 | } |
||
181 | return cmbCapas;
|
||
182 | } |
||
183 | /**
|
||
184 | * This method initializes btnNew
|
||
185 | *
|
||
186 | * @return JButton
|
||
187 | */
|
||
188 | private JButton getBtnNew() { |
||
189 | if(btnNew == null) { |
||
190 | btnNew = new JButton(); |
||
191 | btnNew.setText(PluginServices.getText(this, "Nuevo_conjunto")); |
||
192 | btnNew.setMargin(new java.awt.Insets(2,2,2,2)); |
||
193 | btnNew.addActionListener(new java.awt.event.ActionListener() {
|
||
194 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
195 | callNewListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex()); |
||
196 | } |
||
197 | }); |
||
198 | } |
||
199 | return btnNew;
|
||
200 | } |
||
201 | /**
|
||
202 | * This method initializes btnAdd
|
||
203 | *
|
||
204 | * @return JButton
|
||
205 | */
|
||
206 | private JButton getBtnAdd() { |
||
207 | if(btnAdd == null) { |
||
208 | btnAdd = new JButton(); |
||
209 | btnAdd.setText(PluginServices.getText(this, "Anadir_al_conjunto")); |
||
210 | btnAdd.setMargin(new java.awt.Insets(2,2,2,2)); |
||
211 | btnAdd.addActionListener(new java.awt.event.ActionListener() {
|
||
212 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
213 | callAddToListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex()); |
||
214 | } |
||
215 | }); |
||
216 | } |
||
217 | return btnAdd;
|
||
218 | } |
||
219 | /**
|
||
220 | * This method initializes btnFrom
|
||
221 | *
|
||
222 | * @return JButton
|
||
223 | */
|
||
224 | private JButton getBtnFrom() { |
||
225 | if(btnFrom == null) { |
||
226 | btnFrom = new JButton(); |
||
227 | btnFrom.setText(PluginServices.getText(this, "Seleccionar_del_conjunto")); |
||
228 | btnFrom.setMargin(new java.awt.Insets(2,2,2,2)); |
||
229 | btnFrom.addActionListener(new java.awt.event.ActionListener() {
|
||
230 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
231 | callFromListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex()); |
||
232 | } |
||
233 | }); |
||
234 | } |
||
235 | return btnFrom;
|
||
236 | } |
||
237 | /**
|
||
238 | * This method initializes btnCancel
|
||
239 | *
|
||
240 | * @return JButton
|
||
241 | */
|
||
242 | private JButton getBtnCancel() { |
||
243 | if(btnCancel == null) { |
||
244 | btnCancel = new JButton(); |
||
245 | btnCancel.setText(PluginServices.getText(this, "Cancel")); |
||
246 | btnCancel.setMargin(new java.awt.Insets(2,2,2,2)); |
||
247 | btnCancel.addActionListener(new java.awt.event.ActionListener() {
|
||
248 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
249 | PluginServices.getMDIManager().closeWindow(SelectionByTheme.this); |
||
250 | } |
||
251 | }); |
||
252 | } |
||
253 | return btnCancel;
|
||
254 | } |
||
255 | |||
256 | /**
|
||
257 | * @return
|
||
258 | */
|
||
259 | public SelectionByThemeModel getModel() {
|
||
260 | return dataSource;
|
||
261 | } |
||
262 | |||
263 | /**
|
||
264 | * @param source
|
||
265 | */
|
||
266 | public void setModel(SelectionByThemeModel source) { |
||
267 | dataSource = source; |
||
268 | String[] nameLayers = new String[dataSource.getLayers().getLayersCount()]; |
||
269 | for (int i=0; i < nameLayers.length; i++) { |
||
270 | nameLayers[i] = dataSource.getLayers().getLayer(i).getName(); |
||
271 | } |
||
272 | DefaultComboBoxModel model =
|
||
273 | new DefaultComboBoxModel(nameLayers); |
||
274 | cmbCapas.setModel(model); |
||
275 | } |
||
276 | /**
|
||
277 | * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
|
||
278 | */
|
||
279 | public WindowInfo getWindowInfo() {
|
||
280 | WindowInfo vi = new WindowInfo(WindowInfo.MODALDIALOG);
|
||
281 | vi.setWidth(this.getWidth()+8); |
||
282 | vi.setHeight(this.getHeight());
|
||
283 | vi.setTitle(PluginServices.getText(this, "Seleccion_por_capa")); |
||
284 | return vi;
|
||
285 | } |
||
286 | |||
287 | private void callNewListeners(int selection, int actionCode){ |
||
288 | for (int i = 0; i < listeners.size(); |
||
289 | i++) { |
||
290 | SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i); |
||
291 | l.newSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode); |
||
292 | } |
||
293 | |||
294 | } |
||
295 | |||
296 | private void callAddToListeners(int selection, int actionCode){ |
||
297 | for (int i = 0; i < listeners.size(); |
||
298 | i++) { |
||
299 | SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i); |
||
300 | l.addToSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode); |
||
301 | } |
||
302 | |||
303 | } |
||
304 | |||
305 | private void callFromListeners(int selection, int actionCode){ |
||
306 | for (int i = 0; i < listeners.size(); |
||
307 | i++) { |
||
308 | SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i); |
||
309 | l.fromSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode); |
||
310 | } |
||
311 | |||
312 | } |
||
313 | |||
314 | /**
|
||
315 | * DOCUMENT ME!
|
||
316 | *
|
||
317 | * @param arg0
|
||
318 | *
|
||
319 | * @return
|
||
320 | */
|
||
321 | public boolean addSelectionListener(SelectionByThemeListener arg0) { |
||
322 | return listeners.add(arg0);
|
||
323 | } |
||
324 | |||
325 | /**
|
||
326 | * DOCUMENT ME!
|
||
327 | *
|
||
328 | * @param arg0
|
||
329 | *
|
||
330 | * @return
|
||
331 | */
|
||
332 | public boolean removeSelectionListener(SelectionByThemeListener arg0) { |
||
333 | return listeners.remove(arg0);
|
||
334 | } |
||
335 | /**
|
||
336 | * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
|
||
337 | */
|
||
338 | public void viewActivated() { |
||
339 | } |
||
340 | |||
341 | public Object getWindowProfile() { |
||
342 | return WindowInfo.DIALOG_PROFILE;
|
||
343 | } |
||
344 | |||
345 | } // @jve:visual-info decl-index=0 visual-constraint="10,10" |