javax.swing.JList#DropLocation ( )源码实例Demo

下面列出了javax.swing.JList#DropLocation ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

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;
}
 
源代码2 项目: constellation   文件: DragDropList.java
@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;
}
 
源代码3 项目: constellation   文件: DragDropList.java
@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;
}
 
源代码4 项目: marathonv5   文件: ListTransferHandler.java
@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;
}
 
@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;
}
 
源代码6 项目: jeveassets   文件: ShowToolSettingsPanel.java
@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;
	}
}
 
源代码7 项目: netbeans   文件: AnalyserCellRenderer.java
@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;
    }
 
源代码8 项目: netbeans   文件: CheckBoxRenderrer.java
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;
}
 
源代码9 项目: netbeans   文件: CheckBoxRenderrer.java
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;
}