Ignore:
Timestamp:
2010-03-25T11:16:13+01:00 (15 years ago)
Author:
guggis
Message:

Added support for two different sets of road sign icons

Location:
applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/BasicEditorPanel.java

    r20586 r20666  
    1111import javax.swing.JScrollPane;
    1212
     13import org.openstreetmap.josm.data.Preferences;
    1314import org.openstreetmap.josm.gui.widgets.VerticallyScrollablePanel;
    1415import org.openstreetmap.josm.plugins.turnrestrictions.editor.NavigationControler.BasicEditorFokusTargets;
     16import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    1517import org.openstreetmap.josm.tools.CheckParameterUtil;
    1618
     
    140142                }
    141143        }       
     144       
     145        /**
     146         * Initializes the set of icons used from the preference key
     147         * {@see PreferenceKeys#ROAD_SIGNS}.
     148         *
     149         * @param prefs the JOSM preferences
     150         */
     151        public void initIconSetFromPreferences(Preferences prefs){             
     152                cbTurnRestrictions.initIconSetFromPreferences(prefs);
     153        }
    142154}
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionComboBox.java

    r20489 r20666  
    22
    33import javax.swing.JComboBox;
     4
     5import org.openstreetmap.josm.data.Preferences;
     6import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    47/**
    58 * A combo box for selecting a turn restriction type.
     
    2629                return (TurnRestrictionComboBoxModel)getModel();
    2730        }
     31       
     32        /**
     33         * Initializes the set of icons used from the preference key
     34         * {@see PreferenceKeys#ROAD_SIGNS}.
     35         *
     36         * @param prefs the JOSM preferences
     37         */
     38        public void initIconSetFromPreferences(Preferences prefs){
     39                TurnRestrictionTypeRenderer renderer = (TurnRestrictionTypeRenderer)getRenderer();
     40                renderer.initIconSetFromPreferences(prefs);
     41                repaint();
     42        }
    2843}
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionEditor.java

    r20633 r20666  
    3939import org.openstreetmap.josm.command.ChangeCommand;
    4040import org.openstreetmap.josm.command.ConflictAddCommand;
     41import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
     42import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
    4143import org.openstreetmap.josm.data.conflict.Conflict;
    4244import org.openstreetmap.josm.data.osm.Relation;
     
    5052import org.openstreetmap.josm.gui.help.HelpUtil;
    5153import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     54import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    5255import org.openstreetmap.josm.plugins.turnrestrictions.qa.IssuesView;
    5356import org.openstreetmap.josm.tools.CheckParameterUtil;
     
    8891    private TurnRestrictionEditorModel editorModel;
    8992    private JTabbedPane tpEditors;
     93    private PreferenceChangeHandler preferenceChangeHandler;
    9094   
    9195    /**
     
    202206       
    203207        editorModel.getIssuesModel().addObserver(new IssuesModelObserver());
    204         setSize(600,600);
     208        setSize(600,600);       
    205209    }   
    206210       
     
    335339                pnlJosmSelection.wireListeners();
    336340                editorModel.registerAsEventListener();
     341                Main.pref.addPreferenceChangeListener(this.preferenceChangeHandler = new PreferenceChangeHandler());
     342                pnlBasicEditor.initIconSetFromPreferences(Main.pref);
    337343        } else if (!visible && isVisible()) {
    338344                pnlJosmSelection.unwireListeners();
    339345                editorModel.unregisterAsEventListener();
     346                Main.pref.removePreferenceChangeListener(preferenceChangeHandler);
    340347        }
    341348        super.setVisible(visible);
     
    857864                }       
    858865    }
     866   
     867    /**
     868     * Listens the changes of the preference {@see PreferenceKeys#ROAD_SIGNS}
     869     * and refreshes the set of road icons
     870     *
     871     */
     872    class PreferenceChangeHandler implements PreferenceChangedListener {       
     873        public void refreshIconSet() {
     874                pnlBasicEditor.initIconSetFromPreferences(Main.pref);
     875        }
     876       
     877                public void preferenceChanged(PreferenceChangeEvent evt) {                     
     878                        if (!evt.getKey().equals(PreferenceKeys.ROAD_SIGNS)) return;
     879                        refreshIconSet();
     880                }
     881    }
    859882}
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionTypeRenderer.java

    r20648 r20666  
    1212import javax.swing.UIManager;
    1313
     14import org.openstreetmap.josm.data.Preferences;
     15import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    1416import org.openstreetmap.josm.tools.ImageProvider;
    1517import static org.openstreetmap.josm.tools.I18n.tr;
     
    1921 
    2022        final private Map<TurnRestrictionType, ImageIcon> icons = new HashMap<TurnRestrictionType, ImageIcon>();
     23        private String iconSet = "set-a";
    2124       
    2225        /**
     
    2629                for(TurnRestrictionType type: TurnRestrictionType.values()) {
    2730                        try {
    28                                 ImageIcon icon = new ImageIcon(ImageProvider.get("types/set-a", type.getTagValue()).getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));
     31                                ImageIcon icon = new ImageIcon(ImageProvider.get("types/" + iconSet, type.getTagValue()).getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));
    2932                                icons.put(type,icon);
    3033                        } catch(Exception e){
     
    5053        }
    5154       
     55        /**
     56         * Initializes the set of icons used from the preference key
     57         * {@see PreferenceKeys#ROAD_SIGNS}.
     58         *
     59         * @param prefs the JOSM preferences
     60         */
     61        public void initIconSetFromPreferences(Preferences prefs){             
     62                iconSet = prefs.get(PreferenceKeys.ROAD_SIGNS, "set-a");
     63                iconSet = iconSet.trim().toLowerCase();
     64                if (!iconSet.equals("set-a") && !iconSet.equals("set-b")) {
     65                        iconSet = "set-a";
     66                }
     67                loadImages();
     68        }
     69       
    5270        public Component getListCellRendererComponent(JList list, Object value,
    5371                        int index, boolean isSelected, boolean cellHasFocus) {
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/list/AbstractTurnRestrictionsListView.java

    r20489 r20666  
    44import javax.swing.JPanel;
    55import javax.swing.event.ListSelectionListener;
     6
     7import org.openstreetmap.josm.data.Preferences;
    68
    79/**
     
    3133                lstTurnRestrictions.addListSelectionListener(listener);
    3234        }
    33 
     35       
     36        public void initIconSetFromPreferences(Preferences prefs){
     37                TurnRestrictionCellRenderer renderer = (TurnRestrictionCellRenderer)lstTurnRestrictions.getCellRenderer();
     38                renderer.initIconSetFromPreferences(prefs);
     39        }
    3440}
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/list/TurnRestrictionCellRenderer.java

    r20648 r20666  
    2222import javax.swing.table.TableCellRenderer;
    2323
     24import org.openstreetmap.josm.data.Preferences;
    2425import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    2526import org.openstreetmap.josm.data.osm.Relation;
     
    2829import org.openstreetmap.josm.gui.DefaultNameFormatter;
    2930import org.openstreetmap.josm.gui.JMultilineLabel;
     31import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    3032import org.openstreetmap.josm.tools.ImageProvider;
    3133import static org.openstreetmap.josm.tools.I18n.trc;
     
    5860        private JLabel from;
    5961        private JLabel to;
     62        private String iconSet = "set-a";
    6063       
    6164        public TurnRestrictionCellRenderer() {
     
    8487         */
    8588        protected String buildImageName(String restrictionType) {
    86                 return "types/set-a/" + restrictionType;
     89                return "types/" + iconSet + "/" + restrictionType;
    8790        }
    8891       
     
    214217        }
    215218
     219        /**
     220         * Initializes the set of icons used from the preference key
     221         * {@see PreferenceKeys#ROAD_SIGNS}.
     222         *
     223         * @param prefs the JOSM preferences
     224         */
     225        public void initIconSetFromPreferences(Preferences prefs){
     226               
     227                iconSet = prefs.get(PreferenceKeys.ROAD_SIGNS, "set-a");
     228                iconSet = iconSet.trim().toLowerCase();
     229                if (!iconSet.equals("set-a") && !iconSet.equals("set-b")) {
     230                        iconSet = "set-a";
     231                }
     232        }
     233       
    216234        /* ---------------------------------------------------------------------------------- */
    217235        /* interface ListCellRenderer                                                         */
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/list/TurnRestrictionsListDialog.java

    r20648 r20666  
    1212import java.util.HashSet;
    1313import java.util.List;
     14import java.util.logging.Logger;
    1415
    1516import javax.swing.AbstractAction;
     
    2324import org.openstreetmap.josm.Main;
    2425import org.openstreetmap.josm.actions.AutoScaleAction;
     26import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
     27import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
    2528import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2629import org.openstreetmap.josm.data.osm.Relation;
     
    3033import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener;
    3134import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
    32 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
    3335import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    3436import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     
    3638import org.openstreetmap.josm.plugins.turnrestrictions.editor.TurnRestrictionEditor;
    3739import org.openstreetmap.josm.plugins.turnrestrictions.editor.TurnRestrictionEditorManager;
     40import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceKeys;
    3841import org.openstreetmap.josm.tools.ImageProvider;
    3942
     
    4851 */
    4952public class TurnRestrictionsListDialog extends ToggleDialog{
     53        private static final Logger logger = Logger.getLogger(TurnRestrictionsListDialog.class.getName());
    5054
    5155        /** checkbox for switching between the two list views */
     
    6872        /** the main content panel in this toggle dialog */
    6973        private JPanel pnlContent;
     74        private PreferenceChangeHandler preferenceChangeHandler;
    7075       
    7176        @Override
     
    7580                MapView.addEditLayerChangeListener(actNew);
    7681                actNew.updateEnabledState();
     82                Main.pref.addPreferenceChangeListener(preferenceChangeHandler);
     83                preferenceChangeHandler.refreshIconSet();
    7784        }
    7885
     
    8289                pnlTurnRestrictionsInSelection.unregisterAsListener();
    8390                MapView.removeEditLayerChangeListener(actNew);
     91                Main.pref.removePreferenceChangeListener(preferenceChangeHandler);
    8492        }
    8593
     
    141149                pnlTurnRestrictionsInDataSet.getList().addMouseListener(launcher);
    142150                pnlTurnRestrictionsInSelection.getList().addMouseListener(launcher);
     151               
     152                preferenceChangeHandler = new PreferenceChangeHandler();
     153               
    143154        }
    144155       
     
    429440        }
    430441    }
     442   
     443    /**
     444     * Listens the changes of the preference {@see PreferenceKeys#ROAD_SIGNS}
     445     * and refreshes the set of road icons
     446     *
     447     */
     448    class PreferenceChangeHandler implements PreferenceChangedListener {       
     449        public void refreshIconSet() {
     450                pnlTurnRestrictionsInDataSet.initIconSetFromPreferences(Main.pref);
     451                        pnlTurnRestrictionsInSelection.initIconSetFromPreferences(Main.pref);
     452                        repaint();
     453        }
     454       
     455                public void preferenceChanged(PreferenceChangeEvent evt) {                     
     456                        if (!evt.getKey().equals(PreferenceKeys.ROAD_SIGNS)) return;
     457                        refreshIconSet();
     458                }
     459    }
    431460}
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/preferences/PreferenceEditor.java

    r20665 r20666  
    1313import javax.swing.JLabel;
    1414import javax.swing.JPanel;
     15import javax.swing.JScrollPane;
    1516import javax.swing.JTabbedPane;
    1617import javax.swing.event.HyperlinkEvent;
    1718import javax.swing.event.HyperlinkListener;
    1819
     20import org.openstreetmap.josm.Main;
    1921import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    2022import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
     
    2931 */
    3032public class PreferenceEditor extends JPanel implements PreferenceSetting{
     33       
     34        private IconPreferencePanel pnlIconPreferences;
    3135
    3236        /**
     
    7074        }
    7175
     76        protected JPanel buildIconPreferencePanel() {
     77                JPanel pnl = new JPanel(new BorderLayout());
     78               
     79                pnlIconPreferences = new IconPreferencePanel();
     80                pnlIconPreferences.initFromPreferences(Main.pref);
     81               
     82                JScrollPane sp = new JScrollPane(pnlIconPreferences);
     83                sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
     84                sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
     85               
     86                pnl.add(sp, BorderLayout.CENTER);
     87                return pnl;
     88        }
    7289       
    7390        protected void build() {
    7491                setLayout(new BorderLayout());
    7592                JTabbedPane tp = new JTabbedPane();
    76                 tp.add(buildCreditPanel());
    77                 tp.setTitleAt(0, tr("Sponsor"));
     93                tp.add(buildIconPreferencePanel());
     94                tp.add(buildCreditPanel());             
     95                tp.setTitleAt(0, tr("Road Signs"));
     96                tp.setToolTipTextAt(0,tr("Configure the set of road sign icons to be used in the turnrestrictions plugin"));
     97                tp.setTitleAt(1, tr("Sponsor"));
    7898                add(tp, BorderLayout.CENTER);
    7999        }
     
    90110
    91111        public boolean ok() {
     112                pnlIconPreferences.saveToPreferences(Main.pref);
    92113                return false;
    93114        }
Note: See TracChangeset for help on using the changeset viewer.