Ignore:
Timestamp:
2013-05-13T03:10:05+02:00 (11 years ago)
Author:
Don-vip
Message:
  • Improve PopupMenuLauncher to automatically select JTable/JList/JTree line under cursor
  • Simplify all popup menus with this new feature
  • Remove custom popup menus in BoundingBoxSelection and BoundingBoxSelection to use default text field popup menus recently introduced
  • Fix EDT violations in changeset window
  • Make Autoscale actions publicly available in MainMenu
  • Add a new "Zoom to problem" mode in AutoScaleAction
  • Make "Zoom to problem" menu item in validator dialog use this new feature
  • Update enabled state of "Zoom to Conflict" and "Zoom to problem" against selection of conflict/validator dialog
File:
1 edited

Legend:

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

    r5926 r5958  
    77import java.awt.Dimension;
    88import java.awt.GridBagLayout;
    9 import java.awt.Point;
    109import java.awt.event.ActionEvent;
    1110import java.awt.event.KeyEvent;
     
    8180                Shortcut.registerShortcut("subwindow:commandstack", tr("Toggle: {0}",
    8281                tr("Command Stack")), KeyEvent.VK_O, Shortcut.ALT_SHIFT), 100, true);
    83         undoTree.addMouseListener(new PopupMenuHandler());
     82        undoTree.addMouseListener(new MouseEventHandler());
    8483        undoTree.setRootVisible(false);
    8584        undoTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
     
    9190        InputMapUtils.unassignCtrlShiftUpDown(undoTree, JComponent.WHEN_FOCUSED);
    9291       
    93         redoTree.addMouseListener(new PopupMenuHandler());
     92        redoTree.addMouseListener(new MouseEventHandler());
    9493        redoTree.setRootVisible(false);
    9594        redoTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
     
    382381     * undo / redo switch to reduce duplicate code
    383382     */
    384     protected enum UndoRedoType {UNDO, REDO};
     383    protected enum UndoRedoType {UNDO, REDO}
    385384
    386385    /**
     
    444443    }
    445444
    446     class PopupMenuHandler extends PopupMenuLauncher {
     445    class MouseEventHandler extends PopupMenuLauncher {
     446
     447        public MouseEventHandler() {
     448            super(new CommandStackPopup());
     449        }
    447450       
    448451        @Override
    449452        public void mouseClicked(MouseEvent evt) {
    450             super.mouseClicked(evt);
    451             if (evt.getButton() == MouseEvent.BUTTON1 && evt.getClickCount()>1) {
     453            if (isDoubleClick(evt)) {
    452454                selectAndZoomAction.actionPerformed(null);
    453455            }
    454456        }
    455        
    456         @Override
    457         public void launch(MouseEvent evt) {
    458             Point p = evt.getPoint();
    459             JTree tree = (JTree) evt.getSource();
    460             int row = tree.getRowForLocation(p.x, p.y);
    461             if (row != -1) {
    462                 TreePath path = tree.getPathForLocation(p.x, p.y);
    463                 // right click on unselected element -> select it first
    464                 if (!tree.isPathSelected(path)) {
    465                     tree.setSelectionPath(path);
    466                 }
    467                 TreePath[] selPaths = tree.getSelectionPaths();
    468 
    469                 CommandStackPopup menu = new CommandStackPopup();
    470                 menu.show(tree, p.x, p.y-3);
    471             }
    472         }
    473     }
    474 
     457    }
    475458   
    476459    private class CommandStackPopup extends JPopupMenu {
Note: See TracChangeset for help on using the changeset viewer.