Ticket #15598: josm-handle-doubleclick-coherent-in-ChildRelationBrowser-and-ReferringRelationsBrowser.patch
| File josm-handle-doubleclick-coherent-in-ChildRelationBrowser-and-ReferringRelationsBrowser.patch, 4.4 KB (added by , 9 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
9 9 import java.awt.Dialog; 10 10 import java.awt.FlowLayout; 11 11 import java.awt.event.ActionEvent; 12 import java.awt.event.MouseAdapter; 13 import java.awt.event.MouseEvent; 12 14 import java.io.IOException; 13 15 import java.net.HttpURLConnection; 14 16 import java.util.HashSet; … … 65 67 /** the osm data layer this browser is related to */ 66 68 private transient OsmDataLayer layer; 67 69 70 /** the editAction used in the bottom panel and for doubleClick */ 71 private EditAction editAction; 72 68 73 /** 69 74 * Replies the {@link OsmDataLayer} this editor is related to 70 75 * … … 84 89 add(pane, BorderLayout.CENTER); 85 90 86 91 add(buildButtonPanel(), BorderLayout.SOUTH); 92 childTree.setToggleClickCount(0); 93 childTree.addMouseListener(new MouseAdapter() { 94 @Override 95 public void mouseClicked(MouseEvent e) { 96 if (e.getClickCount() == 2 && !e.isAltDown() && !e.isAltGraphDown() && 97 !e.isControlDown() && !e.isMetaDown() && !e.isShiftDown() && 98 childTree.getRowForLocation(e.getX(), e.getY()) == 99 childTree.getMinSelectionRow()) { 100 Relation r = (Relation) childTree.getLastSelectedPathComponent(); 101 if (r.isIncomplete()) { 102 childTree.expandPath(childTree.getSelectionPath()); 103 } else { 104 editAction.actionPerformed( 105 new ActionEvent(e.getSource(), ActionEvent.ACTION_PERFORMED, null)); 106 } 107 } 108 } 109 }); 87 110 } 88 111 89 112 /** … … 104 127 pnl.add(new JButton(downloadSelectedAction)); 105 128 106 129 // --- 107 EditActioneditAction = new EditAction();130 editAction = new EditAction(); 108 131 childTree.addTreeSelectionListener(editAction); 109 132 pnl.add(new JButton(editAction)); 110 133 -
src/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowser.java
44 44 /** 45 45 * Constructs a new {@code ReferringRelationsBrowser}. 46 46 * @param layer OSM data layer 47 * @param model referrin frelations browser model47 * @param model referring relations browser model 48 48 */ 49 49 public ReferringRelationsBrowser(OsmDataLayer layer, ReferringRelationsBrowserModel model) { 50 50 this.model = model; … … 61 61 referrers.setCellRenderer(new OsmPrimitivRenderer()); 62 62 add(new JScrollPane(referrers), BorderLayout.CENTER); 63 63 referrers.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 64 referrers.addMouseListener(new DblClickMouseAdapter());65 64 66 65 JPanel pnl = new JPanel(new FlowLayout(FlowLayout.LEFT)); 67 66 … … 74 73 referrers.getSelectionModel().addListSelectionListener(editAction); 75 74 pnl.add(new JButton(editAction)); 76 75 add(pnl, BorderLayout.SOUTH); 76 77 referrers.addMouseListener(new MouseAdapter() { 78 @Override 79 public void mouseClicked(MouseEvent e) { 80 if (e.getClickCount() == 2 && !e.isAltDown() && !e.isAltGraphDown() && 81 !e.isControlDown() && !e.isMetaDown() && !e.isShiftDown() && 82 referrers.getCellBounds(referrers.getSelectedIndex(), 83 referrers.getSelectedIndex()).contains(e.getPoint())) { 84 editAction.actionPerformed( 85 new ActionEvent(e.getSource(), ActionEvent.ACTION_PERFORMED, null)); 86 } 87 } 88 }); 77 89 } 78 90 79 91 public void init() { … … 170 182 refreshEnabled(); 171 183 } 172 184 } 173 174 class DblClickMouseAdapter extends MouseAdapter {175 @Override176 public void mouseClicked(MouseEvent e) {177 if (e.getClickCount() == 2) {178 editAction.run();179 }180 }181 }182 185 }
