/* * DnDListModel.java * * Created on March 1, 2006, 1:51 PM * */ package ika.gui; import java.util.*; /** * A ListModel for DraggableList. * Originally based on https://www.informit.com/guides/content.asp?g=java&seqNum=58 * @author Bernhard Jenny, Institute of Cartography, ETH Zurich */ public class DnDListModel extends javax.swing.DefaultListModel { public DnDListModel() { } public DnDListModel(Object[] listData){ for (int i = 0; i < listData.length; i++) { this.addElement(listData[i]); } } public DnDListModel(Vector listData) { for (int i = 0; i < listData.size(); i++) { this.addElement(listData.get(i)); } } public DnDListModel(javax.swing.ListModel listModel) { for (int i = 0; i < listModel.getSize(); i++) { this.addElement(listModel.getElementAt(i)); } } public void itemsMoved( int newIndex, int[] indicies ) { // Copy the objects to a temporary ArrayList ArrayList objects = new ArrayList(); for (int i = 0; i < indicies.length; i++) { objects.add(this.get(indicies[i])); } // Delete the objects from the list for( int i=indicies.length-1; i>=0; i-- ) { this.remove( indicies[ i ] ); } // Insert the items at the new location for( Iterator i = objects.iterator(); i.hasNext(); ) { this.insertElementAt(i.next(), newIndex++); } } }