Java Code Examples for javax.swing.JList#getDropLocation()

The following examples show how to use javax.swing.JList#getDropLocation() . 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: TreeList.java    From netbeans with Apache License 2.0 6 votes vote down vote up
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    if (!(value instanceof TreeListNode)) {
        //shoudln't happen
        return new JLabel();
    }
    TreeListNode node = (TreeListNode) value;
    int rowHeight = list.getFixedCellHeight();
    int rowWidth = list.getVisibleRect().width;
    int dropIndex = -1;
    DropLocation dropLocation = list.getDropLocation();
    if (dropLocation != null && !dropLocation.isInsert()) {
        dropIndex = dropLocation.getIndex();
    }
    boolean isDropTarget = dropIndex == index;
    isSelected = isSelected || isDropTarget;
    Color background = isSelected ? list.getSelectionBackground() : list.getBackground();
    Color foreground = isSelected ? list.getSelectionForeground() : list.getForeground();

    return node.getRenderer(foreground, background, isSelected, cellHasFocus, rowHeight, rowWidth);
}
 
Example 2
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 3
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 4
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;
}