Java Code Examples for javax.swing.JList#DropLocation

The following examples show how to use javax.swing.JList#DropLocation . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: InjectScript.java    From Cognizant-Intelligent-Test-Scripter with Apache License 2.0 6 votes vote down vote up
private Boolean reorderProjects(TransferHandler.TransferSupport support) {
    JList list = (JList) support.getComponent();
    try {
        int[] selectedIndices = (int[]) support.getTransferable().getTransferData(INDICES);
        DefaultListModel model = (DefaultListModel) list.getModel();
        JList.DropLocation dl = (JList.DropLocation) support.getDropLocation();
        if (dl.getIndex() != -1) {
            for (int selectedIndex : selectedIndices) {
                Object value = model.get(selectedIndex);
                model.removeElement(value);
                model.add(dl.getIndex(), value);
            }
            return true;
        } else {
            LOG.warning("Invalid Drop Location");
        }
    } catch (UnsupportedFlavorException | IOException ex) {
        LOG.log(Level.SEVERE, ex.getMessage(), ex);
    }
    return false;
}
 
Example 2
Source File: DragDropList.java    From constellation with Apache License 2.0 5 votes vote down vote up
@Override
public boolean canImport(final TransferHandler.TransferSupport support) {
    if (!support.isDataFlavorSupported(DataFlavor.stringFlavor)) {
        return false;
    }

    JList.DropLocation dl = (JList.DropLocation) support.getDropLocation();

    return dl.getIndex() != -1;
}
 
Example 3
Source File: DragDropList.java    From constellation with Apache License 2.0 5 votes vote down vote up
@Override
public boolean importData(final TransferHandler.TransferSupport support) {
    if (!canImport(support)) {
        return false;
    }

    final Transferable transferable = support.getTransferable();
    String indexString;
    try {
        indexString = (String) transferable.getTransferData(DataFlavor.stringFlavor);
    } catch (Exception ex) {
        return false;
    }

    final int index = Integer.parseInt(indexString);
    JList.DropLocation dl = (JList.DropLocation) support.getDropLocation();
    final int dropTargetIndex = dl.getIndex();

    // Drop the dragged element into the correct place.
    if (index < dropTargetIndex) {
        // If the dragged element is being dropped at a higher target index,
        // add the element at the indicated index, remove the element from the source,
        // and select the dragged element (at a different position due to the removal).
        list.model.addMyElement(dropTargetIndex, list.model.getMyElementAt(index));
        list.model.removeMyElement(index);
        list.setSelectedIndex(dropTargetIndex - 1);
    } else {
        // If the dragged element is being dropped at a lower target index,
        // remove the element from the source, add it at the indicated index,
        // and select it.
        final MyElement element = list.model.removeMyElement(index);
        list.model.addMyElement(dropTargetIndex, element);
        list.setSelectedIndex(dropTargetIndex);
    }

    return true;
}
 
Example 4
Source File: ListTransferHandler.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
@Override
public boolean importData(TransferHandler.TransferSupport info) {
    if (!info.isDrop()) {
        return false;
    }

    JList list = (JList) info.getComponent();
    DefaultListModel listModel = (DefaultListModel) list.getModel();
    JList.DropLocation dl = (JList.DropLocation) info.getDropLocation();
    int index = dl.getIndex();
    boolean insert = dl.isInsert();

    // Get the string that is being dropped.
    Transferable t = info.getTransferable();
    String data;
    try {
        data = (String) t.getTransferData(DataFlavor.stringFlavor);
    } catch (Exception e) {
        return false;
    }

    // Perform the actual import.
    if (insert) {
        listModel.add(index, data);
    } else {
        listModel.set(index, data);
    }
    return true;
}
 
Example 5
Source File: ExtendedJListTransferHandler.java    From rapidminer-studio with GNU Affero General Public License v3.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
@Override
public boolean importData(TransferSupport info) {
	TransferHandler.DropLocation dropLocation = info.getDropLocation();
	if (!canImport(info) || !(dropLocation instanceof JList.DropLocation)) {
		return false;
	}

	JList.DropLocation dl = (JList.DropLocation) dropLocation;
	JList target = (JList) info.getComponent();
	DefaultListModel listModel = (DefaultListModel) target.getModel();
	int max = listModel.getSize();
	int index = dl.getIndex();
	index = index < 0 ? max : index;
	// make sure to append at the end if index > size
	index = Math.min(index, max);

	addIndex = index;

	try {
		Object[] values = (Object[]) info.getTransferable().getTransferData(localObjectFlavor);
		for (Object value : values) {
			int idx = index++;
			listModel.add(idx, value);
			target.addSelectionInterval(idx, idx);
		}
		addCount = values.length;
		return true;
	} catch (UnsupportedFlavorException | IOException e) {
		// should never happen, log anyway to be safe
		LogService.getRoot().log(Level.WARNING, "com.rapidminer.gui.tools.dnd.ExtendedJListTransferHandler.unexpected_error", e);
	}

	return false;
}
 
Example 6
Source File: ShowToolSettingsPanel.java    From jeveassets with GNU General Public License v2.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
@Override
public boolean importData(TransferSupport info) {
	TransferHandler.DropLocation tdl = info.getDropLocation();
	if (!canImport(info) || !(tdl instanceof JList.DropLocation)) {
		return false;
	}

	JList.DropLocation dl = (JList.DropLocation) tdl;
	JList<?> target = (JList) info.getComponent();
	DefaultListModel<Object> listModel = (DefaultListModel) target.getModel();
	int max = listModel.getSize();
	int index = dl.getIndex();
	index = index < 0 ? max : index; // If it is out of range, it is appended to the end
	index = Math.min(index, max);

	addIndex = index;

	try {
		Object[] values = (Object[]) info.getTransferable().getTransferData(localObjectFlavor);
		for (Object value : values) {
			int idx = index++;
			listModel.add(idx, value);
			target.addSelectionInterval(idx, idx);
		}
		addCount = values.length;
		return true;
	} catch (UnsupportedFlavorException | IOException ex) {
		LOG.error(ex.getMessage(), ex);
		return false;
	}
}
 
