/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.demo.filebrowser.explorer.view;
import java.awt.Color;
import java.awt.Component;
import java.awt.image.BufferedImage;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.ToolTipManager;
import org.openide.explorer.view.ListView;
import org.openide.explorer.view.Visualizer;
import org.openide.nodes.Node;
import org.openide.util.ImageUtilities;
/**
*
* @author ECO
*/
public class CustomListView extends ListView {
private static class ListCellRendererImpl implements ListCellRenderer {
private static final BufferedImage defaultIcon = (BufferedImage) ImageUtilities.loadImage("org/demo/filebrowser/icons/file.png", true);
public ListCellRendererImpl() {
}
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Node node = Visualizer.findNode(value);
ListViewPanel label = new ListViewPanel(node.getDisplayName());
label.setImage(
defaultIcon);
if (isSelected) {
label.setOpaque(true);
label.setBackground(new Color(10, 36, 106));
label.setForeground(Color.WHITE);
} else {
label.setOpaque(false);
label.setForeground(Color.BLACK);
}
return label;
// File file=node.getLookup().lookup(File.class);
// ListViewPanel cell=new ListViewPanel(file);
// cell.setBackground(Color.CYAN);
// if(isSelected){
// cell.setBackground(Color.YELLOW);
// }
// return cell;
}
}
private JList jList;
@Override
protected JList createList() {
jList = super.createList();
jList.setOpaque(true);
jList.setBackground(getBackground());
jList.setForeground(getForeground());
jList.setLayoutOrientation(JList.HORIZONTAL_WRAP);
jList.setVisibleRowCount(-1);
jList.setCellRenderer(new ListCellRendererImpl());
return jList;
}
@Override
public void setBackground(Color bg) {
super.setBackground(bg);
if (jList != null) {
jList.setBackground(bg);
}
}
@Override
public void setForeground(Color fg) {
super.setForeground(fg);
if (jList != null) {
jList.setForeground(fg);
}
}
@Override
public void setOpaque(boolean isOpaque) {
super.setOpaque(isOpaque);
if (jList != null) {
jList.setOpaque(isOpaque);
}
}
}