Ignore:
Timestamp:
2016-01-09T22:21:00+01:00 (9 years ago)
Author:
simon04
Message:

see #12300 - Allow to drag from select list to relation members

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r9078 r9369  
    77import java.awt.Component;
    88import java.awt.Rectangle;
     9import java.awt.datatransfer.Transferable;
    910import java.awt.event.ActionEvent;
    1011import java.awt.event.ActionListener;
     
    2425import javax.swing.AbstractListModel;
    2526import javax.swing.DefaultListSelectionModel;
     27import javax.swing.JComponent;
    2628import javax.swing.JList;
    2729import javax.swing.JMenuItem;
    2830import javax.swing.JPopupMenu;
    2931import javax.swing.ListSelectionModel;
     32import javax.swing.TransferHandler;
    3033import javax.swing.event.ListDataEvent;
    3134import javax.swing.event.ListDataListener;
     
    6669import org.openstreetmap.josm.gui.PopupMenuHandler;
    6770import org.openstreetmap.josm.gui.SideButton;
     71import org.openstreetmap.josm.gui.datatransfer.PrimitiveTransferable;
    6872import org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager;
    6973import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    108112        lstPrimitives.setSelectionModel(selectionModel);
    109113        lstPrimitives.setCellRenderer(new OsmPrimitivRenderer());
    110         // Fix #6290. Drag & Drop is not supported anyway and Copy/Paste is better propagated to main window
    111         lstPrimitives.setTransferHandler(null);
     114        lstPrimitives.setTransferHandler(new SelectionTransferHandler());
     115        lstPrimitives.setDragEnabled(true);
    112116
    113117        lstPrimitives.getSelectionModel().addListSelectionListener(actSelect);
     
    855859        }
    856860    }
     861
     862    /**
     863     * A transfer handler class for drag-and-drop support.
     864     */
     865    protected class SelectionTransferHandler extends TransferHandler {
     866
     867        @Override
     868        public int getSourceActions(JComponent c) {
     869            return COPY;
     870        }
     871
     872        @Override
     873        protected Transferable createTransferable(JComponent c) {
     874            return new PrimitiveTransferable(getSelectedPrimitives());
     875        }
     876    }
    857877}
Note: See TracChangeset for help on using the changeset viewer.