Changeset 6025 in josm


Ignore:
Timestamp:
2013-06-26T10:14:24+02:00 (11 years ago)
Author:
akks
Message:

Highlight relation or object when user clicks the list in Relation List, Selection List or Properties dialog
[ idea by Felis Pimeja ] + added HighlighHelper class

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
1 added
3 edited

Legend:

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

    r5958 r6025  
    6666import org.openstreetmap.josm.gui.layer.Layer;
    6767import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     68import org.openstreetmap.josm.gui.util.HighlightHelper;
    6869import org.openstreetmap.josm.gui.widgets.DisableShortcutsOnFocusGainedTextField;
    6970import org.openstreetmap.josm.gui.widgets.JosmTextField;
     
    112113    private final AddSelectionToRelations addSelectionToRelations = new AddSelectionToRelations();
    113114   
     115    HighlightHelper highlightHelper = new HighlightHelper();
     116   
    114117    /**
    115118     * Constructs <code>RelationListDialog</code>
     
    183186    // inform all actions about list of relations they need
    184187    private void updateActionsRelationLists() {
    185         popupMenuHandler.setPrimitives(model.getSelectedRelations());
     188        List<Relation> sel = model.getSelectedRelations();
     189        popupMenuHandler.setPrimitives(sel);
     190       
     191        //update highlights
     192        if (Main.isDisplayingMapView()) {
     193            highlightHelper.highlightOnly(sel);
     194            Main.map.mapView.repaint();
     195        }
    186196    }
    187197   
     
    298308            super(popupMenu);
    299309        }
     310
     311        @Override
     312        public void mouseExited(MouseEvent me) {
     313            highlightHelper.clear();
     314        }
    300315       
    301316        protected void setCurrentRelationAsSelection() {
     
    306321            EditRelationAction.launchEditor(getSelected());
    307322        }
    308 
     323       
    309324        @Override public void mouseClicked(MouseEvent e) {
    310325            if (Main.main.getEditLayer() == null) return;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r5991 r6025  
    6767import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    6868import org.openstreetmap.josm.gui.util.GuiHelper;
     69import org.openstreetmap.josm.gui.util.HighlightHelper;
    6970import org.openstreetmap.josm.gui.widgets.ListPopupMenu;
    7071import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     
    186187     */
    187188    class MouseEventHandler extends PopupMenuLauncher {
     189        private final HighlightHelper helper = new HighlightHelper();
    188190       
    189191        public MouseEventHandler() {
     
    193195        @Override
    194196        public void mouseClicked(MouseEvent e) {
     197            int idx = lstPrimitives.locationToIndex(e.getPoint());
     198            if (idx < 0) return;
    195199            if (isDoubleClick(e)) {
    196                 int idx = lstPrimitives.locationToIndex(e.getPoint());
    197                 if (idx < 0) return;
    198200                OsmDataLayer layer = Main.main.getEditLayer();
    199201                if (layer == null) return;
    200202                layer.data.setSelected(Collections.singleton((OsmPrimitive)model.getElementAt(idx)));
    201             }
     203            } else if (Main.isDisplayingMapView()) {
     204                helper.highlightOnly((OsmPrimitive)model.getElementAt(idx));
     205                Main.map.mapView.repaint();
     206            }
     207        }
     208
     209        @Override
     210        public void mouseExited(MouseEvent me) {
     211            helper.clear();
     212            super.mouseExited(me);
    202213        }
    203214    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r5984 r6025  
    8686import org.openstreetmap.josm.gui.tagging.TaggingPreset.PresetType;
    8787import org.openstreetmap.josm.gui.util.GuiHelper;
     88import org.openstreetmap.josm.gui.util.HighlightHelper;
    8889import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    8990import org.openstreetmap.josm.tools.GBC;
     
    176177    private final SelectMembersAction addMembersToSelectionAction = new SelectMembersAction(true);
    177178   
     179    private final HighlightHelper highlightHelper= new HighlightHelper();
     180   
    178181    /**
    179182     * The Add button (needed to be able to disable it)
     
    255258        membershipTable.getSelectionModel().addListSelectionListener(deleteAction);
    256259       
    257 
     260       
    258261        JScrollPane scrollPane = (JScrollPane) createLayout(bothTables, true, Arrays.asList(new SideButton[] {
    259262                this.btnAdd, this.btnEdit, this.btnDel
     
    408411                return row;
    409412            }
     413
     414            @Override
     415            public void mouseClicked(MouseEvent e) {
     416                //update highlights
     417                if (Main.isDisplayingMapView()) {
     418                    int row = membershipTable.rowAtPoint(e.getPoint());
     419                    if (row>=0) {
     420                        highlightHelper.highlightOnly((Relation) membershipTable.getValueAt(row, 0));
     421                        Main.map.mapView.repaint();
     422                    }
     423                }
     424                super.mouseClicked(e);
     425            }
     426
     427            @Override
     428            public void mouseExited(MouseEvent me) {
     429                highlightHelper.clear();
     430            }
    410431        });
    411432    }
Note: See TracChangeset for help on using the changeset viewer.