package de.cismet.beanmill.filter;
import com.traxel.lumbermill.event.Event;
import com.traxel.lumbermill.filter.Filter;
import com.traxel.lumbermill.filter.FilterListener;
import com.traxel.lumbermill.filter.FilterSet;
import com.traxel.lumbermill.filter.FilterView;
import org.jdom.Element;
import java.awt.Component;
import java.util.List;
import java.util.Vector;
import javax.swing.DefaultListCellRenderer;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
public class ListView extends JPanel
implements FilterView, Filter {
private final ImageIcon classIcon;
private final DefaultListModel listModel;
private final FilterSet filterSet;
private final Vector<FilterListener> listeners;
private boolean active;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JList lstClasses;
initComponents();
classIcon = new ImageIcon(getClass().getResource(
"/de/cismet/beanmill/res/class.png"));
listModel = new DefaultListModel();
listeners = new Vector<FilterListener>();
filterSet = fs;
active = true;
lstClasses.setModel(listModel);
lstClasses.setCellRenderer(new DefaultListCellRenderer() {
@Override
final Object arg1,
final int arg2,
final boolean arg3,
final boolean arg4) {
final JLabel l = (JLabel)super.getListCellRendererComponent(
arg0,
arg1,
arg2,
arg3,
arg4);
l.setIcon(classIcon);
return l;
}
});
}
public ListView(
final FilterSet fs,
final Element xml) {
this(fs);
if (xml != null) {
final List children = xml.getChildren("javaclass");
for (final Object o : children) {
final Element e = (Element)o;
final String path = e.getAttributeValue("fullpath");
addJavaClassName(path);
}
}
}
@Override
return this;
}
@Override
return this;
}
@Override
return active;
}
@Override
return "ListFilter";
}
@Override
return listModel.contains(e.getSource());
}
@Override
public void setActive(
final boolean active) {
this.active = active;
}
@Override
synchronized (listeners) {
listeners.remove(l);
}
}
@Override
synchronized (listeners) {
listeners.add(l);
}
}
if (!listModel.contains(name)) {
listModel.addElement(name);
filterSet.fireFilterAdded(null);
}
}
final Element lf = new Element("listfilter");
for (final Object o : listModel.toArray()) {
final Element javaclass = new Element("javaclass");
javaclass.setAttribute("fullpath", o.toString());
lf.addContent(javaclass);
}
return lf;
}
jScrollPane1 = new javax.swing.JScrollPane();
lstClasses = new javax.swing.JList();
setLayout(new java.awt.BorderLayout());
lstClasses.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
@Override
return strings.length;
}
@Override
return strings[i];
}
});
jScrollPane1.setViewportView(lstClasses);
add(jScrollPane1, java.awt.BorderLayout.CENTER);
}
}