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