Ignore:
Timestamp:
2006-04-21T14:31:51+02:00 (19 years ago)
Author:
imi
Message:
  • added conflicts and resolve conflict dialog

This is one of those "changed everything" checkpoint.

Location:
src/org/openstreetmap/josm/gui/dialogs
Files:
1 added
5 edited

Legend:

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

    r79 r86  
    5959                if (layers.getModel().getSize() == 1) {
    6060                        Main.main.setMapFrame(null);
    61                         Main.main.ds = new DataSet();
     61                        Main.ds = new DataSet();
    6262                } else {
    6363                    int sel = layers.getSelectedIndex();
     
    133133                layers.setBackground(UIManager.getColor("Button.background"));
    134134                layers.setCellRenderer(new DefaultListCellRenderer(){
    135                         @Override
    136                         public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
     135                        @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    137136                                Layer layer = (Layer)value;
    138137                                JLabel label = (JLabel)super.getListCellRendererComponent(list,
  • src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java

    r79 r86  
    11package org.openstreetmap.josm.gui.dialogs;
    22
    3 import java.awt.Color;
    43import java.awt.event.ActionEvent;
    5 import java.awt.event.ActionListener;
    64
    7 import javax.swing.JColorChooser;
     5import javax.swing.AbstractAction;
    86import javax.swing.JList;
    9 import javax.swing.JMenuItem;
    107import javax.swing.JOptionPane;
    118import javax.swing.JPopupMenu;
    129
    1310import org.openstreetmap.josm.Main;
    14 import org.openstreetmap.josm.actions.GpxExportAction;
    15 import org.openstreetmap.josm.actions.SaveAction;
    1611import org.openstreetmap.josm.gui.layer.Layer;
    17 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    18 import org.openstreetmap.josm.gui.layer.RawGpsDataLayer;
    19 import org.openstreetmap.josm.gui.layer.WmsServerLayer;
    20 import org.openstreetmap.josm.tools.ColorHelper;
    2112import org.openstreetmap.josm.tools.ImageProvider;
    2213
     
    2617public class LayerListPopup extends JPopupMenu {
    2718
     19        public final static class InfoAction extends AbstractAction {
     20            private final Layer layer;
     21            public InfoAction(Layer layer) {
     22                super("Info", ImageProvider.get("info"));
     23                    this.layer = layer;
     24            }
     25            public void actionPerformed(ActionEvent e) {
     26                JOptionPane.showMessageDialog(Main.main, layer.getInfoComponent());
     27            }
     28    }
     29
    2830        public LayerListPopup(final JList layers, final Layer layer) {
    29         add(new LayerList.ShowHideLayerAction(layers, layer));
    30         add(new LayerList.DeleteLayerAction(layers, layer));
    31         addSeparator();
    32        
    33                 if (layer instanceof OsmDataLayer)
    34                         add(new JMenuItem(new SaveAction()));
     31                add(new LayerList.ShowHideLayerAction(layers, layer));
     32                add(new LayerList.DeleteLayerAction(layers, layer));
     33                addSeparator();
    3534
    36         if (!(layer instanceof WmsServerLayer))
    37             add(new JMenuItem(new GpxExportAction(layer)));
    38 
    39                 if (layer instanceof RawGpsDataLayer) {
    40                         JMenuItem color = new JMenuItem("Customize Color", ImageProvider.get("colorchooser"));
    41                         color.addActionListener(new ActionListener(){
    42                                 public void actionPerformed(ActionEvent e) {
    43                                         String col = Main.pref.get("color.layer "+layer.name, Main.pref.get("color.gps point", ColorHelper.color2html(Color.gray)));
    44                                         JColorChooser c = new JColorChooser(ColorHelper.html2color(col));
    45                                         Object[] options = new Object[]{"OK", "Cancel", "Default"};
    46                                         int answer = JOptionPane.showOptionDialog(Main.main, c, "Choose a color", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
    47                                         switch (answer) {
    48                                         case 0:
    49                                                 Main.pref.put("color.layer "+layer.name, ColorHelper.color2html(c.getColor()));
    50                                                 break;
    51                                         case 1:
    52                                                 return;
    53                                         case 2:
    54                                                 Main.pref.put("color.layer "+layer.name, null);
    55                                                 break;
    56                                         }
    57                                         Main.main.repaint();
    58                                 }
    59                         });
    60                         add(color);
    61                 }
    62 
    63         if (!(layer instanceof WmsServerLayer))
    64             addSeparator();
    65 
    66                 JMenuItem info = new JMenuItem("Info", ImageProvider.get("info"));
    67                 info.addActionListener(new ActionListener(){
    68                         public void actionPerformed(ActionEvent e) {
    69                                 JOptionPane.showMessageDialog(Main.main, layer.getInfoComponent());
    70                         }
    71                 });
    72                 add(info);
     35                layer.addMenuEntries(this);
    7336        }
    7437}
  • src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java

    r79 r86  
    3636
    3737import org.openstreetmap.josm.Main;
    38 import org.openstreetmap.josm.command.ChangeKeyValueCommand;
     38import org.openstreetmap.josm.command.ChangePropertyCommand;
    3939import org.openstreetmap.josm.data.SelectionChangedListener;
    4040import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    6868         */
    6969        public class DblClickWatch extends MouseAdapter {
    70                 @Override
    71                 public void mouseClicked(MouseEvent e) {
     70                @Override public void mouseClicked(MouseEvent e) {
    7271                        if (e.getClickCount() < 2)
    7372                                return;
     
    8786        void edit(int row) {
    8887                String key = data.getValueAt(row, 0).toString();
    89                 Collection<OsmPrimitive> sel = Main.main.ds.getSelected();
     88                Collection<OsmPrimitive> sel = Main.ds.getSelected();
    9089                String msg = "<html>This will change "+sel.size()+" object"+(sel.size()==1?"":"s")+".<br><br>"+
    9190                "Please select a new value for '"+key+"'.<br>(Empty string deletes the key.)";
     
    125124                if (value.equals(""))
    126125                        value = null; // delete the key
    127                 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, value));
     126                mv.editLayer().add(new ChangePropertyCommand(sel, key, value));
    128127
    129128                if (value == null)
     
    138137         */
    139138        void add() {
    140                 Collection<OsmPrimitive> sel = Main.main.ds.getSelected();
     139                Collection<OsmPrimitive> sel = Main.ds.getSelected();
    141140               
    142141                JPanel p = new JPanel(new BorderLayout());
     
    144143                "Please select a key"), BorderLayout.NORTH);
    145144                Vector<String> allKeys = new Vector<String>();
    146                 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives())
     145                for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives())
    147146                        allKeys.addAll(osm.keySet());
    148147                for (Iterator<String> it = allKeys.iterator(); it.hasNext();) {
     
    172171                if (value.equals(""))
    173172                        return;
    174                 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, value));
     173                mv.editLayer().add(new ChangePropertyCommand(sel, key, value));
    175174                selectionChanged(sel); // update table
    176175        }
     
    182181        private void delete(int row) {
    183182                String key = data.getValueAt(row, 0).toString();
    184                 Collection<OsmPrimitive> sel = Main.main.ds.getSelected();
    185                 mv.editLayer().add(new ChangeKeyValueCommand(sel, key, null));
     183                Collection<OsmPrimitive> sel = Main.ds.getSelected();
     184                mv.editLayer().add(new ChangePropertyCommand(sel, key, null));
    186185                selectionChanged(sel); // update table
    187186        }
     
    191190         */
    192191        private final DefaultTableModel data = new DefaultTableModel(){
    193                 @Override
    194                 public boolean isCellEditable(int row, int column) {
     192                @Override public boolean isCellEditable(int row, int column) {
    195193                        return false;
    196194                }
    197                 @Override
    198                 public Class<?> getColumnClass(int columnIndex) {
     195                @Override public Class<?> getColumnClass(int columnIndex) {
    199196                        return columnIndex == 1 ? JComboBox.class : String.class;
    200197                }
     
    221218                propertyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    222219                propertyTable.setDefaultRenderer(JComboBox.class, new DefaultTableCellRenderer(){
    223                         @Override
    224                         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
     220                        @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    225221                                Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
    226222                                if (c instanceof JLabel) {
     
    234230                });
    235231                propertyTable.setDefaultRenderer(String.class, new DefaultTableCellRenderer(){
    236                         @Override
    237                         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
     232                        @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    238233                                return super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
    239234                        }
     
    279274        }
    280275
    281         @Override
    282         public void setVisible(boolean b) {
     276        @Override public void setVisible(boolean b) {
    283277                if (b) {
    284                         Main.main.ds.addSelectionChangedListener(this);
    285                         selectionChanged(Main.main.ds.getSelected());
     278                        Main.ds.addSelectionChangedListener(this);
     279                        selectionChanged(Main.ds.getSelected());
    286280                } else {
    287                         Main.main.ds.removeSelectionChangedListener(this);
     281                        Main.ds.removeSelectionChangedListener(this);
    288282                }
    289283                super.setVisible(b);
     
    291285
    292286        public void selectionChanged(Collection<OsmPrimitive> newSelection) {
     287                if (propertyTable == null)
     288                        return; // selection changed may be received in base class constructor before init
    293289                if (propertyTable.getCellEditor() != null)
    294290                        propertyTable.getCellEditor().cancelCellEditing();
  • src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r81 r86  
    1111import java.awt.event.MouseEvent;
    1212import java.util.Collection;
     13import java.util.LinkedList;
    1314
    1415import javax.swing.ButtonGroup;
     
    6162                displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    6263                displaylist.addMouseListener(new MouseAdapter(){
    63                         @Override
    64                         public void mouseClicked(MouseEvent e) {
     64                        @Override public void mouseClicked(MouseEvent e) {
    6565                                if (e.getClickCount() < 2)
    6666                                        return;
     
    122122                                lastSearch = input.getText();
    123123                                SearchCompiler.Match matcher = SearchCompiler.compile(lastSearch);
    124                                 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives()) {
    125                                         if (replace.isSelected())
    126                                                 osm.setSelected(matcher.match(osm));
    127                                         else if (add.isSelected() && !osm.isSelected() && matcher.match(osm))
    128                                                 osm.setSelected(true);
    129                                         else if (remove.isSelected() && osm.isSelected() && matcher.match(osm))
    130                                                 osm.setSelected(false);
     124                                Collection<OsmPrimitive> sel = Main.ds.getSelected();
     125                                for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) {
     126                                        if (replace.isSelected()) {
     127                                                if (matcher.match(osm))
     128                                                        sel.add(osm);
     129                                                else
     130                                                        sel.remove(osm);
     131                                        } else if (add.isSelected() && !osm.selected && matcher.match(osm))
     132                                                sel.add(osm);
     133                                        else if (remove.isSelected() && osm.selected && matcher.match(osm))
     134                                                sel.remove(osm);
    131135                                }
    132                                 selectionChanged(Main.main.ds.getSelected());
    133                                 Main.main.getMapFrame().repaint();
     136                                Main.ds.setSelected(sel);
    134137                        }
    135138                });
     
    137140               
    138141                add(buttonPanel, BorderLayout.SOUTH);
    139                 selectionChanged(Main.main.ds.getSelected());
     142                selectionChanged(Main.ds.getSelected());
    140143        }
    141144
    142         @Override
    143         public void setVisible(boolean b) {
     145        @Override public void setVisible(boolean b) {
    144146                if (b) {
    145                         Main.main.ds.addSelectionChangedListener(this);
    146                         selectionChanged(Main.main.ds.getSelected());
     147                        Main.ds.addSelectionChangedListener(this);
     148                        selectionChanged(Main.ds.getSelected());
    147149                } else {
    148                         Main.main.ds.removeSelectionChangedListener(this);
     150                        Main.ds.removeSelectionChangedListener(this);
    149151                }
    150152                super.setVisible(b);
     
    158160         */
    159161        public void selectionChanged(Collection<OsmPrimitive> newSelection) {
     162                if (list == null)
     163                        return; // selection changed may be received in base class constructor before init
    160164                list.removeAllElements();
    161165                list.setSize(newSelection.size());
     
    169173         */
    170174        public void updateMap() {
    171                 Main.main.ds.clearSelection();
     175                Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
    172176                for (int i = 0; i < list.getSize(); ++i)
    173177                        if (displaylist.isSelectedIndex(i))
    174                                 ((OsmPrimitive)list.get(i)).setSelected(true);
    175                 Main.main.getMapFrame().repaint();
     178                                sel.add((OsmPrimitive)list.get(i));
     179                Main.ds.setSelected(sel);
    176180        }
    177181}
  • src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r81 r86  
    3232         * @param title The title of the dialog.
    3333     * @param prefName Name of the base preference setting string (prefix)
    34      *      with the final . (e.g.: "layerlist.")
    3534         */
    3635        public ToggleDialog(String title, String name, String iconName, String tooltip, String shortCutName, int shortCut, final String prefName) {
     
    4140                                        show = ((AbstractButton)e.getSource()).isSelected();
    4241                                setVisible(show);
    43                 Main.pref.put(prefName+"visible", show);
     42                Main.pref.put(prefName+".visible", show);
    4443                        }
    4544                };
     
    4847                setVisible(false);
    4948                setBorder(BorderFactory.createEtchedBorder());
    50                 if (Main.pref.getBoolean(prefName+"visible")) {
     49                if (Main.pref.getBoolean(prefName+".visible")) {
    5150                    EventQueue.invokeLater(new Runnable(){
    5251                        public void run() {
Note: See TracChangeset for help on using the changeset viewer.