Changeset 3894 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
- Timestamp:
- 2011-02-13T10:30:28+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
r3882 r3894 9 9 import java.awt.Font; 10 10 import java.awt.GridBagLayout; 11 import java.awt.Insets; 11 12 import java.awt.Point; 12 13 import java.awt.Rectangle; 13 14 import java.awt.event.ActionEvent; 15 import java.awt.event.ActionListener; 14 16 import java.awt.event.KeyEvent; 15 17 import java.awt.event.MouseEvent; … … 26 28 27 29 import javax.swing.AbstractAction; 30 import javax.swing.DefaultButtonModel; 28 31 import javax.swing.DefaultListSelectionModel; 32 import javax.swing.JCheckBox; 29 33 import javax.swing.JFileChooser; 30 34 import javax.swing.JLabel; … … 38 42 import javax.swing.ListSelectionModel; 39 43 import javax.swing.SingleSelectionModel; 44 import javax.swing.SwingConstants; 40 45 import javax.swing.SwingUtilities; 41 46 import javax.swing.UIManager; 47 import javax.swing.border.EmptyBorder; 42 48 import javax.swing.event.ChangeEvent; 43 49 import javax.swing.event.ChangeListener; … … 46 52 import javax.swing.table.AbstractTableModel; 47 53 import javax.swing.table.DefaultTableCellRenderer; 54 import javax.swing.table.TableCellRenderer; 48 55 import javax.swing.table.TableModel; 49 56 … … 72 79 protected OnOffAction onoffAction; 73 80 protected ReloadAction reloadAction; 81 protected MoveUpDownAction upAction; 82 protected MoveUpDownAction downAction; 83 protected JCheckBox cbWireframe; 74 84 75 85 public MapPaintDialog() { … … 84 94 85 95 model = new StylesModel(); 96 97 cbWireframe = new JCheckBox(); 98 JLabel wfLabel = new JLabel(tr("Wireframe View"), ImageProvider.get("dialogs/mappaint", "wireframe_small"), JLabel.HORIZONTAL); 99 wfLabel.setFont(wfLabel.getFont().deriveFont(Font.PLAIN)); 100 101 cbWireframe.setModel(new DefaultButtonModel() { 102 @Override 103 public void setSelected(boolean b) { 104 super.setSelected(b); 105 tblStyles.setEnabled(!b); 106 onoffAction.updateEnabledState(); 107 upAction.updateEnabledState(); 108 downAction.updateEnabledState(); 109 } 110 }); 111 cbWireframe.addActionListener(new ActionListener() { 112 public void actionPerformed(ActionEvent e) { 113 Main.main.menu.wireFrameToggleAction.actionPerformed(null); 114 } 115 }); 116 cbWireframe.setBorder(new EmptyBorder(new Insets(1,1,1,1))); 86 117 87 118 tblStyles = new StylesTable(model); … … 94 125 tblStyles.getColumnModel().getColumn(0).setMaxWidth(1); 95 126 tblStyles.getColumnModel().getColumn(0).setResizable(false); 127 tblStyles.getColumnModel().getColumn(0).setCellRenderer(new MyCheckBoxRenderer()); 96 128 tblStyles.getColumnModel().getColumn(1).setCellRenderer(new StyleSourceRenderer()); 97 129 tblStyles.setShowGrid(false); 98 130 tblStyles.setIntercellSpacing(new Dimension(0, 0)); 99 131 100 pnl.add(new JScrollPane(tblStyles), BorderLayout.CENTER); 132 JPanel p = new JPanel(new GridBagLayout()); 133 p.add(cbWireframe, GBC.std(0, 0)); 134 p.add(wfLabel, GBC.std(1, 0).weight(1, 0)); 135 p.add(tblStyles, GBC.std(0, 1).span(2).fill()); 136 137 pnl.add(new JScrollPane(p), BorderLayout.CENTER); 101 138 102 139 pnl.add(buildButtonRow(), BorderLayout.SOUTH); … … 126 163 reloadAction = new ReloadAction(); 127 164 onoffAction = new OnOffAction(); 128 MoveUpDownAction up= new MoveUpDownAction(false);129 MoveUpDownAction down = new MoveUpDownAction(true);165 upAction = new MoveUpDownAction(false); 166 downAction = new MoveUpDownAction(true); 130 167 selectionModel.addListSelectionListener(onoffAction); 131 168 selectionModel.addListSelectionListener(reloadAction); 132 selectionModel.addListSelectionListener(up );133 selectionModel.addListSelectionListener(down );169 selectionModel.addListSelectionListener(upAction); 170 selectionModel.addListSelectionListener(downAction); 134 171 p.add(new SideButton(onoffAction)); 135 p.add(new SideButton(up ));136 p.add(new SideButton(down ));172 p.add(new SideButton(upAction)); 173 p.add(new SideButton(downAction)); 137 174 p.add(new SideButton(new LaunchMapPaintPreferencesAction())); 138 175 … … 143 180 public void showNotify() { 144 181 MapPaintStyles.addMapPaintSylesUpdateListener(model); 182 Main.main.menu.wireFrameToggleAction.addButtonModel(cbWireframe.getModel()); 145 183 } 146 184 147 185 @Override 148 186 public void hideNotify() { 187 Main.main.menu.wireFrameToggleAction.removeButtonModel(cbWireframe.getModel()); 149 188 MapPaintStyles.removeMapPaintSylesUpdateListener(model); 150 189 } … … 232 271 } 233 272 234 private static class StyleSourceRenderer extends DefaultTableCellRenderer { 273 private class MyCheckBoxRenderer extends JCheckBox implements TableCellRenderer { 274 275 public MyCheckBoxRenderer() { 276 setHorizontalAlignment(SwingConstants.CENTER); 277 setVerticalAlignment(SwingConstants.CENTER); 278 } 279 280 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column) { 281 boolean b = (Boolean) value; 282 setSelected(b); 283 setEnabled(!cbWireframe.isSelected()); 284 return this; 285 } 286 } 287 288 private class StyleSourceRenderer extends DefaultTableCellRenderer { 235 289 @Override 236 290 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { … … 240 294 label.setIcon(s.getIcon()); 241 295 label.setToolTipText(s.getToolTipText()); 296 label.setEnabled(!cbWireframe.isSelected()); 242 297 return label; 243 298 } … … 252 307 253 308 protected void updateEnabledState() { 254 setEnabled( tblStyles.getSelectedRowCount() > 0);309 setEnabled(!cbWireframe.isSelected() && tblStyles.getSelectedRowCount() > 0); 255 310 } 256 311 … … 274 329 * The action to move down the currently selected entries in the list. 275 330 */ 276 class MoveUpDownAction extends AbstractAction implements ListSelectionListener {331 protected class MoveUpDownAction extends AbstractAction implements ListSelectionListener { 277 332 278 333 final int increment; … … 287 342 public void updateEnabledState() { 288 343 int[] sel = tblStyles.getSelectedRows(); 289 setEnabled( MapPaintStyles.canMoveStyles(sel, increment));344 setEnabled(!cbWireframe.isSelected() && MapPaintStyles.canMoveStyles(sel, increment)); 290 345 } 291 346 … … 328 383 putValue(SHORT_DESCRIPTION, tr("reload selected styles from file")); 329 384 putValue(SMALL_ICON, ImageProvider.get("dialogs", "refresh")); 330 updateEnabledState(); 331 } 332 333 protected void updateEnabledState() { 385 setEnabled(getEnabledState()); 386 } 387 388 protected boolean getEnabledState() { 389 if (cbWireframe.isSelected()) 390 return false; 334 391 int[] pos = tblStyles.getSelectedRows(); 335 boolean e = pos.length > 0; 392 if (pos.length == 0) 393 return false; 336 394 for (int i : pos) { 337 if (!model.getRow(i).isLocal()) { 338 e = false; 339 break; 340 } 341 } 342 setEnabled(e); 395 if (!model.getRow(i).isLocal()) 396 return false; 397 } 398 return true; 343 399 } 344 400 345 401 @Override 346 402 public void valueChanged(ListSelectionEvent e) { 347 updateEnabledState();403 setEnabled(getEnabledState()); 348 404 } 349 405 … … 599 655 @Override 600 656 public void launch(MouseEvent evt) { 657 if (cbWireframe.isSelected()) 658 return; 601 659 Point p = evt.getPoint(); 602 660 int index = tblStyles.rowAtPoint(p);
Note:
See TracChangeset
for help on using the changeset viewer.