Changeset 16416 in josm


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

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

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
2 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
  • trunk/src/org/openstreetmap/josm/gui/util/ReorderableTableModel.java

    r15226 r16416  
    22package org.openstreetmap.josm.gui.util;
    33
     4import javax.swing.JList;
     5import javax.swing.JTable;
     6import javax.swing.ListModel;
    47import javax.swing.ListSelectionModel;
    58import javax.swing.table.TableModel;
     
    811
    912/**
    10  * Defines a table model that can be reordered.
     13 * Defines a list/table model that can be reordered.
    1114 * @param <T> item type
    1215 * @since 15226
    1316 */
    14 public interface ReorderableTableModel<T> extends TableModel, ReorderableModel<T> {
     17public interface ReorderableTableModel<T> extends ReorderableModel<T> {
    1518
    1619    /**
    1720     * Returns the selection model.
    1821     * @return the selection model (never null)
     22     * @see JList#getSelectionModel()
     23     * @see JTable#getSelectionModel()
    1924     */
    2025    ListSelectionModel getSelectionModel();
     26
     27    /**
     28     * Returns the number of rows in the list/table.
     29     * @return the number of rows in the list/table
     30     * @see ListModel#getSize()
     31     * @see TableModel#getRowCount()
     32     */
     33    int getRowCount();
    2134
    2235    /**
Note: See TracChangeset for help on using the changeset viewer.