package org.signalml.app.view.common.components.cellrenderers;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import org.signalml.app.document.ManagedDocumentType;
import org.signalml.app.model.book.BookAtomTreeNode;
import org.signalml.app.model.book.BookChannelTreeNode;
import org.signalml.app.model.book.BookSegmentTreeNode;
import org.signalml.app.util.IconUtils;
import org.signalml.plugin.export.signal.Document;
/** BookTreeCellRenderer
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class BookTreeCellRenderer extends DefaultTreeCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
if (value instanceof BookAtomTreeNode) {
label.setIcon(IconUtils.getBookAtomIcon());
}
else if (value instanceof BookSegmentTreeNode) {
label.setIcon(IconUtils.getBookSegmentIcon());
}
else if (value instanceof BookChannelTreeNode) {
label.setIcon(IconUtils.getBookChannelIcon());
}
else if (value instanceof Document) {
ManagedDocumentType type = ManagedDocumentType.getForClass(((Document) value).getClass());
Icon icon = null;
if (type != null) {
icon = type.getIcon();
}
if (icon != null) {
label.setIcon(icon);
}
}
return label;
}
}