Changeset 4033 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2011-04-17T13:49:50+02:00 (14 years ago)
Author:
stoecker
Message:

fix name/icon for toolbar as well as tollbar defaults

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java

    r4032 r4033  
    7575        private String name = "";
    7676        private String icon = "";
     77        private ImageIcon ico = null;
    7778        private final Map<String, Object> parameters = new HashMap<String, Object>();
    7879
     
    100101        }
    101102
     103        public String getDisplayName() {
     104            return name.isEmpty() ? (String) action.getValue(Action.NAME) : name;
     105        }
     106
     107        public String getDisplayTooltip() {
     108            if(!name.isEmpty())
     109                return name;
     110
     111            Object tt = action.getValue(TaggingPreset.OPTIONAL_TOOLTIP_TEXT);
     112            if (tt != null)
     113                return (String) tt;
     114
     115            return (String) action.getValue(Action.SHORT_DESCRIPTION);
     116        }
     117
     118        public Icon getDisplayIcon() {
     119            return ico != null ? ico : (Icon) action.getValue(Action.SMALL_ICON);
     120        }
     121
    102122        public void setName(String name) {
    103123            this.name = name;
    104             action.putValue(AbstractAction.SHORT_DESCRIPTION, Main.platform.makeTooltip(name, null));
    105             action.putValue(AbstractAction.NAME, name);
    106124        }
    107125
     
    112130        public void setIcon(String icon) {
    113131            this.icon = icon;
    114             ImageIcon ico = ImageProvider.getIfAvailable("", icon);
    115             if(ico != null)
    116                 action.putValue(AbstractAction.SMALL_ICON, ico);
     132            ico = ImageProvider.getIfAvailable("", icon);
    117133        }
    118134
     
    279295
    280296        public int getRowCount() {
     297            int adaptable = ((currentAction.getAction() instanceof AdaptableAction) ? 2 : 0);
    281298            if (currentAction.isSeparator() || !(currentAction.getAction() instanceof ParameterizedAction))
    282                 return 0;
     299                return adaptable;
    283300            ParameterizedAction pa = (ParameterizedAction)currentAction.getAction();
    284             return pa.getActionParameters().size()
    285             + ((currentAction.getAction() instanceof ParameterizedAction) ? 2 : 0);
     301            return pa.getActionParameters().size() + adaptable;
    286302        }
    287303
     
    293309
    294310        public Object getValueAt(int rowIndex, int columnIndex) {
    295             if(currentAction.getAction() instanceof ParameterizedAction)
     311            if(currentAction.getAction() instanceof AdaptableAction)
    296312            {
    297313                if (rowIndex < 2) {
     
    325341        @Override
    326342        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    327             if(currentAction.getAction() instanceof ParameterizedAction)
     343            if(currentAction.getAction() instanceof AdaptableAction)
    328344            {
    329345                if (rowIndex == 0) {
     
    503519                    ActionDefinition action = (ActionDefinition)value;
    504520                    if (!action.isSeparator()) {
    505                         s = (String) action.getAction().getValue(Action.NAME);
    506                         i = (Icon) action.getAction().getValue(Action.SMALL_ICON);
     521                        s = action.getDisplayName();
     522                        i = action.getDisplayIcon();
    507523                    } else {
    508524                        i = ImageProvider.get("preferences/separator");
     
    799815    }
    800816
    801     private static final String[] deftoolbar = {"open", "save", "download", "upload", "|", "undo", "redo", "|", "dialogs/search", "preference", "|", "splitway", "combineway", "wayflip", "|", "imagery-offset", "|", "tagginggroup_Highways/Streets", "tagginggroup_Highways/Ways", "tagginggroup_Highways/Waypoints", "tagginggroup_Highways/Barriers", "|", "tagginggroup_Transport/Car", "tagginggroup_Transport/Public Transport", "|", "tagginggroup_Travel/Tourism", "tagginggroup_Travel/Food+Drinks", "|", "tagginggroup_Travel/Historic Places", "|", "tagginggroup_Man-Made/Man Made"};
     817    private static final String[] deftoolbar = {"open", "save", "download", "upload", "|",
     818    "undo", "redo", "|", "dialogs/search", "preference", "|", "splitway", "combineway",
     819    "wayflip", "|", "imagery-offset", "|", "tagginggroup_Highways/Streets",
     820    "tagginggroup_Highways/Ways", "tagginggroup_Highways/Waypoints",
     821    "tagginggroup_Highways/Barriers", "|", "tagginggroup_Transport/Car",
     822    "tagginggroup_Transport/Public Transport", "|", "tagginggroup_Facilities/Tourism",
     823    "tagginggroup_Facilities/Food+Drinks", "|", "tagginggroup_Man Made/Historic Places", "|",
     824    "tagginggroup_Man Made/Man Made"};
    802825
    803826    private static Collection<String> getToolString() {
     
    826849                if(a != null) {
    827850                    result.add(a);
     851                } else {
     852                    System.out.println("Could not load tool definition "+s);
    828853                }
    829854            }
     
    854879                control.addSeparator();
    855880            } else {
    856                 Action a = action.getParametrizedAction();
    857                 JButton b = control.add(a);
    858                 Object tt = a.getValue(TaggingPreset.OPTIONAL_TOOLTIP_TEXT);
    859                 if (tt != null) {
    860                     b.setToolTipText((String)tt);
    861                 }
     881                JButton b = control.add(action.getParametrizedAction());
     882                String tt = action.getDisplayTooltip();
     883                if (tt != null && !tt.isEmpty())
     884                    b.setToolTipText(tt);
     885                Icon i = action.getDisplayIcon();
     886                if (i != null)
     887                    b.setIcon(i);
    862888            }
    863889        }
Note: See TracChangeset for help on using the changeset viewer.