Revision 727 org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.swing/org.gvsig.topology.swing.impl/src/main/java/org/gvsig/topology/swing/impl/SelectDataSetDialog.java
SelectDataSetDialog.java | ||
---|---|---|
1 | 1 |
package org.gvsig.topology.swing.impl; |
2 | 2 |
|
3 | 3 |
import java.awt.Dimension; |
4 |
import java.awt.event.MouseAdapter; |
|
5 |
import java.awt.event.MouseEvent; |
|
6 |
import java.util.ArrayList; |
|
7 |
import java.util.List; |
|
8 |
import java.util.Objects; |
|
9 |
import javax.swing.ImageIcon; |
|
10 |
import javax.swing.JLabel; |
|
4 | 11 |
import javax.swing.JTree; |
5 | 12 |
import javax.swing.event.TreeSelectionEvent; |
6 | 13 |
import javax.swing.event.TreeSelectionListener; |
14 |
import javax.swing.tree.DefaultTreeCellRenderer; |
|
7 | 15 |
import javax.swing.tree.TreePath; |
8 | 16 |
import org.apache.commons.lang3.StringUtils; |
9 | 17 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
... | ... | |
37 | 45 |
performDataSetSelected(); |
38 | 46 |
} |
39 | 47 |
}); |
48 |
this.treeDataSets.setCellRenderer(new DefaultTreeCellRenderer() { |
|
49 |
@Override |
|
50 |
public java.awt.Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { |
|
51 |
JLabel label = (JLabel) super.getTreeCellRendererComponent(tree,value, selected, expanded, leaf, row, hasFocus); |
|
52 |
ImageIcon icon = services.getTreeIcon(tree.getModel(),value); |
|
53 |
label.setIcon(icon); |
|
54 |
label.setText(Objects.toString(value, "")); |
|
55 |
return label; |
|
56 |
} |
|
57 |
}); |
|
58 |
this.treeDataSets.addMouseListener(new MouseAdapter() { |
|
59 |
@Override |
|
60 |
public void mouseClicked(MouseEvent e) { |
|
61 |
if( e.getButton()==MouseEvent.BUTTON1 && e.getClickCount()==2 ) { |
|
62 |
setVisible(false); |
|
63 |
} |
|
64 |
} |
|
65 |
}); |
|
40 | 66 |
this.setPreferredSize(new Dimension(350, 400)); |
41 | 67 |
this.translate(); |
42 | 68 |
} |
... | ... | |
65 | 91 |
this.dialog.setButtonEnabled(WindowManager_v2.BUTTONS_OK, enabled); |
66 | 92 |
} |
67 | 93 |
|
68 |
private TopologyDataSet getSelectedDataSet() { |
|
69 |
TreePath path = treeDataSets.getSelectionPath(); |
|
70 |
Object element = path.getLastPathComponent(); |
|
71 |
if (element instanceof TopologyDataSet) { |
|
72 |
TopologyDataSet dataSet = (TopologyDataSet) element; |
|
73 |
return dataSet; |
|
94 |
private List<TopologyDataSet> getSelectedDataSets() { |
|
95 |
TreePath[] paths = treeDataSets.getSelectionPaths(); |
|
96 |
List<TopologyDataSet> datasets = new ArrayList<>(); |
|
97 |
for (TreePath path : paths) { |
|
98 |
Object element = path.getLastPathComponent(); |
|
99 |
if (element instanceof TopologyDataSet) { |
|
100 |
TopologyDataSet dataSet = (TopologyDataSet) element; |
|
101 |
datasets.add(dataSet); |
|
102 |
} |
|
74 | 103 |
} |
75 |
return null;
|
|
104 |
return datasets;
|
|
76 | 105 |
} |
77 | 106 |
|
78 |
public TopologyDataSet getDataSet() {
|
|
79 |
TopologyDataSet dataSet = this.getSelectedDataSet();
|
|
80 |
if (dataSet == null) {
|
|
107 |
public List<TopologyDataSet> getDataSets() {
|
|
108 |
List<TopologyDataSet> dataSets = this.getSelectedDataSets();
|
|
109 |
if (dataSets == null || dataSets.isEmpty()) {
|
|
81 | 110 |
return null; |
82 | 111 |
} |
83 |
String name = this.txtName.getText(); |
|
84 |
if (!StringUtils.isEmpty(name)) { |
|
85 |
dataSet.setName(name); |
|
112 |
if( dataSets.size()==1 ) { |
|
113 |
String name = this.txtName.getText(); |
|
114 |
if (!StringUtils.isEmpty(name)) { |
|
115 |
dataSets.get(0).setName(name); |
|
116 |
} |
|
86 | 117 |
} |
87 |
return dataSet; |
|
118 |
return dataSets;
|
|
88 | 119 |
} |
89 | 120 |
|
90 | 121 |
public void performDataSetSelected() { |
91 |
TopologyDataSet dataSet = this.getSelectedDataSet();
|
|
92 |
if (dataSet == null) {
|
|
122 |
List<TopologyDataSet> dataSets = this.getSelectedDataSets();
|
|
123 |
if (dataSets == null || dataSets.isEmpty()) {
|
|
93 | 124 |
this.txtName.setText(""); |
94 | 125 |
this.setOkButtonEnabled(false); |
95 | 126 |
} else { |
96 |
this.txtName.setText(dataSet.getName()); |
|
127 |
this.txtName.setText(dataSets.get(0).getName());
|
|
97 | 128 |
this.setOkButtonEnabled(true); |
98 | 129 |
} |
99 | 130 |
} |
Also available in: Unified diff