Revision 8258 trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/graph/gui/RouteControPanel.java

View differences:

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