Changeset 86 in josm for src/org/openstreetmap/josm/gui/dialogs
- Timestamp:
- 2006-04-21T14:31:51+02:00 (19 years ago)
- 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 59 59 if (layers.getModel().getSize() == 1) { 60 60 Main.main.setMapFrame(null); 61 Main. main.ds = new DataSet();61 Main.ds = new DataSet(); 62 62 } else { 63 63 int sel = layers.getSelectedIndex(); … … 133 133 layers.setBackground(UIManager.getColor("Button.background")); 134 134 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) { 137 136 Layer layer = (Layer)value; 138 137 JLabel label = (JLabel)super.getListCellRendererComponent(list, -
src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
r79 r86 1 1 package org.openstreetmap.josm.gui.dialogs; 2 2 3 import java.awt.Color;4 3 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener;6 4 7 import javax.swing. JColorChooser;5 import javax.swing.AbstractAction; 8 6 import javax.swing.JList; 9 import javax.swing.JMenuItem;10 7 import javax.swing.JOptionPane; 11 8 import javax.swing.JPopupMenu; 12 9 13 10 import org.openstreetmap.josm.Main; 14 import org.openstreetmap.josm.actions.GpxExportAction;15 import org.openstreetmap.josm.actions.SaveAction;16 11 import 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;21 12 import org.openstreetmap.josm.tools.ImageProvider; 22 13 … … 26 17 public class LayerListPopup extends JPopupMenu { 27 18 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 28 30 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(); 35 34 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); 73 36 } 74 37 } -
src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
r79 r86 36 36 37 37 import org.openstreetmap.josm.Main; 38 import org.openstreetmap.josm.command.Change KeyValueCommand;38 import org.openstreetmap.josm.command.ChangePropertyCommand; 39 39 import org.openstreetmap.josm.data.SelectionChangedListener; 40 40 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 68 68 */ 69 69 public class DblClickWatch extends MouseAdapter { 70 @Override 71 public void mouseClicked(MouseEvent e) { 70 @Override public void mouseClicked(MouseEvent e) { 72 71 if (e.getClickCount() < 2) 73 72 return; … … 87 86 void edit(int row) { 88 87 String key = data.getValueAt(row, 0).toString(); 89 Collection<OsmPrimitive> sel = Main. main.ds.getSelected();88 Collection<OsmPrimitive> sel = Main.ds.getSelected(); 90 89 String msg = "<html>This will change "+sel.size()+" object"+(sel.size()==1?"":"s")+".<br><br>"+ 91 90 "Please select a new value for '"+key+"'.<br>(Empty string deletes the key.)"; … … 125 124 if (value.equals("")) 126 125 value = null; // delete the key 127 mv.editLayer().add(new Change KeyValueCommand(sel, key, value));126 mv.editLayer().add(new ChangePropertyCommand(sel, key, value)); 128 127 129 128 if (value == null) … … 138 137 */ 139 138 void add() { 140 Collection<OsmPrimitive> sel = Main. main.ds.getSelected();139 Collection<OsmPrimitive> sel = Main.ds.getSelected(); 141 140 142 141 JPanel p = new JPanel(new BorderLayout()); … … 144 143 "Please select a key"), BorderLayout.NORTH); 145 144 Vector<String> allKeys = new Vector<String>(); 146 for (OsmPrimitive osm : Main. main.ds.allNonDeletedPrimitives())145 for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) 147 146 allKeys.addAll(osm.keySet()); 148 147 for (Iterator<String> it = allKeys.iterator(); it.hasNext();) { … … 172 171 if (value.equals("")) 173 172 return; 174 mv.editLayer().add(new Change KeyValueCommand(sel, key, value));173 mv.editLayer().add(new ChangePropertyCommand(sel, key, value)); 175 174 selectionChanged(sel); // update table 176 175 } … … 182 181 private void delete(int row) { 183 182 String key = data.getValueAt(row, 0).toString(); 184 Collection<OsmPrimitive> sel = Main. main.ds.getSelected();185 mv.editLayer().add(new Change KeyValueCommand(sel, key, null));183 Collection<OsmPrimitive> sel = Main.ds.getSelected(); 184 mv.editLayer().add(new ChangePropertyCommand(sel, key, null)); 186 185 selectionChanged(sel); // update table 187 186 } … … 191 190 */ 192 191 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) { 195 193 return false; 196 194 } 197 @Override 198 public Class<?> getColumnClass(int columnIndex) { 195 @Override public Class<?> getColumnClass(int columnIndex) { 199 196 return columnIndex == 1 ? JComboBox.class : String.class; 200 197 } … … 221 218 propertyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 222 219 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) { 225 221 Component c = super.getTableCellRendererComponent(table, value, isSelected, false, row, column); 226 222 if (c instanceof JLabel) { … … 234 230 }); 235 231 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) { 238 233 return super.getTableCellRendererComponent(table, value, isSelected, false, row, column); 239 234 } … … 279 274 } 280 275 281 @Override 282 public void setVisible(boolean b) { 276 @Override public void setVisible(boolean b) { 283 277 if (b) { 284 Main. main.ds.addSelectionChangedListener(this);285 selectionChanged(Main. main.ds.getSelected());278 Main.ds.addSelectionChangedListener(this); 279 selectionChanged(Main.ds.getSelected()); 286 280 } else { 287 Main. main.ds.removeSelectionChangedListener(this);281 Main.ds.removeSelectionChangedListener(this); 288 282 } 289 283 super.setVisible(b); … … 291 285 292 286 public void selectionChanged(Collection<OsmPrimitive> newSelection) { 287 if (propertyTable == null) 288 return; // selection changed may be received in base class constructor before init 293 289 if (propertyTable.getCellEditor() != null) 294 290 propertyTable.getCellEditor().cancelCellEditing(); -
src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
r81 r86 11 11 import java.awt.event.MouseEvent; 12 12 import java.util.Collection; 13 import java.util.LinkedList; 13 14 14 15 import javax.swing.ButtonGroup; … … 61 62 displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 62 63 displaylist.addMouseListener(new MouseAdapter(){ 63 @Override 64 public void mouseClicked(MouseEvent e) { 64 @Override public void mouseClicked(MouseEvent e) { 65 65 if (e.getClickCount() < 2) 66 66 return; … … 122 122 lastSearch = input.getText(); 123 123 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); 131 135 } 132 selectionChanged(Main.main.ds.getSelected()); 133 Main.main.getMapFrame().repaint(); 136 Main.ds.setSelected(sel); 134 137 } 135 138 }); … … 137 140 138 141 add(buttonPanel, BorderLayout.SOUTH); 139 selectionChanged(Main. main.ds.getSelected());142 selectionChanged(Main.ds.getSelected()); 140 143 } 141 144 142 @Override 143 public void setVisible(boolean b) { 145 @Override public void setVisible(boolean b) { 144 146 if (b) { 145 Main. main.ds.addSelectionChangedListener(this);146 selectionChanged(Main. main.ds.getSelected());147 Main.ds.addSelectionChangedListener(this); 148 selectionChanged(Main.ds.getSelected()); 147 149 } else { 148 Main. main.ds.removeSelectionChangedListener(this);150 Main.ds.removeSelectionChangedListener(this); 149 151 } 150 152 super.setVisible(b); … … 158 160 */ 159 161 public void selectionChanged(Collection<OsmPrimitive> newSelection) { 162 if (list == null) 163 return; // selection changed may be received in base class constructor before init 160 164 list.removeAllElements(); 161 165 list.setSize(newSelection.size()); … … 169 173 */ 170 174 public void updateMap() { 171 Main.main.ds.clearSelection();175 Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>(); 172 176 for (int i = 0; i < list.getSize(); ++i) 173 177 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); 176 180 } 177 181 } -
src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
r81 r86 32 32 * @param title The title of the dialog. 33 33 * @param prefName Name of the base preference setting string (prefix) 34 * with the final . (e.g.: "layerlist.")35 34 */ 36 35 public ToggleDialog(String title, String name, String iconName, String tooltip, String shortCutName, int shortCut, final String prefName) { … … 41 40 show = ((AbstractButton)e.getSource()).isSelected(); 42 41 setVisible(show); 43 Main.pref.put(prefName+"visible", show); 42 Main.pref.put(prefName+".visible", show); 44 43 } 45 44 }; … … 48 47 setVisible(false); 49 48 setBorder(BorderFactory.createEtchedBorder()); 50 if (Main.pref.getBoolean(prefName+"visible")) { 49 if (Main.pref.getBoolean(prefName+".visible")) { 51 50 EventQueue.invokeLater(new Runnable(){ 52 51 public void run() {
Note:
See TracChangeset
for help on using the changeset viewer.