svn-gvsig-desktop / tags / v1_11_0_Build_1306 / extensions / extArcims / src / es / prodevelop / cit / gvsig / arcims / gui / panels / FeatureServicePanel.java @ 35731
History | View | Annotate | Download (47.4 KB)
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|
2 |
*
|
3 |
* Copyright (C) 2006 Prodevelop and Generalitat Valenciana.
|
4 |
*
|
5 |
* This program is free software; you can redistribute it and/or
|
6 |
* modify it under the terms of the GNU General Public License
|
7 |
* as published by the Free Software Foundation; either version 2
|
8 |
* of the License, or (at your option) any later version.
|
9 |
*
|
10 |
* This program is distributed in the hope that it will be useful,
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
* GNU General Public License for more details.
|
14 |
*
|
15 |
* You should have received a copy of the GNU General Public License
|
16 |
* along with this program; if not, write to the Free Software
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
18 |
*
|
19 |
* For more information, contact:
|
20 |
*
|
21 |
* Generalitat Valenciana
|
22 |
* Conselleria d'Infraestructures i Transport
|
23 |
* Av. Blasco Ib??ez, 50
|
24 |
* 46010 VALENCIA
|
25 |
* SPAIN
|
26 |
*
|
27 |
* +34 963862235
|
28 |
* gvsig@gva.es
|
29 |
* www.gvsig.gva.es
|
30 |
*
|
31 |
* or
|
32 |
*
|
33 |
* Prodevelop Integraci?n de Tecnolog?as SL
|
34 |
* Conde Salvatierra de ?lava , 34-10
|
35 |
* 46004 Valencia
|
36 |
* Spain
|
37 |
*
|
38 |
* +34 963 510 612
|
39 |
* +34 963 510 968
|
40 |
* gis@prodevelop.es
|
41 |
* http://www.prodevelop.es
|
42 |
*/
|
43 |
package es.prodevelop.cit.gvsig.arcims.gui.panels; |
44 |
|
45 |
import java.awt.BorderLayout; |
46 |
import java.awt.event.ActionEvent; |
47 |
import java.awt.event.ActionListener; |
48 |
import java.awt.event.ItemEvent; |
49 |
import java.awt.event.ItemListener; |
50 |
import java.awt.event.KeyEvent; |
51 |
import java.awt.event.KeyListener; |
52 |
import java.awt.event.MouseEvent; |
53 |
import java.awt.event.MouseListener; |
54 |
import java.util.Vector; |
55 |
|
56 |
import javax.swing.DefaultListModel; |
57 |
import javax.swing.ImageIcon; |
58 |
import javax.swing.JButton; |
59 |
import javax.swing.JCheckBox; |
60 |
import javax.swing.JEditorPane; |
61 |
import javax.swing.JLabel; |
62 |
import javax.swing.JList; |
63 |
import javax.swing.JOptionPane; |
64 |
import javax.swing.JPanel; |
65 |
import javax.swing.JScrollPane; |
66 |
import javax.swing.JTabbedPane; |
67 |
import javax.swing.JTextField; |
68 |
import javax.swing.JToolTip; |
69 |
import javax.swing.JTree; |
70 |
import javax.swing.ToolTipManager; |
71 |
import javax.swing.event.ChangeEvent; |
72 |
import javax.swing.event.ChangeListener; |
73 |
import javax.swing.event.ListDataEvent; |
74 |
import javax.swing.event.ListDataListener; |
75 |
import javax.swing.event.TreeSelectionEvent; |
76 |
import javax.swing.event.TreeSelectionListener; |
77 |
import javax.swing.tree.DefaultMutableTreeNode; |
78 |
import javax.swing.tree.DefaultTreeModel; |
79 |
|
80 |
import org.apache.log4j.Logger; |
81 |
import org.gvsig.remoteClient.arcims.utils.ServiceInformation; |
82 |
import org.gvsig.remoteClient.arcims.utils.ServiceInformationLayer; |
83 |
|
84 |
import com.iver.andami.PluginServices; |
85 |
import com.iver.cit.gvsig.addlayer.AddLayerDialog; |
86 |
|
87 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.AvailableLayersTreeCellRenderer; |
88 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.JMultilineToolTip; |
89 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.LayersListElement; |
90 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.SelectedLayersListCellRenderer; |
91 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.ServiceNamesObject; |
92 |
import es.prodevelop.cit.gvsig.arcims.gui.panels.utils.ServicesTableModel; |
93 |
import es.prodevelop.cit.gvsig.arcims.gui.wizards.ArcImsWizard; |
94 |
|
95 |
|
96 |
/**
|
97 |
* This class implements the ArcIMS wizard's panel which enables the user to
|
98 |
* select which layers must be retrieved from a Image Service (selected on the
|
99 |
* ServiceNamesPanel).
|
100 |
*
|
101 |
* @see es.prodevelop.cit.gvsig.arcims.gui.panels.ServiceNamesPanel
|
102 |
*
|
103 |
*
|
104 |
* @author jldominguez
|
105 |
*/
|
106 |
public class FeatureServicePanel extends JPanel implements ActionListener, |
107 |
ItemListener, ListDataListener, KeyListener, ChangeListener, |
108 |
TreeSelectionListener, MouseListener { |
109 |
protected static Logger logger = Logger.getLogger(FeatureServicePanel.class.getName()); |
110 |
private static final long serialVersionUID = 0; |
111 |
protected ArcImsWizard parentWizard = null; |
112 |
protected JPanel detailsPanel = null; |
113 |
protected JPanel layersPanel = null; |
114 |
protected JPanel selectedLayersPanel = null; |
115 |
protected JPanel finalPanel = null; |
116 |
protected JLabel newLayerNameLabel = null; |
117 |
protected JTextField newLayerNameTextField = null; |
118 |
protected JButton selectedLayersUpButton = null; |
119 |
protected JButton selectedLayersDownButton = null; |
120 |
protected JList orderedLayersList = null; |
121 |
protected JTree availableLayersTree = null; |
122 |
protected DefaultTreeModel availableLayersTreeModel = null; |
123 |
protected DefaultMutableTreeNode layersTreeRootNode = null; |
124 |
protected ServiceNamesObject layersTreeRootObject = null; |
125 |
protected DefaultListModel orderedLayersListModel = null; |
126 |
protected JButton addLayerButton = null; |
127 |
protected JButton removeLayerButton = null; |
128 |
protected JScrollPane availableLayersScrollPane = null; |
129 |
protected JScrollPane selectedLayersScrollPane = null; |
130 |
protected JButton addAllButton = null; |
131 |
protected JButton removeAllButton = null; |
132 |
protected JScrollPane serviceDetailsScrollPane = null; |
133 |
protected JEditorPane serviceDetailsTable = null; |
134 |
protected Vector serviceDetailsTableDataVector = null; |
135 |
protected Vector serviceDetailsTableColumnNamesVector = null; |
136 |
protected JTabbedPane imgServiceTabbedPane = null; |
137 |
protected JPanel tabPanel = null; |
138 |
protected JPanel imgServiceTab_1 = null; |
139 |
protected JPanel imgServiceTab_2 = null; |
140 |
protected JPanel changeServerPanel = null; |
141 |
protected JButton serviceInfoNextButton = null; |
142 |
protected JButton serviceInfoPreviousButton = null; |
143 |
protected JButton changeServerButton = null; |
144 |
protected JCheckBox showIdCheckBox = null; |
145 |
protected final String bgColor0 = "\"#FEEDD6\""; // light - |
146 |
protected final String bgColor3 = "\"#FBFFE1\""; // light yellow |
147 |
protected final String font = "Arial"; |
148 |
private JPanel groupCheckPanel; |
149 |
private JCheckBox groupCheckBox; |
150 |
private JLabel versionTitleLabel = null; |
151 |
private JLabel versionLabel = null; |
152 |
protected boolean isProperties = false; |
153 |
|
154 |
/**
|
155 |
* The owning wizard is useds as a parameter to allow easy <i>upwards</i>
|
156 |
* references.
|
157 |
*
|
158 |
* @param parent
|
159 |
* the wizard that owns this panel
|
160 |
*/
|
161 |
public FeatureServicePanel(ArcImsWizard parent, boolean editionallowed, |
162 |
boolean properties) {
|
163 |
super();
|
164 |
isProperties = properties; |
165 |
parentWizard = parent; |
166 |
initialize(editionallowed); |
167 |
} |
168 |
|
169 |
protected void initialize(boolean editionallowed) { |
170 |
setLayout(null);
|
171 |
this.setSize(new java.awt.Dimension(511, 470)); |
172 |
this.initInfoVectors();
|
173 |
|
174 |
imgServiceTab_1 = new JPanel(); |
175 |
imgServiceTab_1.setLayout(null);
|
176 |
imgServiceTab_2 = new JPanel(); |
177 |
imgServiceTab_2.setLayout(null);
|
178 |
|
179 |
imgServiceTab_1.add(getDetailsPanel(), null);
|
180 |
imgServiceTab_2.add(getFinalPanel(), null);
|
181 |
imgServiceTab_2.add(getLayersPanel(), null);
|
182 |
imgServiceTab_2.add(getShowIdCheckBox(), null);
|
183 |
imgServiceTab_2.add(getSelectedLayersPanel(), null);
|
184 |
|
185 |
addImageFormatPanel(); |
186 |
|
187 |
tabPanel = new JPanel(); |
188 |
tabPanel.setBounds(18, 8, 490 - 15, 415); |
189 |
tabPanel.setLayout(new BorderLayout()); |
190 |
|
191 |
imgServiceTabbedPane = new JTabbedPane(); |
192 |
|
193 |
// imgServiceTabbedPane.setBounds(0, 0, 510, 432);
|
194 |
imgServiceTabbedPane.addTab(PluginServices.getText(this, "info"), |
195 |
imgServiceTab_1); |
196 |
|
197 |
if (editionallowed) {
|
198 |
imgServiceTabbedPane.addTab(PluginServices.getText(this, "layers"), |
199 |
imgServiceTab_2); |
200 |
} |
201 |
|
202 |
imgServiceTabbedPane.addChangeListener(this);
|
203 |
|
204 |
changeServerButton = new JButton(PluginServices.getText(this, |
205 |
"change_service"));
|
206 |
changeServerButton.addActionListener(this);
|
207 |
changeServerButton.setBounds(95, 8, 120, 25); |
208 |
serviceInfoPreviousButton = new JButton(PluginServices.getText(this, |
209 |
"previous"));
|
210 |
serviceInfoPreviousButton.addActionListener(this);
|
211 |
serviceInfoPreviousButton.setBounds(395 - 103, 4, 100, 20); |
212 |
serviceInfoNextButton = new JButton(PluginServices.getText(this, "next")); |
213 |
serviceInfoNextButton.addActionListener(this);
|
214 |
serviceInfoNextButton.setBounds(395, 4, 100, 20); |
215 |
|
216 |
changeServerPanel = new JPanel(); |
217 |
changeServerPanel.setLayout(null);
|
218 |
changeServerPanel.setBounds(0, 440, 525, 42); |
219 |
|
220 |
// changeServerPanel.add(changeServerButton);
|
221 |
changeServerPanel.add(serviceInfoPreviousButton); |
222 |
changeServerPanel.add(serviceInfoNextButton); |
223 |
|
224 |
versionTitleLabel = new JLabel(PluginServices.getText(this, |
225 |
"server_version") + ":"); |
226 |
versionTitleLabel.setBounds(new java.awt.Rectangle(39, 443, 125, 21)); |
227 |
add(versionTitleLabel, null);
|
228 |
versionLabel = new JLabel("-"); |
229 |
versionLabel.setBounds(new java.awt.Rectangle(170 - 15, 443, 160, 21)); |
230 |
add(versionLabel, null);
|
231 |
|
232 |
tabPanel.add(imgServiceTabbedPane, BorderLayout.CENTER);
|
233 |
add(tabPanel); |
234 |
add(changeServerPanel); |
235 |
} |
236 |
|
237 |
// previous (395 - 103, 444, 100, 20));
|
238 |
protected void addImageFormatPanel() { |
239 |
groupCheckPanel = new JPanel(); |
240 |
groupCheckPanel.setBounds(180 - 6, 210 - 8, 501 - 180 - 34, 54); // hasta y = 264 |
241 |
groupCheckPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( |
242 |
null, PluginServices.getText(this, "group_layers_option"), |
243 |
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, |
244 |
javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
245 |
|
246 |
groupCheckBox = new JCheckBox(PluginServices.getText(this, |
247 |
"group_layers"), false); |
248 |
groupCheckBox.setBounds(14, 20, 155, 21); |
249 |
|
250 |
groupCheckPanel.setLayout(null);
|
251 |
groupCheckPanel.add(groupCheckBox); |
252 |
imgServiceTab_2.add(groupCheckPanel); |
253 |
} |
254 |
|
255 |
// private J
|
256 |
protected void initInfoVectors() { |
257 |
serviceDetailsTableDataVector = new Vector(); |
258 |
|
259 |
orderedLayersListModel = new DefaultListModel(); |
260 |
orderedLayersListModel.addListDataListener(this);
|
261 |
} |
262 |
|
263 |
/**
|
264 |
* Gets a list model that contains the layers that have been selected by the
|
265 |
* user (among those offered by the server)
|
266 |
*
|
267 |
* @return the selected layers' list model
|
268 |
*/
|
269 |
public DefaultListModel getOrderedLayersListModel() { |
270 |
return this.orderedLayersListModel; |
271 |
} |
272 |
|
273 |
/**
|
274 |
* This method initializes detailsPanel
|
275 |
*
|
276 |
* @return javax.swing.JPanel
|
277 |
*/
|
278 |
public JPanel getDetailsPanel() { |
279 |
if (detailsPanel == null) { |
280 |
detailsPanel = new JPanel(); |
281 |
detailsPanel.setLayout(null);
|
282 |
detailsPanel.setBounds(new java.awt.Rectangle(5, 5, 470 - 15, |
283 |
345 + 30)); |
284 |
serviceDetailsScrollPane = new JScrollPane(); |
285 |
detailsPanel.add(serviceDetailsScrollPane, null);
|
286 |
} |
287 |
|
288 |
return detailsPanel;
|
289 |
} |
290 |
|
291 |
public void setDetailsPanelServiceNameInBorder(String name) { |
292 |
this.detailsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
|
293 |
null,
|
294 |
PluginServices.getText(this, "service_info") + ": " + name, |
295 |
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, |
296 |
javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
297 |
} |
298 |
|
299 |
/**
|
300 |
* This method initializes layersPanel
|
301 |
*
|
302 |
* @return javax.swing.JPanel
|
303 |
*/
|
304 |
protected JPanel getLayersPanel() { |
305 |
if (layersPanel == null) { |
306 |
layersPanel = new JPanel(); |
307 |
layersPanel.setLayout(null);
|
308 |
layersPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( |
309 |
null, PluginServices.getText(this, "available_layers"), |
310 |
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, |
311 |
javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
312 |
layersPanel.setBounds(new java.awt.Rectangle(4, 58, 491 - 34, |
313 |
151 - 8)); // hasta y = 209 |
314 |
layersPanel.add(getAvailableLayersScrollPane(), null);
|
315 |
} |
316 |
|
317 |
return layersPanel;
|
318 |
} |
319 |
|
320 |
protected JCheckBox getShowIdCheckBox() { |
321 |
if (showIdCheckBox == null) { |
322 |
showIdCheckBox = new JCheckBox(PluginServices.getText(this, |
323 |
"show_layer_ids"), false); |
324 |
|
325 |
// showIdCheckBox.setFont(new Font("SimSun", Font.PLAIN, 12));
|
326 |
showIdCheckBox.setBounds(4, 230 - 8, 168, 15); |
327 |
showIdCheckBox.addItemListener(this);
|
328 |
} |
329 |
|
330 |
return showIdCheckBox;
|
331 |
} |
332 |
|
333 |
/**
|
334 |
* This method initializes jPanel
|
335 |
*
|
336 |
* @return javax.swing.JPanel
|
337 |
*/
|
338 |
protected JPanel getSelectedLayersPanel() { |
339 |
if (selectedLayersPanel == null) { |
340 |
selectedLayersPanel = new JPanel(); |
341 |
selectedLayersPanel.setLayout(null);
|
342 |
selectedLayersPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( |
343 |
null, PluginServices.getText(this, "selected_layers"), |
344 |
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, |
345 |
javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
346 |
selectedLayersPanel.setBounds(new java.awt.Rectangle(4, 265 - 8, |
347 |
491 - 34, 130)); |
348 |
selectedLayersPanel.add(getSelectedLayersUpButton(), null);
|
349 |
selectedLayersPanel.add(getSelectedLayersDownButton(), null);
|
350 |
selectedLayersPanel.add(getAddLayerButton(), null);
|
351 |
selectedLayersPanel.add(getRemoveLayerButton(), null);
|
352 |
selectedLayersPanel.add(getSelectedLayersScrollPane(), null);
|
353 |
selectedLayersPanel.add(getAddAllButton(), null);
|
354 |
selectedLayersPanel.add(getRemoveAllButton(), null);
|
355 |
} |
356 |
|
357 |
return selectedLayersPanel;
|
358 |
} |
359 |
|
360 |
/**
|
361 |
* This method initializes finalPanel
|
362 |
*
|
363 |
* @return javax.swing.JPanel
|
364 |
*/
|
365 |
protected JPanel getFinalPanel() { |
366 |
if (finalPanel == null) { |
367 |
newLayerNameLabel = new JLabel(); |
368 |
newLayerNameLabel.setBounds(new java.awt.Rectangle(60, 18, 195, 21)); |
369 |
newLayerNameLabel.setText(PluginServices.getText(this,
|
370 |
"enter_new_layer_name"));
|
371 |
finalPanel = new JPanel(); |
372 |
finalPanel.setLayout(null);
|
373 |
finalPanel.setBounds(new java.awt.Rectangle(4, 8, 491 - 34, 49)); // hasta y = 58 |
374 |
finalPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( |
375 |
null, PluginServices.getText(this, "new_layer_name"), |
376 |
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, |
377 |
javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
378 |
|
379 |
// finalPanel.add(newLayerNameLabel, null);
|
380 |
finalPanel.add(getNewLayerNameTextField(), null);
|
381 |
} |
382 |
|
383 |
return finalPanel;
|
384 |
} |
385 |
|
386 |
/**
|
387 |
* This method initializes newLayerNameTextField
|
388 |
*
|
389 |
* @return javax.swing.JTextField
|
390 |
*/
|
391 |
public JTextField getNewLayerNameTextField() { |
392 |
if (newLayerNameTextField == null) { |
393 |
newLayerNameTextField = new JTextField(); |
394 |
newLayerNameTextField.addKeyListener(this);
|
395 |
newLayerNameTextField.addActionListener(this);
|
396 |
newLayerNameTextField.setBounds(new java.awt.Rectangle(10, 19, 437, |
397 |
20));
|
398 |
} |
399 |
|
400 |
return newLayerNameTextField;
|
401 |
} |
402 |
|
403 |
/**
|
404 |
* This method initializes availableLayersTree
|
405 |
*
|
406 |
* @return javax.swing.JTree
|
407 |
*/
|
408 |
public void setAvailableLayersTree(JTree t) { |
409 |
availableLayersTree = t; |
410 |
} |
411 |
|
412 |
public JTree getAvailableLayersTree() { |
413 |
if (availableLayersTree == null) { |
414 |
availableLayersTreeModel = new DefaultTreeModel(layersTreeRootNode); |
415 |
availableLayersTree = new JTree(availableLayersTreeModel) { |
416 |
public JToolTip createToolTip() { |
417 |
JMultilineToolTip jmtt = new JMultilineToolTip();
|
418 |
|
419 |
return jmtt;
|
420 |
} |
421 |
|
422 |
private static final long serialVersionUID = 0; |
423 |
}; |
424 |
|
425 |
ToolTipManager.sharedInstance()
|
426 |
.registerComponent(availableLayersTree); |
427 |
availableLayersTree.setCellRenderer(new AvailableLayersTreeCellRenderer());
|
428 |
|
429 |
availableLayersTree.addTreeSelectionListener(this);
|
430 |
availableLayersTree.addMouseListener(this);
|
431 |
} |
432 |
|
433 |
return availableLayersTree;
|
434 |
} |
435 |
|
436 |
/**
|
437 |
* This method initializes selectedLayersUpButton
|
438 |
*
|
439 |
* @return javax.swing.JButton
|
440 |
*/
|
441 |
protected JButton getSelectedLayersUpButton() { |
442 |
if (selectedLayersUpButton == null) { |
443 |
selectedLayersUpButton = new JButton(); |
444 |
|
445 |
ImageIcon ii = createImageIcon("images/up-arrow.png"); |
446 |
selectedLayersUpButton.setIcon(ii); |
447 |
selectedLayersUpButton.setBounds(new java.awt.Rectangle(10, 35, 36, |
448 |
36));
|
449 |
selectedLayersUpButton.addActionListener(this);
|
450 |
} |
451 |
|
452 |
return selectedLayersUpButton;
|
453 |
} |
454 |
|
455 |
/**
|
456 |
* This method initializes selectedLayersDownButton
|
457 |
*
|
458 |
* @return javax.swing.JButton
|
459 |
*/
|
460 |
protected JButton getSelectedLayersDownButton() { |
461 |
if (selectedLayersDownButton == null) { |
462 |
selectedLayersDownButton = new JButton(); |
463 |
|
464 |
ImageIcon ii = createImageIcon("images/down-arrow.png"); |
465 |
selectedLayersDownButton.setIcon(ii); |
466 |
selectedLayersDownButton.setBounds(new java.awt.Rectangle(10, 75, |
467 |
36, 36)); |
468 |
selectedLayersDownButton.addActionListener(this);
|
469 |
} |
470 |
|
471 |
return selectedLayersDownButton;
|
472 |
} |
473 |
|
474 |
/**
|
475 |
* This method initializes orderedLayersList
|
476 |
*
|
477 |
* @return javax.swing.JList
|
478 |
*/
|
479 |
public void setOrderedLayersList(JList l) { |
480 |
orderedLayersList = l; |
481 |
} |
482 |
|
483 |
public JList getOrderedLayersList() { |
484 |
if (orderedLayersList == null) { |
485 |
if (orderedLayersListModel == null) { |
486 |
orderedLayersListModel = new DefaultListModel(); |
487 |
orderedLayersListModel.addListDataListener(this);
|
488 |
} |
489 |
|
490 |
orderedLayersList = new JList(orderedLayersListModel) { |
491 |
public JToolTip createToolTip() { |
492 |
JMultilineToolTip jmltt = new JMultilineToolTip();
|
493 |
|
494 |
return jmltt;
|
495 |
} |
496 |
|
497 |
private static final long serialVersionUID = 0; |
498 |
}; |
499 |
ToolTipManager.sharedInstance().registerComponent(orderedLayersList);
|
500 |
orderedLayersList.setCellRenderer(new SelectedLayersListCellRenderer());
|
501 |
} |
502 |
|
503 |
return orderedLayersList;
|
504 |
} |
505 |
|
506 |
/**
|
507 |
* This method initializes addLayerButton
|
508 |
*
|
509 |
* @return javax.swing.JButton
|
510 |
*/
|
511 |
protected JButton getAddLayerButton() { |
512 |
if (addLayerButton == null) { |
513 |
addLayerButton = new JButton(); |
514 |
addLayerButton.setText(PluginServices.getText(this, "add")); |
515 |
addLayerButton.addActionListener(this);
|
516 |
addLayerButton.setBounds(new java.awt.Rectangle(365 - 34, 25, 111, |
517 |
21));
|
518 |
} |
519 |
|
520 |
return addLayerButton;
|
521 |
} |
522 |
|
523 |
/**
|
524 |
* This method initializes removeLayerButton
|
525 |
*
|
526 |
* @return javax.swing.JButton
|
527 |
*/
|
528 |
protected JButton getRemoveLayerButton() { |
529 |
if (removeLayerButton == null) { |
530 |
removeLayerButton = new JButton(); |
531 |
removeLayerButton.setText(PluginServices.getText(this, "remove")); |
532 |
removeLayerButton.addActionListener(this);
|
533 |
removeLayerButton.setBounds(new java.awt.Rectangle(365 - 34, 75, |
534 |
111, 21)); |
535 |
} |
536 |
|
537 |
return removeLayerButton;
|
538 |
} |
539 |
|
540 |
public void setSelectedLayersScrollPaneViewPort() { |
541 |
this.selectedLayersScrollPane.setViewportView(orderedLayersList);
|
542 |
} |
543 |
|
544 |
/**
|
545 |
* Adds a layer to the list of available lists. This is done while parsing
|
546 |
* the server's reponse after a <tt>getCapabilities()</tt> request.
|
547 |
*
|
548 |
* @param e
|
549 |
* the element to be added
|
550 |
*/
|
551 |
public void addLayerToAvailableList(LayersListElement e) { |
552 |
DefaultMutableTreeNode node = new DefaultMutableTreeNode(e); |
553 |
this.layersTreeRootNode.add(node);
|
554 |
} |
555 |
|
556 |
/**
|
557 |
* Adds a layer to the list of selected layers after the user has clicked on
|
558 |
* the <i>Add</i> button or double-clicked on an item on the available
|
559 |
* layers list.
|
560 |
*
|
561 |
* @param e
|
562 |
* the element to be added
|
563 |
*/
|
564 |
public void addLayerToSelectedList(LayersListElement e) { |
565 |
if (orderedLayersListModel.contains(e)) {
|
566 |
int r;
|
567 |
String the_message = PluginServices.getText(this, |
568 |
"this_layer_was_already_added") + ". " + |
569 |
PluginServices.getText(this, "add_again_question") + "\n" + |
570 |
PluginServices.getText(this, "layer") + ": " + e.getName(); |
571 |
String the_title = PluginServices.getText(this, |
572 |
"this_layer_was_already_added");
|
573 |
|
574 |
r = JOptionPane.showOptionDialog(this, the_message, the_title, |
575 |
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, |
576 |
null, null, null); |
577 |
|
578 |
if (r == JOptionPane.NO_OPTION) { |
579 |
return;
|
580 |
} |
581 |
} |
582 |
|
583 |
e.setAdded(true);
|
584 |
this.orderedLayersListModel.add(0, e); |
585 |
} |
586 |
|
587 |
/**
|
588 |
* Adds a layer to the list of selected layers without confirmation.
|
589 |
*
|
590 |
* @param e
|
591 |
* the element to be added
|
592 |
*/
|
593 |
public void addLayerToSelectedListNoConfirm(LayersListElement e) { |
594 |
e.setAdded(true);
|
595 |
this.orderedLayersListModel.add(0, e); |
596 |
} |
597 |
|
598 |
/**
|
599 |
* This method initializes availableLayersScrollPane
|
600 |
*
|
601 |
* @return javax.swing.JScrollPane
|
602 |
*/
|
603 |
public JScrollPane getAvailableLayersScrollPane() { |
604 |
if (availableLayersScrollPane == null) { |
605 |
availableLayersScrollPane = new JScrollPane(); |
606 |
availableLayersScrollPane.setBounds(new java.awt.Rectangle(10, 20, |
607 |
471 - 34, 123 - 8)); |
608 |
} |
609 |
|
610 |
return availableLayersScrollPane;
|
611 |
} |
612 |
|
613 |
/**
|
614 |
* This method initializes selectedLayersScrollPane
|
615 |
*
|
616 |
* @return javax.swing.JScrollPane
|
617 |
*/
|
618 |
public JScrollPane getSelectedLayersScrollPane() { |
619 |
if (selectedLayersScrollPane == null) { |
620 |
selectedLayersScrollPane = new JScrollPane(); |
621 |
selectedLayersScrollPane.setBounds(new java.awt.Rectangle(55, 20, |
622 |
301 - 34, 101)); |
623 |
} |
624 |
|
625 |
return selectedLayersScrollPane;
|
626 |
} |
627 |
|
628 |
/**
|
629 |
* This method initializes addAllButton
|
630 |
*
|
631 |
* @return javax.swing.JButton
|
632 |
*/
|
633 |
protected JButton getAddAllButton() { |
634 |
if (addAllButton == null) { |
635 |
addAllButton = new JButton(); |
636 |
addAllButton.setText(PluginServices.getText(this, "add_all")); |
637 |
addAllButton.addActionListener(this);
|
638 |
addAllButton.setBounds(new java.awt.Rectangle(365 - 34, 50, 111, 21)); |
639 |
} |
640 |
|
641 |
return addAllButton;
|
642 |
} |
643 |
|
644 |
/**
|
645 |
* This method initializes removeAllButton
|
646 |
*
|
647 |
* @return javax.swing.JButton
|
648 |
*/
|
649 |
protected JButton getRemoveAllButton() { |
650 |
if (removeAllButton == null) { |
651 |
removeAllButton = new JButton(); |
652 |
removeAllButton.setText(PluginServices.getText(this, "remove_all")); |
653 |
removeAllButton.addActionListener(this);
|
654 |
removeAllButton.setBounds(new java.awt.Rectangle(365 - 34, 100, |
655 |
111, 21)); |
656 |
} |
657 |
|
658 |
return removeAllButton;
|
659 |
} |
660 |
|
661 |
public void contentsChanged(ListDataEvent e) { |
662 |
} |
663 |
|
664 |
/**
|
665 |
* Automatically invoqued when new layers are added to the selected layers
|
666 |
* list. It checks whether the wizard is ready to finish and send gvSIG the
|
667 |
* user's selection.
|
668 |
*/
|
669 |
public void intervalAdded(ListDataEvent e) { |
670 |
logger.info("Added. Now selected: " + orderedLayersListModel.size());
|
671 |
updateWizardLayerQuery(); |
672 |
parentWizard.fireWizardComplete(this.isCorrectlyConfigured());
|
673 |
} |
674 |
|
675 |
/**
|
676 |
* Automatically invoqued when new layers are removed from the selected
|
677 |
* layers list. It checks whether the wizard is ready to finish and send
|
678 |
* gvSIG the user's selection.
|
679 |
*/
|
680 |
public void intervalRemoved(ListDataEvent e) { |
681 |
logger.info("Removed. Now selected: " + orderedLayersListModel.size());
|
682 |
updateWizardLayerQuery(); |
683 |
this.parentWizard.fireWizardComplete(this.isCorrectlyConfigured()); |
684 |
} |
685 |
|
686 |
/**
|
687 |
* Checks whether the wizard is ready to finish and send gvSIG the user's
|
688 |
* selection.
|
689 |
*
|
690 |
* @return <b>true</b> if the wizard is ready to finish, <b>false</b>
|
691 |
* otherwise
|
692 |
*/
|
693 |
public boolean isCorrectlyConfigured() { |
694 |
if (this.orderedLayersListModel.size() == 0) { |
695 |
return false; |
696 |
} |
697 |
|
698 |
if (this.newLayerNameTextField.getText().length() == 0) { |
699 |
return false; |
700 |
} |
701 |
|
702 |
return true; |
703 |
} |
704 |
|
705 |
/**
|
706 |
* Updates panel's local variables: <tt>setLayerQuery(String)</tt> sets a
|
707 |
* comma-separated list of layers (the selected ones) and
|
708 |
* <tt>setNewLayerName(String)</tt> sets the name of the new layer to be
|
709 |
* created and sent to gvSIG.
|
710 |
*/
|
711 |
protected void updateWizardLayerQuery() { |
712 |
if (orderedLayersListModel.size() == 0) { |
713 |
return;
|
714 |
} |
715 |
|
716 |
String idAcum = ""; |
717 |
|
718 |
for (int i = orderedLayersListModel.size() - 1; i >= 0; i--) { |
719 |
idAcum = idAcum + "," +
|
720 |
((LayersListElement) orderedLayersListModel.get(i)).getID(); |
721 |
} |
722 |
|
723 |
idAcum = idAcum.substring(1); // elimina la coma inicial |
724 |
|
725 |
parentWizard.setLayerQuery(idAcum); |
726 |
parentWizard.setNewLayerName(this.newLayerNameTextField.getText());
|
727 |
} |
728 |
|
729 |
/**
|
730 |
* Empties both lists: available layers list and selected layers list.
|
731 |
*/
|
732 |
public void emptyTables() { |
733 |
// re-start available layers' tree node:
|
734 |
layersTreeRootObject = new ServiceNamesObject(parentWizard.getServiceName(),
|
735 |
"ImageServer", "Enabled"); |
736 |
layersTreeRootNode = new DefaultMutableTreeNode(layersTreeRootObject); |
737 |
|
738 |
// empty the service dateails table:
|
739 |
loadServiceDetailsTable(null);
|
740 |
|
741 |
if (availableLayersTree != null) { |
742 |
availableLayersTree.removeAll(); |
743 |
} |
744 |
|
745 |
refreshAvailableLayersTree(); |
746 |
|
747 |
if (orderedLayersListModel != null) { |
748 |
orderedLayersListModel.removeAllElements(); |
749 |
} |
750 |
|
751 |
refreshSelectedLayersList(); |
752 |
|
753 |
newLayerNameTextField.setText(parentWizard.getServiceName()); |
754 |
} |
755 |
|
756 |
/**
|
757 |
* Listens to button events: Add (all) layer, Remove (all) layer, Move up,
|
758 |
* Move down.
|
759 |
*/
|
760 |
public void actionPerformed(ActionEvent e) { |
761 |
LayersListElement sel; |
762 |
DefaultMutableTreeNode node;
|
763 |
int ind;
|
764 |
int noofremoved;
|
765 |
int[] selInds; |
766 |
|
767 |
if (e.getSource() == addLayerButton) {
|
768 |
// JTable.getSelectionRows() is 0-based but root is displayed so
|
769 |
// item 0 is the root itself
|
770 |
selInds = availableLayersTree.getSelectionRows(); |
771 |
|
772 |
if (selInds == null) { |
773 |
return;
|
774 |
} |
775 |
|
776 |
if (selInds.length == 0) { |
777 |
return;
|
778 |
} |
779 |
|
780 |
Object root = availableLayersTree.getModel().getRoot();
|
781 |
int noofchildren = availableLayersTree.getModel().getChildCount(root);
|
782 |
|
783 |
for (int i = 0; i < noofchildren; i++) { |
784 |
// JTable.getSelectionRows() is 0-based but root is displayed so
|
785 |
// item 0 is the root itself, and we ignore it here of course:
|
786 |
ind = LayersListElement.getFirstIndexInIntArray(selInds, i + 1);
|
787 |
|
788 |
if (ind != -1) { |
789 |
node = (DefaultMutableTreeNode) availableLayersTree.getModel()
|
790 |
.getChild(root, |
791 |
i); |
792 |
sel = (LayersListElement) node.getUserObject(); |
793 |
addLayerToSelectedList(sel); |
794 |
} |
795 |
} |
796 |
|
797 |
refreshAvailableLayersTree(); |
798 |
refreshSelectedLayersList(); |
799 |
} |
800 |
|
801 |
if (e.getSource() == removeLayerButton) {
|
802 |
selInds = orderedLayersList.getSelectedIndices(); |
803 |
|
804 |
if (selInds.length == 0) { |
805 |
return;
|
806 |
} |
807 |
|
808 |
noofremoved = 0;
|
809 |
|
810 |
for (int i = 0; i < selInds.length; i++) { |
811 |
sel = (LayersListElement) orderedLayersListModel.remove(selInds[i] - |
812 |
noofremoved); |
813 |
noofremoved++; |
814 |
sel.setAdded(orderedLayersListModel.contains(sel)); |
815 |
} |
816 |
|
817 |
refreshAvailableLayersTree(); |
818 |
refreshSelectedLayersList(); |
819 |
} |
820 |
|
821 |
if (e.getSource() == addAllButton) {
|
822 |
Object root = availableLayersTree.getModel().getRoot();
|
823 |
int nofchildren = this.availableLayersTree.getModel() |
824 |
.getChildCount(root); |
825 |
|
826 |
for (int i = 0; i < nofchildren; i++) { |
827 |
node = (DefaultMutableTreeNode) availableLayersTree.getModel()
|
828 |
.getChild(root, |
829 |
i); |
830 |
sel = (LayersListElement) node.getUserObject(); |
831 |
logger.info("Adding element: " + sel.toString());
|
832 |
addLayerToSelectedList(sel); |
833 |
} |
834 |
|
835 |
refreshAvailableLayersTree(); |
836 |
refreshSelectedLayersList(); |
837 |
} |
838 |
|
839 |
if (e.getSource() == removeAllButton) {
|
840 |
while (orderedLayersListModel.size() > 0) { |
841 |
sel = (LayersListElement) this.orderedLayersListModel.remove(0); |
842 |
sel.setAdded(false);
|
843 |
} |
844 |
|
845 |
refreshAvailableLayersTree(); |
846 |
refreshSelectedLayersList(); |
847 |
} |
848 |
|
849 |
if (e.getSource() == selectedLayersDownButton) {
|
850 |
int l = orderedLayersListModel.size();
|
851 |
|
852 |
if (l == 0) { |
853 |
return;
|
854 |
} |
855 |
|
856 |
selInds = orderedLayersList.getSelectedIndices(); |
857 |
|
858 |
if (selInds.length != 1) { |
859 |
return;
|
860 |
} |
861 |
|
862 |
if (l == (selInds[0] + 1)) { |
863 |
return; // last item cannot be moved down |
864 |
} |
865 |
|
866 |
sel = (LayersListElement) orderedLayersListModel.remove(selInds[0]);
|
867 |
orderedLayersListModel.add(selInds[0] + 1, sel); |
868 |
refreshSelectedLayersList(); |
869 |
orderedLayersList.setSelectedIndex(selInds[0] + 1); |
870 |
refreshAvailableLayersTree(); |
871 |
} |
872 |
|
873 |
if (e.getSource() == selectedLayersUpButton) {
|
874 |
int l = orderedLayersListModel.size();
|
875 |
|
876 |
if (l == 0) { |
877 |
return;
|
878 |
} |
879 |
|
880 |
selInds = orderedLayersList.getSelectedIndices(); |
881 |
|
882 |
if (selInds.length != 1) { |
883 |
return;
|
884 |
} |
885 |
|
886 |
if (selInds[0] == 0) { |
887 |
return; // first item cannot be moved up |
888 |
} |
889 |
|
890 |
sel = (LayersListElement) orderedLayersListModel.remove(selInds[0]);
|
891 |
orderedLayersListModel.add(selInds[0] - 1, sel); |
892 |
refreshSelectedLayersList(); |
893 |
orderedLayersList.setSelectedIndex(selInds[0] - 1); |
894 |
refreshAvailableLayersTree(); |
895 |
} |
896 |
|
897 |
if (e.getSource() == newLayerNameTextField) {
|
898 |
try {
|
899 |
JTabbedPane jtp = ((JTabbedPane) parentWizard.getParent()); |
900 |
AddLayerDialog fod = (AddLayerDialog) jtp.getParent(); |
901 |
JPanel jp = (JPanel) fod.getComponent(1); |
902 |
JButton acceptButton = (JButton) jp.getComponent(0); |
903 |
ActionListener[] clickListeners = acceptButton.getActionListeners(); |
904 |
ActionEvent artificialEvent = new ActionEvent(acceptButton, |
905 |
ActionEvent.ACTION_PERFORMED, ""); |
906 |
|
907 |
if (!acceptButton.isEnabled()) {
|
908 |
return;
|
909 |
} |
910 |
|
911 |
for (int i = 0; i < clickListeners.length; i++) |
912 |
clickListeners[i].actionPerformed(artificialEvent); |
913 |
} |
914 |
catch (RuntimeException e1) { |
915 |
logger.error("Unable to send the click event to the FOpenDialog 'Accept' button. ",
|
916 |
e1); |
917 |
} |
918 |
} |
919 |
|
920 |
if (e.getSource() == changeServerButton) {
|
921 |
this.parentWizard.setEnabledPanels("main"); |
922 |
} |
923 |
|
924 |
if (e.getSource() == serviceInfoNextButton) {
|
925 |
int currentTab = this.imgServiceTabbedPane.getSelectedIndex(); |
926 |
int maxTab = this.imgServiceTabbedPane.getTabCount() - 1; |
927 |
|
928 |
if (currentTab < maxTab) {
|
929 |
imgServiceTabbedPane.setSelectedIndex(currentTab + 1);
|
930 |
} |
931 |
} |
932 |
|
933 |
if (e.getSource() == serviceInfoPreviousButton) {
|
934 |
int currentTab = this.imgServiceTabbedPane.getSelectedIndex(); |
935 |
|
936 |
if (currentTab > 0) { |
937 |
imgServiceTabbedPane.setSelectedIndex(currentTab - 1);
|
938 |
} |
939 |
else {
|
940 |
if (currentTab == 0) { |
941 |
parentWizard.setEnabledPanels("main");
|
942 |
} |
943 |
} |
944 |
} |
945 |
} |
946 |
|
947 |
public void keyTyped(KeyEvent e) { |
948 |
} |
949 |
|
950 |
public void keyPressed(KeyEvent e) { |
951 |
} |
952 |
|
953 |
/**
|
954 |
* Listens to changes in the text field where the new layer's name is typed.
|
955 |
* The decision whether the wizard is ready to finish or not depends on this
|
956 |
* event too.
|
957 |
*/
|
958 |
public void keyReleased(KeyEvent e) { |
959 |
if (e.getSource() == newLayerNameTextField) {
|
960 |
this.parentWizard.setNewLayerName(this.newLayerNameTextField.getText()); |
961 |
this.parentWizard.fireWizardComplete(this.isCorrectlyConfigured()); |
962 |
} |
963 |
} |
964 |
|
965 |
/**
|
966 |
* This method initializes serviceDetailsTable
|
967 |
*
|
968 |
* @return JEditorPane
|
969 |
*/
|
970 |
protected JEditorPane getServiceDetailsTable() { |
971 |
if (serviceDetailsTable == null) { |
972 |
serviceDetailsTable = new JEditorPane(); |
973 |
serviceDetailsTable.setContentType("text/html");
|
974 |
serviceDetailsTable.setEditable(false);
|
975 |
|
976 |
String htmlInfo = this.getFormattedHtmlInfo(serviceDetailsTableDataVector, |
977 |
serviceDetailsTableColumnNamesVector); |
978 |
serviceDetailsTable.setText(htmlInfo); |
979 |
} |
980 |
|
981 |
return serviceDetailsTable;
|
982 |
} |
983 |
|
984 |
public void loadServiceDetailsTable(ServiceInformation si) { |
985 |
Vector data = new Vector(); |
986 |
Vector item = new Vector(); |
987 |
Vector cols = new Vector(); |
988 |
|
989 |
if (si != null) { |
990 |
// A valid ArcImsProtocolHandler.ServiceInformation parameter
|
991 |
cols.add(PluginServices.getText(this, "property")); |
992 |
cols.add(PluginServices.getText(this, "value")); |
993 |
|
994 |
if (si.getEnvelope() != null) { |
995 |
item.add(PluginServices.getText(this, "xrange")); |
996 |
item.add("[ " +
|
997 |
ServicesTableModel.leaveNDigits(si.getEnvelope().getXmin(), |
998 |
10) + ", " + |
999 |
ServicesTableModel.leaveNDigits(si.getEnvelope().getXmax(), |
1000 |
10) + " ]"); |
1001 |
data.add(item.clone()); |
1002 |
item.removeAllElements(); |
1003 |
item.add(PluginServices.getText(this, "yrange")); |
1004 |
item.add("[ " +
|
1005 |
ServicesTableModel.leaveNDigits(si.getEnvelope().getYmin(), |
1006 |
10) + ", " + |
1007 |
ServicesTableModel.leaveNDigits(si.getEnvelope().getYmax(), |
1008 |
10) + " ]"); |
1009 |
data.add(item.clone()); |
1010 |
item.removeAllElements(); |
1011 |
} |
1012 |
else {
|
1013 |
item.add(PluginServices.getText(this, "xrange")); |
1014 |
item.add(PluginServices.getText(this, "not_available")); |
1015 |
data.add(item.clone()); |
1016 |
item.removeAllElements(); |
1017 |
item.add(PluginServices.getText(this, "yrange")); |
1018 |
item.add(PluginServices.getText(this, "not_available")); |
1019 |
data.add(item.clone()); |
1020 |
item.removeAllElements(); |
1021 |
} |
1022 |
|
1023 |
if (si.getLocale().getLanguage().length() > 0) { |
1024 |
item.add(PluginServices.getText(this, "language")); |
1025 |
item.add(lowerPS(si.getLocale().getLanguage() + "_language"));
|
1026 |
data.add(item.clone()); |
1027 |
item.removeAllElements(); |
1028 |
} |
1029 |
else {
|
1030 |
item.add(PluginServices.getText(this, "language")); |
1031 |
item.add(PluginServices.getText(this, "not_available")); |
1032 |
data.add(item.clone()); |
1033 |
item.removeAllElements(); |
1034 |
} |
1035 |
|
1036 |
if (si.getMapunits().length() > 0) { |
1037 |
item.add(PluginServices.getText(this, "units")); |
1038 |
item.add(lowerPS(si.getMapunits())); |
1039 |
data.add(item.clone()); |
1040 |
item.removeAllElements(); |
1041 |
} |
1042 |
else {
|
1043 |
item.add(PluginServices.getText(this, "units")); |
1044 |
item.add(PluginServices.getText(this, "not_available")); |
1045 |
data.add(item.clone()); |
1046 |
item.removeAllElements(); |
1047 |
} |
1048 |
|
1049 |
if (si.getLocale().getCountry().length() > 0) { |
1050 |
item.add(PluginServices.getText(this, "country")); |
1051 |
item.add(lowerPS(si.getLocale().getCountry() + "_country"));
|
1052 |
data.add(item.clone()); |
1053 |
item.removeAllElements(); |
1054 |
} |
1055 |
else {
|
1056 |
item.add(PluginServices.getText(this, "country")); |
1057 |
item.add(PluginServices.getText(this, "not_available")); |
1058 |
data.add(item.clone()); |
1059 |
item.removeAllElements(); |
1060 |
} |
1061 |
|
1062 |
if (si.getFeaturecoordsys().length() > 0) { |
1063 |
item.add(PluginServices.getText(this, "coord_system")); |
1064 |
item.add(si.getFeaturecoordsys()); |
1065 |
data.add(item.clone()); |
1066 |
item.removeAllElements(); |
1067 |
} |
1068 |
else {
|
1069 |
item.add(PluginServices.getText(this, "coord_system")); |
1070 |
item.add(PluginServices.getText(this, "not_available")); |
1071 |
data.add(item.clone()); |
1072 |
item.removeAllElements(); |
1073 |
} |
1074 |
|
1075 |
if (si.getScreen_dpi() != -1) { |
1076 |
item.add("DPI");
|
1077 |
item.add(Integer.toString(si.getScreen_dpi()));
|
1078 |
data.add(item.clone()); |
1079 |
item.removeAllElements(); |
1080 |
} |
1081 |
else {
|
1082 |
item.add("DPI");
|
1083 |
item.add(PluginServices.getText(this, "default") + ", 96"); |
1084 |
data.add(item.clone()); |
1085 |
item.removeAllElements(); |
1086 |
} |
1087 |
|
1088 |
if (this instanceof ImageServicePanel) { |
1089 |
if (si.getImagelimit_pixelcount().length() > 0) { |
1090 |
item.add(PluginServices.getText(this, "max_no_of_pixels")); |
1091 |
item.add(si.getImagelimit_pixelcount()); |
1092 |
data.add(item.clone()); |
1093 |
item.removeAllElements(); |
1094 |
} |
1095 |
else {
|
1096 |
item.add(PluginServices.getText(this, "max_no_of_pixels")); |
1097 |
item.add(PluginServices.getText(this, "not_available")); |
1098 |
data.add(item.clone()); |
1099 |
item.removeAllElements(); |
1100 |
} |
1101 |
} |
1102 |
} |
1103 |
else {
|
1104 |
// A null ServiceInformation parameter (we must empty the
|
1105 |
// table). do nothing, because 'data' and 'cols' vectors are empty
|
1106 |
} |
1107 |
|
1108 |
serviceDetailsTableDataVector = (Vector) data.clone();
|
1109 |
serviceDetailsTableColumnNamesVector = (Vector) cols.clone();
|
1110 |
serviceDetailsTable = null;
|
1111 |
serviceDetailsTable = getServiceDetailsTable(); |
1112 |
serviceDetailsScrollPane.setBounds(new java.awt.Rectangle(0, 0, |
1113 |
470 - 14, 345 + 31)); |
1114 |
serviceDetailsScrollPane.setViewportView(serviceDetailsTable); |
1115 |
} |
1116 |
|
1117 |
protected ImageIcon createImageIcon(String path) { |
1118 |
java.net.URL imgURL = createResourceUrl(path); |
1119 |
|
1120 |
if (imgURL != null) { |
1121 |
return new ImageIcon(imgURL); |
1122 |
} |
1123 |
else {
|
1124 |
logger.error("File not found: " + path);
|
1125 |
|
1126 |
return null; |
1127 |
} |
1128 |
} |
1129 |
|
1130 |
protected void setNextPreviousEnabled(int selectedTab) { |
1131 |
int lastTabIndex = imgServiceTabbedPane.getTabCount() - 1; |
1132 |
serviceInfoNextButton.setEnabled(selectedTab < lastTabIndex); |
1133 |
serviceInfoPreviousButton.setEnabled((selectedTab > 0) ||
|
1134 |
(!isProperties)); |
1135 |
} |
1136 |
|
1137 |
public void stateChanged(ChangeEvent e) { |
1138 |
if (e.getSource() == imgServiceTabbedPane) {
|
1139 |
setNextPreviousEnabled(imgServiceTabbedPane.getSelectedIndex()); |
1140 |
} |
1141 |
} |
1142 |
|
1143 |
public void setServiceInfoTabNumber(int i) { |
1144 |
imgServiceTabbedPane.setSelectedIndex(i); |
1145 |
} |
1146 |
|
1147 |
protected String getFormattedHtmlInfo(Vector data, Vector colnames) { |
1148 |
String location_title_text = PluginServices.getText(this, "data_origin"); |
1149 |
String properties_title_text = PluginServices.getText(this, "properties"); |
1150 |
|
1151 |
String server_title = PluginServices.getText(this, "server"); |
1152 |
String service_name_title = PluginServices.getText(this, "service"); |
1153 |
String service_type_title = PluginServices.getText(this, "service_type"); |
1154 |
|
1155 |
String serverURL = parentWizard.getHostName();
|
1156 |
String serviceName = parentWizard.getServiceName();
|
1157 |
String serviceType = lowerPS(parentWizard.getServiceType());
|
1158 |
|
1159 |
String html = "<html><body>\n" + |
1160 |
"<table align=\"center\" width=\"425\" border=\"0\" cellpadding=\"4\" cellspacing=\"4\">\n" +
|
1161 |
"<tr valign=\"top\" bgcolor=\"#FFFFFF\">\n" +
|
1162 |
"<td height=\"18\" bgcolor=" + bgColor3 +
|
1163 |
" colspan=\"2\"><font face=\"" + font + "\" size=\"4\"><b>" + |
1164 |
location_title_text + "</font></b></td>\n</tr>\n";
|
1165 |
html = html + "<tr valign=\"top\" bgcolor=" + bgColor0 + ">\n" + |
1166 |
"<td width=\"110\" height=\"18\" bgcolor=\"#D6D6D6\" align=\"right\"><font face=\"" +
|
1167 |
font + "\" size=\"3\"><b>" + server_title + "</b></font></td>" + |
1168 |
"<td><font face=\"" + font + "\" size=\"3\">" + serverURL + |
1169 |
"</font></td>\n</tr>\n";
|
1170 |
html = html + "<tr valign=\"top\" bgcolor=" + bgColor0 + ">\n" + |
1171 |
"<td height=\"18\" bgcolor=\"#D6D6D6\" align=\"right\"><font face=\"" +
|
1172 |
font + "\" size=\"3\"><b>" + service_name_title +
|
1173 |
"</b></font></td>" + "<td bgcolor=\"#eaeaea\"><font face=\"" + |
1174 |
font + "\" size=\"3\">" + serviceName + "</font></td>\n</tr>\n"; |
1175 |
html = html + "<tr valign=\"top\" bgcolor=" + bgColor0 + ">\n" + |
1176 |
"<td height=\"18\" bgcolor=\"#D6D6D6\" align=\"right\"><font face=\"" +
|
1177 |
font + "\" size=\"3\"><b>" + service_type_title +
|
1178 |
"</b></font></td>" + "<td><font face=\"" + font + "\" size=\"3\">" + |
1179 |
serviceType + "</font></td>\n</tr>\n</table>\n\n";
|
1180 |
html = html + |
1181 |
"<table align=\"center\" width=\"425\" border=\"0\" cellpadding=\"4\" cellspacing=\"4\">\n" +
|
1182 |
"<tr valign=\"top\" bgcolor=\"#FFFFFF\">\n" +
|
1183 |
"<td height=\"18\" bgcolor=" + bgColor3 +
|
1184 |
" colspan=\"2\"><font face=\"" + font + "\" size=\"4\"><b>" + |
1185 |
properties_title_text + "</font></b></td>\n</tr>\n";
|
1186 |
|
1187 |
for (int i = 0; i < data.size(); i++) { |
1188 |
html = html + getTwoStringsOfNthItemIntoHtmlCode(data, i); |
1189 |
} |
1190 |
|
1191 |
html = html + "</table>\n</body></html>";
|
1192 |
|
1193 |
return html;
|
1194 |
} |
1195 |
|
1196 |
protected String getTwoStringsOfNthItemIntoHtmlCode(Vector d, int i) { |
1197 |
String string_1 = (String) ((Vector) d.get(i)).get(0); |
1198 |
String string_2 = (String) ((Vector) d.get(i)).get(1); |
1199 |
String[] bgrColor = new String[2]; |
1200 |
bgrColor[0] = "\"#feedd6\""; |
1201 |
bgrColor[1] = "\"#eaeaea\""; |
1202 |
|
1203 |
String response = "<tr valign=\"top\">\n" + |
1204 |
" <td width=\"110\" height=\"18\" bgcolor=\"#d6d6d6\" align=\"right\"><font face=\"" +
|
1205 |
font + "\" size=\"3\"><b>" + string_1 + "</b></font></td>" + |
1206 |
" <td bgcolor=" + bgrColor[i % 2] + "><font face=\"" + font + |
1207 |
"\" size=\"3\">" + string_2 + "</font></td>" + "\n</tr>\n"; |
1208 |
|
1209 |
return response;
|
1210 |
} |
1211 |
|
1212 |
public void valueChanged(TreeSelectionEvent e) { |
1213 |
if (e.getSource() == availableLayersTree) {
|
1214 |
availableLayersTree.removeSelectionRow(0);
|
1215 |
} |
1216 |
} |
1217 |
|
1218 |
public void itemStateChanged(ItemEvent e) { |
1219 |
if (e.getSource() == showIdCheckBox) {
|
1220 |
setShowIdsToTwoLists(showIdCheckBox.isSelected()); |
1221 |
refreshAvailableLayersTree(); |
1222 |
refreshSelectedLayersList(); |
1223 |
} |
1224 |
} |
1225 |
|
1226 |
protected void setShowIdsToTwoLists(boolean show) { |
1227 |
// available layers tree:
|
1228 |
DefaultMutableTreeNode dmtn;
|
1229 |
LayersListElement lle; |
1230 |
Object root = availableLayersTreeModel.getRoot();
|
1231 |
int nofchildren = availableLayersTreeModel.getChildCount(root);
|
1232 |
|
1233 |
for (int i = 0; i < nofchildren; i++) { |
1234 |
dmtn = (DefaultMutableTreeNode) availableLayersTreeModel.getChild(root,
|
1235 |
i); |
1236 |
lle = (LayersListElement) dmtn.getUserObject(); |
1237 |
lle.setShowIds(show); |
1238 |
} |
1239 |
|
1240 |
availableLayersTree.repaint(); |
1241 |
|
1242 |
// selected layers list:
|
1243 |
for (int i = 0; i < orderedLayersListModel.size(); i++) { |
1244 |
lle = (LayersListElement) orderedLayersListModel.get(i); |
1245 |
lle.setShowIds(show); |
1246 |
} |
1247 |
|
1248 |
orderedLayersList.repaint(); |
1249 |
} |
1250 |
|
1251 |
public void refreshAvailableLayersTree() { |
1252 |
setAvailableLayersTree(null);
|
1253 |
availableLayersTree = getAvailableLayersTree(); |
1254 |
availableLayersScrollPane.setViewportView(availableLayersTree); |
1255 |
} |
1256 |
|
1257 |
public void refreshSelectedLayersList() { |
1258 |
setOrderedLayersList(null);
|
1259 |
orderedLayersList = getOrderedLayersList(); |
1260 |
selectedLayersScrollPane.setViewportView(orderedLayersList); |
1261 |
} |
1262 |
|
1263 |
public JButton getChangeServerButton() { |
1264 |
return changeServerButton;
|
1265 |
} |
1266 |
|
1267 |
public void mouseClicked(MouseEvent e) { |
1268 |
if ((e.getSource() == this.availableLayersTree) && |
1269 |
(e.getClickCount() == 2)) {
|
1270 |
ActionEvent artificialEvent = new ActionEvent(this.addLayerButton, |
1271 |
ActionEvent.ACTION_PERFORMED, ""); |
1272 |
this.actionPerformed(artificialEvent);
|
1273 |
} |
1274 |
} |
1275 |
|
1276 |
public void mouseEntered(MouseEvent e) { |
1277 |
} |
1278 |
|
1279 |
public void mouseExited(MouseEvent e) { |
1280 |
} |
1281 |
|
1282 |
public void mousePressed(MouseEvent e) { |
1283 |
} |
1284 |
|
1285 |
public void mouseReleased(MouseEvent e) { |
1286 |
} |
1287 |
|
1288 |
public JPanel getImgServiceTab_2() { |
1289 |
return imgServiceTab_2;
|
1290 |
} |
1291 |
|
1292 |
public JButton getServiceInfoNextButton() { |
1293 |
return serviceInfoNextButton;
|
1294 |
} |
1295 |
|
1296 |
public JPanel getChangeServerPanel() { |
1297 |
return changeServerPanel;
|
1298 |
} |
1299 |
|
1300 |
private String lowerPS(String str) { |
1301 |
return PluginServices.getText(this, str.toLowerCase()); |
1302 |
} |
1303 |
|
1304 |
protected java.net.URL createResourceUrl(String path) { |
1305 |
return getClass().getClassLoader().getResource(path);
|
1306 |
} |
1307 |
|
1308 |
public boolean isGroupOptionSelected() { |
1309 |
return groupCheckBox.isSelected();
|
1310 |
} |
1311 |
|
1312 |
public void setTextInVersionLabel(String vers) { |
1313 |
versionLabel.setText(vers); |
1314 |
} |
1315 |
|
1316 |
private boolean isVisibleByDefault(ServiceInformation _si, String layerid) { |
1317 |
int layercount = _si.getLayers().size();
|
1318 |
|
1319 |
for (int i = 0; i < layercount; i++) { |
1320 |
ServiceInformationLayer sil = (ServiceInformationLayer) _si.getLayerById(layerid); |
1321 |
|
1322 |
if (isTrueString(sil.getVisible())) {
|
1323 |
return true; |
1324 |
} |
1325 |
} |
1326 |
|
1327 |
return false; |
1328 |
} |
1329 |
|
1330 |
private boolean isTrueString(String visible) { |
1331 |
if (visible.compareToIgnoreCase("true") == 0) { |
1332 |
return true; |
1333 |
} |
1334 |
|
1335 |
return false; |
1336 |
} |
1337 |
} // @jve:decl-index=0:visual-constraint="10,10"
|