gvsig-projects-pool / org.gvsig.topology / trunk / org.gvsig.topology / org.gvsig.topology.swing / org.gvsig.topology.swing.impl / src / main / java / org / gvsig / topology / swing / impl / DefaultJTopologyPlanProperties.java @ 726
History | View | Annotate | Download (8.02 KB)
1 |
package org.gvsig.topology.swing.impl; |
---|---|
2 |
|
3 |
import java.awt.Dimension; |
4 |
import java.awt.event.ActionEvent; |
5 |
import java.awt.event.ActionListener; |
6 |
import javax.swing.DefaultListModel; |
7 |
import javax.swing.JComponent; |
8 |
import javax.swing.event.ListSelectionEvent; |
9 |
import javax.swing.event.ListSelectionListener; |
10 |
import org.gvsig.tools.ToolsLocator; |
11 |
import org.gvsig.tools.i18n.I18nManager; |
12 |
import org.gvsig.tools.swing.api.ListElement; |
13 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
14 |
import org.gvsig.tools.swing.api.ToolsSwingManager; |
15 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
16 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
17 |
import org.gvsig.topology.lib.api.TopologyDataSet; |
18 |
import org.gvsig.topology.lib.api.TopologyLocator; |
19 |
import org.gvsig.topology.lib.api.TopologyPlan; |
20 |
import org.gvsig.topology.lib.api.TopologyRule; |
21 |
import org.gvsig.topology.swing.api.JTopologyPlanProperties; |
22 |
|
23 |
/**
|
24 |
*
|
25 |
* @author jjdelcerro
|
26 |
*/
|
27 |
public class DefaultJTopologyPlanProperties |
28 |
extends DefaultJTopologyPlanPropertiesView
|
29 |
implements JTopologyPlanProperties {
|
30 |
|
31 |
private TopologyPlan plan;
|
32 |
|
33 |
public DefaultJTopologyPlanProperties() {
|
34 |
this.plan = TopologyLocator.getTopologyManager().createTopologyPlan();
|
35 |
|
36 |
this.initComponents();
|
37 |
} |
38 |
|
39 |
private void initComponents() { |
40 |
this.translate();
|
41 |
|
42 |
this.btnAddDataSet.addActionListener(new ActionListener() { |
43 |
@Override
|
44 |
public void actionPerformed(ActionEvent e) { |
45 |
performAddDataSet(); |
46 |
} |
47 |
}); |
48 |
this.btnRemoveDataSet.addActionListener(new ActionListener() { |
49 |
@Override
|
50 |
public void actionPerformed(ActionEvent e) { |
51 |
performRemoveDataSet(); |
52 |
} |
53 |
}); |
54 |
this.btnAddRule.addActionListener(new ActionListener() { |
55 |
@Override
|
56 |
public void actionPerformed(ActionEvent e) { |
57 |
performAddRule(); |
58 |
} |
59 |
}); |
60 |
this.btnRemoveRule.addActionListener(new ActionListener() { |
61 |
@Override
|
62 |
public void actionPerformed(ActionEvent e) { |
63 |
performRemoveRule(); |
64 |
} |
65 |
}); |
66 |
this.lstDataSets.setModel(new DefaultListModel()); |
67 |
this.lstDataSets.addListSelectionListener(new ListSelectionListener() { |
68 |
@Override
|
69 |
public void valueChanged(ListSelectionEvent e) { |
70 |
performDataSetSelected(); |
71 |
} |
72 |
}); |
73 |
this.lstRules.setModel(new DefaultListModel()); |
74 |
this.lstRules.addListSelectionListener(new ListSelectionListener() { |
75 |
@Override
|
76 |
public void valueChanged(ListSelectionEvent e) { |
77 |
performRuleSelected(); |
78 |
} |
79 |
}); |
80 |
this.setPreferredSize(new Dimension(450, 300)); |
81 |
} |
82 |
|
83 |
|
84 |
private void translate() { |
85 |
ToolsSwingManager tsm = ToolsSwingLocator.getToolsSwingManager(); |
86 |
tsm.translate(this.btnAddRule);
|
87 |
tsm.translate(this.btnRemoveRule);
|
88 |
tsm.translate(this.btnAddDataSet);
|
89 |
tsm.translate(this.btnRemoveDataSet);
|
90 |
tsm.translate(this.lblName);
|
91 |
tsm.translate(this.tabPanel);
|
92 |
tsm.translate(this.lblTolerance);
|
93 |
} |
94 |
|
95 |
public void performDataSetSelected() { |
96 |
if( lstDataSets.getValueIsAdjusting() ) {
|
97 |
return;
|
98 |
} |
99 |
btnRemoveDataSet.setEnabled(!lstDataSets.isSelectionEmpty()); |
100 |
} |
101 |
|
102 |
public void performRuleSelected() { |
103 |
if( lstRules.getValueIsAdjusting() ) {
|
104 |
return;
|
105 |
} |
106 |
btnRemoveRule.setEnabled(!lstRules.isSelectionEmpty()); |
107 |
} |
108 |
|
109 |
@Override
|
110 |
public void put(TopologyPlan thePlan) { |
111 |
this.plan = TopologyLocator.getTopologyManager().createTopologyPlan();
|
112 |
this.plan.setName(thePlan.getName());
|
113 |
this.plan.setTolerance(thePlan.getTolerance());
|
114 |
for (TopologyDataSet dataSet : thePlan.getDataSets()) {
|
115 |
this.plan.addDataSet(dataSet);
|
116 |
} |
117 |
for (TopologyRule rule : thePlan.getRules()) {
|
118 |
this.plan.addRule(rule);
|
119 |
} |
120 |
|
121 |
this.txtName.setText(this.plan.getName()); |
122 |
this.txtTolerance.setText(String.valueOf(this.plan.getTolerance())); |
123 |
this.lstDataSets.removeAll();
|
124 |
DefaultListModel<TopologyDataSet> modelDataSets = new DefaultListModel<>(); |
125 |
for (TopologyDataSet dataSet : thePlan.getDataSets()) {
|
126 |
modelDataSets.addElement(dataSet); |
127 |
} |
128 |
this.lstDataSets.setModel(modelDataSets);
|
129 |
|
130 |
this.lstRules.removeAll();
|
131 |
DefaultListModel<ListElement<TopologyRule>> modelRules = new DefaultListModel<>(); |
132 |
for (TopologyRule rule : thePlan.getRules()) {
|
133 |
modelRules.addElement(new ListElement<>(
|
134 |
rule.getName() + " ["+rule.getDataSet1().getName()+"]", |
135 |
rule |
136 |
) |
137 |
); |
138 |
} |
139 |
this.lstRules.setModel(modelRules);
|
140 |
} |
141 |
|
142 |
@Override
|
143 |
public TopologyPlan fetch(TopologyPlan thePlan) {
|
144 |
if( thePlan == null ) { |
145 |
thePlan = TopologyLocator.getTopologyManager().createTopologyPlan(); |
146 |
} else {
|
147 |
thePlan.clear(); |
148 |
} |
149 |
thePlan.setName(thePlan.getName()); |
150 |
for (TopologyDataSet dataSet : this.plan.getDataSets()) { |
151 |
thePlan.addDataSet(dataSet); |
152 |
} |
153 |
for (TopologyRule rule : this.plan.getRules()) { |
154 |
thePlan.addRule(rule); |
155 |
} |
156 |
return thePlan;
|
157 |
} |
158 |
|
159 |
@Override
|
160 |
public JComponent asJComponent() { |
161 |
return this; |
162 |
} |
163 |
|
164 |
private void performAddDataSet() { |
165 |
WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager(); |
166 |
SelectDataSetDialog panel = new SelectDataSetDialog();
|
167 |
Dialog dlg = winManager.createDialog(
|
168 |
panel, |
169 |
"_Select_a_dataset",
|
170 |
null,
|
171 |
WindowManager_v2.BUTTONS_OK_CANCEL |
172 |
); |
173 |
panel.setDialog(dlg); |
174 |
dlg.show(WindowManager_v2.MODE.DIALOG); |
175 |
if( dlg.getAction()==WindowManager_v2.BUTTON_OK) {
|
176 |
TopologyDataSet dataSet = panel.getDataSet(); |
177 |
if( dataSet != null ) { |
178 |
this.plan.addDataSet(dataSet);
|
179 |
DefaultListModel model = (DefaultListModel) this.lstDataSets.getModel(); |
180 |
model.addElement(dataSet); |
181 |
} |
182 |
} |
183 |
} |
184 |
|
185 |
private void performRemoveDataSet() { |
186 |
if( lstDataSets.getValueIsAdjusting() ) {
|
187 |
return;
|
188 |
} |
189 |
if( lstDataSets.isSelectionEmpty() ) {
|
190 |
return;
|
191 |
} |
192 |
TopologyDataSet dataSet = (TopologyDataSet) lstDataSets.getSelectedValue(); |
193 |
this.plan.removeDataSet(dataSet);
|
194 |
lstDataSets.remove(lstDataSets.getSelectedIndex()); |
195 |
} |
196 |
|
197 |
private void performAddRule() { |
198 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
199 |
WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager(); |
200 |
CreateRuleDialog panel = new CreateRuleDialog(this.plan); |
201 |
Dialog dlg = winManager.createDialog(
|
202 |
panel, |
203 |
i18n.getTranslation("_Add_new_rule"),
|
204 |
null,
|
205 |
WindowManager_v2.BUTTONS_OK_CANCEL |
206 |
); |
207 |
panel.setDialog(dlg); |
208 |
dlg.show(WindowManager_v2.MODE.DIALOG); |
209 |
if( dlg.getAction()==WindowManager_v2.BUTTON_OK) {
|
210 |
TopologyRule rule = panel.getRule(); |
211 |
if( rule != null ) { |
212 |
this.plan.addRule(rule);
|
213 |
DefaultListModel model = (DefaultListModel) this.lstRules.getModel(); |
214 |
model.addElement(new ListElement(
|
215 |
rule.getName() + " ["+rule.getDataSet1().getName()+"]", |
216 |
rule |
217 |
) |
218 |
); |
219 |
} |
220 |
} |
221 |
} |
222 |
|
223 |
private void performRemoveRule() { |
224 |
if( lstRules.getValueIsAdjusting() ) {
|
225 |
return;
|
226 |
} |
227 |
if( lstRules.isSelectionEmpty() ) {
|
228 |
return;
|
229 |
} |
230 |
int index = lstRules.getSelectedIndex();
|
231 |
TopologyRule rule = (TopologyRule) ListElement.getSelected(lstRules); |
232 |
this.plan.removeRule(rule);
|
233 |
lstRules.remove(index); |
234 |
} |
235 |
|
236 |
} |