Ticket #5443: PropertiesDialog.java.patch
| File PropertiesDialog.java.patch, 4.0 KB (added by , 15 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
7 7 import java.awt.BorderLayout; 8 8 import java.awt.Component; 9 9 import java.awt.Cursor; 10 import java.awt.Desktop; 10 11 import java.awt.Dialog.ModalityType; 11 12 import java.awt.Dimension; 12 13 import java.awt.Font; … … 20 21 import java.awt.event.MouseAdapter; 21 22 import java.awt.event.MouseEvent; 22 23 import java.awt.event.MouseListener; 24 import java.net.URI; 23 25 import java.util.ArrayList; 24 26 import java.util.Collection; 25 27 import java.util.Collections; … … 28 30 import java.util.Iterator; 29 31 import java.util.List; 30 32 import java.util.Map; 33 import java.util.Map.Entry; 31 34 import java.util.TreeMap; 32 35 import java.util.Vector; 33 import java.util.Map.Entry;34 36 35 37 import javax.swing.AbstractAction; 36 38 import javax.swing.Box; … … 69 71 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; 70 72 import org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter; 71 73 import org.openstreetmap.josm.data.osm.event.DatasetEventManager; 72 import org.openstreetmap.josm.data.osm.event.SelectionEventManager;73 74 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode; 75 import org.openstreetmap.josm.data.osm.event.SelectionEventManager; 74 76 import org.openstreetmap.josm.gui.DefaultNameFormatter; 75 77 import org.openstreetmap.josm.gui.ExtendedDialog; 76 78 import org.openstreetmap.josm.gui.MapFrame; … … 706 708 getActionMap().put("delete", deleteAction); 707 709 buttonPanel.add(this.btnDel); 708 710 add(buttonPanel, BorderLayout.SOUTH); 711 712 // -- help action 713 // 714 HelpAction helpAction = new HelpAction(); 715 propertyTable.getSelectionModel().addListSelectionListener(helpAction); 716 getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( 717 KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "onHelp"); 718 getActionMap().put("onHelp", helpAction); 709 719 } 710 720 711 721 @Override public void setVisible(boolean b) { … … 1094 1104 } 1095 1105 } 1096 1106 1107 class HelpAction extends AbstractAction implements ListSelectionListener { 1108 public HelpAction() { 1109 putValue(NAME, tr("Help")); 1110 putValue(SHORT_DESCRIPTION, tr("Launch browser with wiki help to selected object")); 1111 updateEnabledState(); 1112 } 1113 1114 public void actionPerformed(ActionEvent e) { 1115 if (!isEnabled()) 1116 return; 1117 1118 try { 1119 URI url = new URI("http://wiki.openstreetmap.org/"); 1120 1121 if (propertyTable.getSelectedRowCount() == 1) { 1122 int row = propertyTable.getSelectedRow(); 1123 url = new URI("http://wiki.openstreetmap.org/wiki/Key:"+ 1124 propertyData.getValueAt(row, 0).toString()); 1125 } else if (membershipTable.getSelectedRowCount() == 1) { 1126 int row = membershipTable.getSelectedRow(); 1127 url = new URI("http://wiki.openstreetmap.org/wiki/Relation:"+ 1128 ((Relation)membershipData.getValueAt(row, 0)).get("type")); 1129 } 1130 1131 Desktop.getDesktop().browse(url); 1132 } catch (Exception e1) { 1133 e1.printStackTrace(); 1134 } 1135 } 1136 1137 protected void updateEnabledState() { 1138 setEnabled( 1139 propertyTable.getSelectedRowCount() == 1 1140 ^ membershipTable.getSelectedRowCount() == 1 1141 ); 1142 } 1143 1144 public void valueChanged(ListSelectionEvent e) { 1145 updateEnabledState(); 1146 } 1147 } 1148 1097 1149 static class SelectRelationAction extends AbstractAction { 1098 1150 boolean selectionmode; 1099 1151 Relation relation;
