Changeset 1759 in josm for trunk/src/org


Ignore:
Timestamp:
2009-07-10T20:32:09+02:00 (15 years ago)
Author:
stoecker
Message:

don't show preset dialog if there is nothing to show

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    r1743 r1759  
    6767    public static abstract class Item {
    6868        public boolean focus = false;
    69         abstract void addToPanel(JPanel p, Collection<OsmPrimitive> sel);
     69        abstract boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel);
    7070        abstract void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds);
    7171        boolean requestFocusInWindow() {return false;}
     
    133133        private JComponent value;
    134134
    135         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     135        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    136136
    137137            // find out if our key is already used in the selection.
     
    162162            p.add(new JLabel(locale_text+":"), GBC.std().insets(0,0,10,0));
    163163            p.add(value, GBC.eol().fill(GBC.HORIZONTAL));
     164            return true;
    164165        }
    165166
     
    193194        private boolean def;
    194195
    195         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     196        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    196197
    197198            // find out if our key is already used in the selection.
     
    238239            }
    239240            p.add(check, GBC.eol().fill(GBC.HORIZONTAL));
     241            return true;
    240242        }
    241243
     
    271273        private String originalValue;
    272274
    273         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     275        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    274276
    275277            // find out if our key is already used in the selection.
     
    332334            p.add(new JLabel(locale_text+":"), GBC.std().insets(0,0,10,0));
    333335            p.add(combo, GBC.eol().fill(GBC.HORIZONTAL));
     336            return true;
    334337        }
    335338        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
     
    366369        public String locale_text;
    367370
    368         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     371        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    369372            if(locale_text == null)
    370373                locale_text = tr(text);
    371374            p.add(new JLabel(locale_text), GBC.eol());
     375            return false;
    372376        }
    373377        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
     
    380384        public String locale_href;
    381385
    382         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     386        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    383387            if(locale_text == null)
    384388                locale_text = text == null ? tr("More information about this feature") : tr(text);
     
    390394                p.add(new UrlLabel(url, locale_text), GBC.eol().anchor(GBC.WEST));
    391395            }
     396            return false;
    392397        }
    393398        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
     
    396401    public static class Optional extends Item {
    397402        // TODO: Draw a box around optional stuff
    398         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     403        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    399404            p.add(new JLabel(" "), GBC.eol()); // space
    400405            p.add(new JLabel(tr("Optional Attributes:")), GBC.eol());
    401406            p.add(new JLabel(" "), GBC.eol()); // space
     407            return false;
    402408        }
    403409        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
     
    405411
    406412    public static class Space extends Item {
    407         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     413        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    408414            p.add(new JLabel(" "), GBC.eol()); // space
     415            return false;
    409416        }
    410417        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
     
    415422        public String value;
    416423
    417         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) { }
     424        @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) { return false; }
    418425        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {
    419426            cmds.add(new ChangePropertyCommand(sel, key, value != null && !value.equals("") ? value : null));
     
    570577    }
    571578
    572     public JPanel createPanel(Collection<OsmPrimitive> selected) {
     579    private class PresetPanel extends JPanel {
     580        boolean hasElements = false;
     581        PresetPanel()
     582        {
     583            super(new GridBagLayout());
     584        }
     585    }
     586
     587    public PresetPanel createPanel(Collection<OsmPrimitive> selected) {
    573588        if (data == null)
    574589            return null;
    575         JPanel p = new JPanel(new GridBagLayout());
     590        PresetPanel p = new PresetPanel();
    576591        LinkedList<Item> l = new LinkedList<Item>();
    577592        if(types != null)
     
    592607                l.add(i);
    593608            else
    594                 i.addToPanel(p, selected);
     609            {
     610                if(i.addToPanel(p, selected))
     611                    p.hasElements = true;
     612            }
    595613        }
    596614        for(Item link : l)
     
    601619    public void actionPerformed(ActionEvent e) {
    602620        Collection<OsmPrimitive> sel = createSelection(Main.ds.getSelected());
    603         JPanel p = createPanel(sel);
     621        PresetPanel p = createPanel(sel);
    604622        if (p == null)
    605623            return;
    606624
    607625        int answer = 1;
    608         if (p.getComponentCount() != 0) {
     626        if (p.getComponentCount() != 0 && (sel.size() == 0 || p.hasElements)) {
    609627            String title = trn("Change {0} object", "Change {0} objects", sel.size(), sel.size());
    610628            if(sel.size() == 0) {
Note: See TracChangeset for help on using the changeset viewer.