Ignore:
Timestamp:
2020-05-15T22:39:18+02:00 (4 years ago)
Author:
simon04
Message:

fix #19234 - ToolbarPreferences: move up/down all selected entries

File:
1 edited

Legend:

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

    r16415 r16416  
    4949import javax.swing.JTree;
    5050import javax.swing.ListCellRenderer;
     51import javax.swing.ListSelectionModel;
    5152import javax.swing.MenuElement;
    5253import javax.swing.TransferHandler;
     
    7172import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
    7273import org.openstreetmap.josm.gui.util.GuiHelper;
     74import org.openstreetmap.josm.gui.util.ReorderableTableModel;
    7375import org.openstreetmap.josm.spi.preferences.Config;
    7476import org.openstreetmap.josm.tools.GBC;
     
    708710                    }
    709711                } else if ("up".equals(e.getActionCommand())) {
    710                     int i = selectedList.getSelectedIndex();
    711                     ActionDefinition o = selected.get(i);
    712                     if (i != 0) {
    713                         selected.remove(i);
    714                         selected.add(i-1, o);
    715                         selectedList.setSelectedIndex(i-1);
    716                     }
     712                    selected.moveUp();
    717713                } else if ("down".equals(e.getActionCommand())) {
    718                     int i = selectedList.getSelectedIndex();
    719                     ActionDefinition o = selected.get(i);
    720                     if (i != selected.size()-1) {
    721                         selected.remove(i);
    722                         selected.add(i+1, o);
    723                         selectedList.setSelectedIndex(i+1);
    724                     }
     714                    selected.moveDown();
    725715                }
    726716            }
     
    753743        }
    754744
     745        private class ActionDefinitionModel extends DefaultListModel<ActionDefinition> implements ReorderableTableModel<ActionDefinition> {
     746            @Override
     747            public ListSelectionModel getSelectionModel() {
     748                return selectedList.getSelectionModel();
     749            }
     750
     751            @Override
     752            public int getRowCount() {
     753                return getSize();
     754            }
     755
     756            @Override
     757            public ActionDefinition getValue(int index) {
     758                return getElementAt(index);
     759            }
     760
     761            @Override
     762            public ActionDefinition setValue(int index, ActionDefinition value) {
     763                return set(index, value);
     764            }
     765        }
     766
    755767        private final Move moveAction = new Move();
    756768
    757         private final DefaultListModel<ActionDefinition> selected = new DefaultListModel<>();
     769        private final ActionDefinitionModel selected = new ActionDefinitionModel();
    758770        private final JList<ActionDefinition> selectedList = new JList<>(selected);
    759771
Note: See TracChangeset for help on using the changeset viewer.