Example 7
Source File: AnalyserCellRenderer.java    From netbeans with Apache License 2.0 4 votes vote down vote up
@Override
    public Component getListCellRendererComponent (
        JList                   list,
        Object                  value,
        int                     index,
        boolean                 isSelected,
        boolean                 cellHasFocus
    ) {
        setComponentOrientation (list.getComponentOrientation ());

        Color bg = null;
        Color fg = null;

        JList.DropLocation dropLocation = list.getDropLocation ();
        if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

            bg = UIManager.getColor ("List.dropCellBackground");
            fg = UIManager.getColor ("List.dropCellForeground");

            isSelected = true;
        }

        String line = (String) value;
        Link link = StackLineAnalyser.analyse (line);

        if (isSelected) {
            setBackground (bg == null ? list.getSelectionBackground () : bg);
            setForeground(fg == null ? list.getSelectionForeground() : fg);
        } else {
            setBackground (list.getBackground ());
//            if (link != null)
//                setForeground (foreground);
//            else
                setForeground (list.getForeground ());
        }

        if (link != null) {
            StringBuilder sb = new StringBuilder ();
            sb.append ("<html>");
            if (isSelected)
                sb.append("<style> a.val {text-decoration: underline; color: " + toRgbText(getForeground().getRGB()) + "} </style><body>");
            sb.append (line.substring (0, link.getStartOffset ()));
            sb.append ("<a class=\"val\" href=\"\">");
            sb.append (line.substring (link.getStartOffset (), link.getEndOffset ()));
            sb.append ("</a>");
            sb.append (line.substring (link.getEndOffset ()));
            sb.append ("</body></html>");
            setText (sb.toString ());
        } else
            setText (line.trim ());

        setEnabled (list.isEnabled ());

        Border border = null;
        if (cellHasFocus) {
            if (isSelected) {
                border = UIManager.getBorder ("List.focusSelectedCellHighlightBorder");
            }
            if (border == null) {
                border = UIManager.getBorder ("List.focusCellHighlightBorder");
            }
        } else {
            border = getNoFocusBorder ();
        }
        setBorder (border);

        return this;
    }
 
Example 8
Source File: CheckBoxRenderrer.java    From netbeans with Apache License 2.0 4 votes vote down vote up
public Component getListCellRendererComponent (
    JList                   list,
    Object                  value,
    int                     index,
    boolean                 isSelected,
    boolean                 cellHasFocus
) {
    setComponentOrientation (list.getComponentOrientation ());

    Color bg = null;
    Color fg = null;

    JList.DropLocation dropLocation = list.getDropLocation ();
    if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

        bg = UIManager.getColor("List.dropCellBackground");
        fg = UIManager.getColor("List.dropCellForeground");

        isSelected = true;
    }

    if (isSelected) {
        setBackground (bg == null ? list.getSelectionBackground () : bg);
        setForeground (fg == null ? list.getSelectionForeground () : fg);
    } else {
        setBackground (list.getBackground ());
        setForeground (list.getForeground ());
    }

    String name = (String) value;
    setText (name.substring (1));
    setSelected (name.charAt (0) == '+');

    setEnabled (list.isEnabled ());
    setFont (list.getFont ());

    Border border = null;
    if (cellHasFocus) {
        if (isSelected) {
            border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
        }
        if (border == null) {
            border = UIManager.getBorder("List.focusCellHighlightBorder");
        }
    } else {
        border = getNoFocusBorder ();
    }
    if (border != null) { //#189786: rarely, the border is null - reasons are unknown
        setBorder (border);
    } else {
        Logger.getLogger(CheckBoxRenderrer.class.getName()).log(Level.INFO, "Cannot set any border");
    }

    return this;
}
 
Example 9
Source File: CheckBoxRenderrer.java    From netbeans with Apache License 2.0 4 votes vote down vote up
public Component getListCellRendererComponent (
    JList                   list,
    Object                  value,
    int                     index,
    boolean                 isSelected,
    boolean                 cellHasFocus
) {
    setComponentOrientation (list.getComponentOrientation ());

    Color bg = null;
    Color fg = null;

    JList.DropLocation dropLocation = list.getDropLocation ();
    if (dropLocation != null && !dropLocation.isInsert () && dropLocation.getIndex () == index) {

        bg = UIManager.getColor("List.dropCellBackground");
        fg = UIManager.getColor("List.dropCellForeground");

        isSelected = true;
    }

    if (isSelected) {
        setBackground (bg == null ? list.getSelectionBackground () : bg);
        setForeground (fg == null ? list.getSelectionForeground () : fg);
    } else {
        setBackground (list.getBackground ());
        setForeground (list.getForeground ());
    }

    String name = (String) value;
    setText (name.substring (1));
    setSelected (name.charAt (0) == '+');

    setEnabled (list.isEnabled ());
    setFont (list.getFont ());

    Border border = null;
    if (cellHasFocus) {
        if (isSelected) {
            border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
        }
        if (border == null) {
            border = UIManager.getBorder("List.focusCellHighlightBorder");
        }
    } else {
        border = getNoFocusBorder ();
    }
    if (border != null) { //#189786: rarely, the border is null - reasons are unknown
        setBorder (border);
    } else {
        Logger.getLogger(CheckBoxRenderrer.class.getName()).log(Level.INFO, "Cannot set any border");
    }

    return this;
}