Revision 8258 trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/graph/gui/RouteControPanel.java
RouteControPanel.java | ||
---|---|---|
43 | 43 |
* |
44 | 44 |
* $Id$ |
45 | 45 |
* $Log$ |
46 |
* Revision 1.2 2006-10-23 08:05:39 jaume |
|
46 |
* Revision 1.3 2006-10-23 16:00:20 jaume |
|
47 |
* *** empty log message *** |
|
48 |
* |
|
49 |
* Revision 1.2 2006/10/23 08:05:39 jaume |
|
47 | 50 |
* GUI |
48 | 51 |
* |
49 | 52 |
* Revision 1.1 2006/10/20 12:02:50 jaume |
... | ... | |
89 | 92 |
import com.iver.cit.gvsig.graph.core.GvFlag; |
90 | 93 |
|
91 | 94 |
|
92 |
public class RouteControPanel extends JPanel implements IWindow { |
|
95 |
public class RouteControPanel extends JPanel implements IWindow, ActionListener {
|
|
93 | 96 |
WindowInfo wi; |
94 | 97 |
private JPanel westPanel = null; |
95 | 98 |
private JScrollPane scrlStages = null; |
... | ... | |
97 | 100 |
private GridBagLayoutPanel eastPanel = null; |
98 | 101 |
private DefaultTableModel tableModel = null; // @jve:decl-index=0:visual-constraint="" |
99 | 102 |
private JButton btnLoadStage = null; |
100 |
private JButton btnSaveStages = null;
|
|
103 |
private JButton btnSaveStage = null; |
|
101 | 104 |
private ArrayList routeFlags; |
102 | 105 |
private ArrayList costs; |
103 | 106 |
private JLabel lblCost; |
... | ... | |
152 | 155 |
|
153 | 156 |
private JPanel getSouthPanel() { |
154 | 157 |
if (southPanel == null) { |
155 |
southPanel = new JPanel(new FlowLayout()); |
|
158 |
southPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
|
|
156 | 159 |
southPanel.add(getBtnRemoveStage()); |
157 | 160 |
southPanel.add(new JBlank(50, 20)); |
158 | 161 |
southPanel.add(getBtnPushUpStage()); |
... | ... | |
202 | 205 |
if (btnPullDownStage == null) { |
203 | 206 |
btnPullDownStage = new JButton(new ImageIcon(this.getClass().getClassLoader().getResource("images/down-arrow.png"))); |
204 | 207 |
btnPullDownStage.setName("btnPullDownStage"); |
208 |
btnPullDownStage.addActionListener(this); |
|
205 | 209 |
} |
206 | 210 |
return btnPullDownStage; |
207 | 211 |
} |
... | ... | |
210 | 214 |
if (btnPushUpStage == null) { |
211 | 215 |
btnPushUpStage = new JButton(new ImageIcon(this.getClass().getClassLoader().getResource("images/up-arrow.png"))); |
212 | 216 |
btnPushUpStage.setName("btnPushUpStage"); |
217 |
btnPushUpStage.addActionListener(this); |
|
213 | 218 |
} |
214 | 219 |
return btnPushUpStage; |
215 | 220 |
} |
216 | 221 |
|
217 | 222 |
private JButton getBtnRemoveStage() { |
218 | 223 |
if (btnRemoveStage == null) { |
219 |
btnRemoveStage = new JButton(new ImageIcon(this.getClass().getClassLoader().getResource("images/down-arrow.png")));
|
|
224 |
btnRemoveStage = new JButton(new ImageIcon(this.getClass().getClassLoader().getResource("images/delete.png")));
|
|
220 | 225 |
btnRemoveStage.setName("btnRemoveStage"); |
226 |
btnRemoveStage.addActionListener(this); |
|
221 | 227 |
} |
222 | 228 |
return btnRemoveStage; |
223 | 229 |
} |
... | ... | |
237 | 243 |
} |
238 | 244 |
|
239 | 245 |
public void addFlag(GvFlag flag) { |
240 |
getFlags().add(flag); |
|
241 |
getCosts().add(new Double(flag.getCost())); |
|
242 |
lblFlagAmout.setText(String.valueOf(getFlags().size())); |
|
246 |
_getFlags().add(flag); |
|
247 |
lblFlagAmout.setText(String.valueOf(_getFlags().size())); |
|
243 | 248 |
getTblStages().repaint(); |
244 | 249 |
} |
245 | 250 |
|
246 | 251 |
public void removeFlag(GvFlag flag) { |
247 |
removeFlag(getFlags().indexOf(flag)); |
|
252 |
removeFlag(_getFlags().indexOf(flag));
|
|
248 | 253 |
} |
249 | 254 |
|
250 | 255 |
public void removeFlag(int index) { |
251 |
getFlags().remove(index); |
|
252 |
getCosts().remove(index); |
|
253 |
lblFlagAmout.setText(String.valueOf(getFlags().size())); |
|
256 |
_getFlags().remove(index); |
|
257 |
lblFlagAmout.setText(String.valueOf(_getFlags().size())); |
|
254 | 258 |
getTblStages().repaint(); |
255 | 259 |
} |
256 | 260 |
/** |
... | ... | |
278 | 282 |
p.add(chk); |
279 | 283 |
return p; |
280 | 284 |
} else if ( column == 1 ) { |
281 |
myValue = ((GvFlag) getFlags().get(row)).toString(); |
|
285 |
myValue = ((GvFlag) _getFlags().get(row)).toString();
|
|
282 | 286 |
} else if (column == 2) { |
283 |
myValue = String.valueOf(((Double)getCosts().get(row)).doubleValue());
|
|
287 |
myValue = String.valueOf(((GvFlag) _getFlags().get(row)).getCost());
|
|
284 | 288 |
} |
285 | 289 |
return super.getTableCellRendererComponent(table, myValue, isSelected, hasFocus, row, column); |
286 | 290 |
} |
... | ... | |
297 | 301 |
final JCheckBox chk = new JCheckBox("", isSelected(row)); |
298 | 302 |
chk.addActionListener(new ActionListener() { |
299 | 303 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
300 |
((GvFlag)getFlags().get(row)).setEnabled(chk.isSelected()); |
|
304 |
((GvFlag)_getFlags().get(row)).setEnabled(chk.isSelected());
|
|
301 | 305 |
}; |
302 | 306 |
}); |
303 | 307 |
p.setBackground(Color.WHITE); |
304 | 308 |
p.add(chk); |
305 | 309 |
return p; |
306 | 310 |
} else if (column == 1) { |
307 |
final JTextField txt = new JTextField(((GvFlag) getFlags().get(row)).toString()); |
|
311 |
final JTextField txt = new JTextField(((GvFlag) _getFlags().get(row)).toString());
|
|
308 | 312 |
txt.addActionListener(new ActionListener() { |
309 | 313 |
public void actionPerformed(ActionEvent e) { |
310 |
GvFlag flag = (GvFlag) getFlags().get(row); |
|
314 |
GvFlag flag = (GvFlag) _getFlags().get(row);
|
|
311 | 315 |
flag.setDescription(txt.getText()); |
312 | 316 |
} |
313 | 317 |
}); |
... | ... | |
319 | 323 |
public void cancelCellEditing() {} |
320 | 324 |
|
321 | 325 |
public boolean stopCellEditing() { |
322 |
return true;
|
|
326 |
return false;
|
|
323 | 327 |
} |
324 | 328 |
|
325 | 329 |
public Object getCellEditorValue() { |
... | ... | |
360 | 364 |
} |
361 | 365 |
|
362 | 366 |
protected int getFlagCount() { |
363 |
return getFlags().size(); |
|
367 |
return _getFlags().size();
|
|
364 | 368 |
} |
365 |
private ArrayList getCosts() { |
|
366 |
if (costs == null) { |
|
367 |
costs = new ArrayList(); |
|
368 |
} |
|
369 |
return costs; |
|
370 |
} |
|
371 | 369 |
|
372 |
private ArrayList getFlags() { |
|
370 |
|
|
371 |
private ArrayList _getFlags() { |
|
373 | 372 |
if (routeFlags == null) { |
374 | 373 |
routeFlags = new ArrayList(); |
375 | 374 |
} |
... | ... | |
377 | 376 |
} |
378 | 377 |
|
379 | 378 |
protected boolean isSelected(int row) { |
380 |
return ((GvFlag) getFlags().get(row)).isEnabled(); |
|
379 |
return ((GvFlag) _getFlags().get(row)).isEnabled();
|
|
381 | 380 |
} |
382 | 381 |
|
383 | 382 |
/** |
... | ... | |
389 | 388 |
if (eastPanel == null) { |
390 | 389 |
eastPanel = new GridBagLayoutPanel(); |
391 | 390 |
eastPanel.addComponent(getBtnLoadStage()); |
392 |
eastPanel.add(getBtnSaveStages());
|
|
391 |
eastPanel.add(getBtnSaveStage()); |
|
393 | 392 |
} |
394 | 393 |
return eastPanel; |
395 | 394 |
} |
... | ... | |
411 | 410 |
public Object getValueAt(int row, int column) { |
412 | 411 |
if (row > getFlagCount()-1) |
413 | 412 |
return null; |
414 |
ArrayList colValues = null; |
|
415 | 413 |
switch (column) { |
416 | 414 |
case 0: |
417 |
return new Boolean(((GvFlag) getFlags().get(row)).isEnabled()); |
|
415 |
return new Boolean(((GvFlag) _getFlags().get(row)).isEnabled());
|
|
418 | 416 |
case 1: |
419 |
colValues = getFlags(); |
|
420 |
break; |
|
417 |
return _getFlags().get(row); |
|
421 | 418 |
case 2: |
422 |
colValues = getCosts(); |
|
423 |
break; |
|
419 |
return new Double(((GvFlag) _getFlags().get(row)).getCost()); |
|
424 | 420 |
} |
425 |
return colValues.get(row);
|
|
421 |
return null;
|
|
426 | 422 |
} |
427 | 423 |
|
428 | 424 |
public void setValueAt(Object aValue, int row, int column) { |
... | ... | |
430 | 426 |
return; |
431 | 427 |
switch (column) { |
432 | 428 |
case 0: |
433 |
((GvFlag) getFlags().get(row)).setEnabled(((Boolean) aValue).booleanValue()); |
|
429 |
((GvFlag) _getFlags().get(row)).setEnabled(((Boolean) aValue).booleanValue());
|
|
434 | 430 |
break; |
435 | 431 |
case 1: |
436 |
((GvFlag) getFlags().get(row)).setDescription((String) aValue); |
|
432 |
((GvFlag) _getFlags().get(row)).setDescription((String) aValue);
|
|
437 | 433 |
break; |
438 | 434 |
/*case 2: |
439 | 435 |
getCosts().set(row, new Double((String) aValue)); |
... | ... | |
461 | 457 |
if (btnLoadStage == null) { |
462 | 458 |
btnLoadStage = new JButton(); |
463 | 459 |
btnLoadStage.setText(PluginServices.getText(this, "load_stages")); |
460 |
btnLoadStage.addActionListener(this); |
|
464 | 461 |
} |
465 | 462 |
return btnLoadStage; |
466 | 463 |
} |
... | ... | |
470 | 467 |
* |
471 | 468 |
* @return javax.swing.JButton |
472 | 469 |
*/ |
473 |
private JButton getBtnSaveStages() { |
|
474 |
if (btnSaveStages == null) { |
|
475 |
btnSaveStages = new JButton(); |
|
476 |
btnSaveStages.setText(PluginServices.getText(this, "save_stages")); |
|
470 |
private JButton getBtnSaveStage() { |
|
471 |
if (btnSaveStage == null) { |
|
472 |
btnSaveStage = new JButton(); |
|
473 |
btnSaveStage.setText(PluginServices.getText(this, "save_stages")); |
|
474 |
btnSaveStage.addActionListener(this); |
|
477 | 475 |
} |
478 |
return btnSaveStages;
|
|
476 |
return btnSaveStage; |
|
479 | 477 |
} |
480 | 478 |
|
479 |
public void actionPerformed(ActionEvent e) { |
|
480 |
String name = ((Component) e.getSource()).getName(); |
|
481 |
if (name.equals(getBtnLoadStage().getName())) { |
|
482 |
// load |
|
483 |
|
|
484 |
} else if (name.equals(getBtnSaveStage().getName())) { |
|
485 |
// save |
|
486 |
|
|
487 |
} else if (name.equals(getBtnPushUpStage().getName())) { |
|
488 |
// push up |
|
489 |
int[] selected = tblStages.getSelectedRows(); |
|
490 |
if (selected.length == 0 || selected[0] == 0) |
|
491 |
return; |
|
492 |
|
|
493 |
tblStages.clearSelection(); |
|
494 |
|
|
495 |
for (int i = 0; i < selected.length; i++) { |
|
496 |
Object aux = _getFlags().get(selected[i]-1); |
|
497 |
_getFlags().set(selected[i]-1, _getFlags().get(selected[i])); |
|
498 |
_getFlags().set(selected[i], aux); |
|
499 |
selected[i]--; |
|
500 |
tblStages.addRowSelectionInterval(selected[i], selected[i]); |
|
501 |
|
|
502 |
} |
|
503 |
// move selection |
|
504 |
for (int i = 1; i < selected.length; i++) { |
|
505 |
} |
|
506 |
} else if (name.equals(getBtnPullDownStage().getName())) { |
|
507 |
// pull down |
|
508 |
int[] selected = tblStages.getSelectedRows(); |
|
509 |
if (selected.length == 0 || selected[selected.length-1] >= _getFlags().size()-1) |
|
510 |
return; |
|
511 |
|
|
512 |
// move rows |
|
513 |
tblStages.clearSelection(); |
|
514 |
for (int i = selected.length-1; i >=0 ; i--) { |
|
515 |
Object aux = _getFlags().get(selected[i]+1); |
|
516 |
_getFlags().set(selected[i]+1, _getFlags().get(selected[i])); |
|
517 |
_getFlags().set(selected[i], aux); |
|
518 |
selected[i]++; |
|
519 |
tblStages.addRowSelectionInterval(selected[i], selected[i]); |
|
520 |
|
|
521 |
} |
|
522 |
|
|
523 |
// move selection |
|
524 |
for (int i = 1; i < selected.length; i++) { |
|
525 |
} |
|
526 |
} else if (name.equals(getBtnRemoveStage().getName())) { |
|
527 |
// remove |
|
528 |
int[] selected = tblStages.getSelectedRows(); |
|
529 |
for (int i = selected.length-1; i >=0 ; i--) { |
|
530 |
try { |
|
531 |
removeFlag(selected[i]); |
|
532 |
} catch (IndexOutOfBoundsException iobEx) {} |
|
533 |
|
|
534 |
} |
|
535 |
tblStages.clearSelection(); |
|
536 |
|
|
537 |
} |
|
538 |
repaint(); |
|
539 |
} |
|
540 |
|
|
541 |
public GvFlag[] getFlags() { |
|
542 |
return (GvFlag[]) _getFlags().toArray(new GvFlag[0]); |
|
543 |
} |
|
544 |
|
|
481 | 545 |
} // @jve:decl-index=0:visual-constraint="10,10" |
Also available in: Unified diff