Ignore:
Timestamp:
2011-02-13T10:30:28+01:00 (13 years ago)
Author:
bastiK
Message:

integrate wireframe into mappaint dialog; rename 'shortdescription' to 'title' (xml header key is unchanged)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java

    r3882 r3894  
    99import java.awt.Font;
    1010import java.awt.GridBagLayout;
     11import java.awt.Insets;
    1112import java.awt.Point;
    1213import java.awt.Rectangle;
    1314import java.awt.event.ActionEvent;
     15import java.awt.event.ActionListener;
    1416import java.awt.event.KeyEvent;
    1517import java.awt.event.MouseEvent;
     
    2628
    2729import javax.swing.AbstractAction;
     30import javax.swing.DefaultButtonModel;
    2831import javax.swing.DefaultListSelectionModel;
     32import javax.swing.JCheckBox;
    2933import javax.swing.JFileChooser;
    3034import javax.swing.JLabel;
     
    3842import javax.swing.ListSelectionModel;
    3943import javax.swing.SingleSelectionModel;
     44import javax.swing.SwingConstants;
    4045import javax.swing.SwingUtilities;
    4146import javax.swing.UIManager;
     47import javax.swing.border.EmptyBorder;
    4248import javax.swing.event.ChangeEvent;
    4349import javax.swing.event.ChangeListener;
     
    4652import javax.swing.table.AbstractTableModel;
    4753import javax.swing.table.DefaultTableCellRenderer;
     54import javax.swing.table.TableCellRenderer;
    4855import javax.swing.table.TableModel;
    4956
     
    7279    protected OnOffAction onoffAction;
    7380    protected ReloadAction reloadAction;
     81    protected MoveUpDownAction upAction;
     82    protected MoveUpDownAction downAction;
     83    protected JCheckBox cbWireframe;
    7484
    7585    public MapPaintDialog() {
     
    8494
    8595        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)));
    86117       
    87118        tblStyles = new StylesTable(model);
     
    94125        tblStyles.getColumnModel().getColumn(0).setMaxWidth(1);
    95126        tblStyles.getColumnModel().getColumn(0).setResizable(false);
     127        tblStyles.getColumnModel().getColumn(0).setCellRenderer(new MyCheckBoxRenderer());
    96128        tblStyles.getColumnModel().getColumn(1).setCellRenderer(new StyleSourceRenderer());
    97129        tblStyles.setShowGrid(false);
    98130        tblStyles.setIntercellSpacing(new Dimension(0, 0));
    99131
    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);
    101138
    102139        pnl.add(buildButtonRow(), BorderLayout.SOUTH);
     
    126163        reloadAction = new ReloadAction();
    127164        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);
    130167        selectionModel.addListSelectionListener(onoffAction);
    131168        selectionModel.addListSelectionListener(reloadAction);
    132         selectionModel.addListSelectionListener(up);
    133         selectionModel.addListSelectionListener(down);
     169        selectionModel.addListSelectionListener(upAction);
     170        selectionModel.addListSelectionListener(downAction);
    134171        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));
    137174        p.add(new SideButton(new LaunchMapPaintPreferencesAction()));
    138175
     
    143180    public void showNotify() {
    144181        MapPaintStyles.addMapPaintSylesUpdateListener(model);
     182        Main.main.menu.wireFrameToggleAction.addButtonModel(cbWireframe.getModel());
    145183    }
    146184
    147185    @Override
    148186    public void hideNotify() {
     187        Main.main.menu.wireFrameToggleAction.removeButtonModel(cbWireframe.getModel());
    149188        MapPaintStyles.removeMapPaintSylesUpdateListener(model);
    150189    }
     
    232271    }
    233272
    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 {
    235289        @Override
    236290        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
     
    240294            label.setIcon(s.getIcon());
    241295            label.setToolTipText(s.getToolTipText());
     296            label.setEnabled(!cbWireframe.isSelected());
    242297            return label;
    243298        }
     
    252307
    253308        protected void updateEnabledState() {
    254             setEnabled(tblStyles.getSelectedRowCount() > 0);
     309            setEnabled(!cbWireframe.isSelected() && tblStyles.getSelectedRowCount() > 0);
    255310        }
    256311
     
    274329     * The action to move down the currently selected entries in the list.
    275330     */
    276     class MoveUpDownAction extends AbstractAction implements ListSelectionListener {
     331    protected class MoveUpDownAction extends AbstractAction implements ListSelectionListener {
    277332
    278333        final int increment;
     
    287342        public void updateEnabledState() {
    288343            int[] sel = tblStyles.getSelectedRows();
    289             setEnabled(MapPaintStyles.canMoveStyles(sel, increment));
     344            setEnabled(!cbWireframe.isSelected() && MapPaintStyles.canMoveStyles(sel, increment));
    290345        }
    291346
     
    328383            putValue(SHORT_DESCRIPTION, tr("reload selected styles from file"));
    329384            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;
    334391            int[] pos = tblStyles.getSelectedRows();
    335             boolean e = pos.length > 0;
     392            if (pos.length == 0)
     393                return false;
    336394            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;
    343399        }
    344400
    345401        @Override
    346402        public void valueChanged(ListSelectionEvent e) {
    347             updateEnabledState();
     403            setEnabled(getEnabledState());
    348404        }
    349405
     
    599655        @Override
    600656        public void launch(MouseEvent evt) {
     657            if (cbWireframe.isSelected())
     658                return;
    601659            Point p = evt.getPoint();
    602660            int index = tblStyles.rowAtPoint(p);
Note: See TracChangeset for help on using the changeset viewer.