001 /*
002 * OntologyTreeCellRenderer.java
003 *
004 * Niraj Aswani, 09/March/07
005 *
006 * $Id: OntologyTreeCellRenderer.html,v 1.0 2007/03/09 16:13:01 niraj Exp $
007 */
008 package gate.gui.ontology;
009
010 import gate.creole.ontology.*;
011 import gate.gui.MainFrame;
012
013 import java.awt.Color;
014 import java.awt.Component;
015 import javax.swing.JTree;
016 import javax.swing.tree.DefaultMutableTreeNode;
017 import javax.swing.tree.DefaultTreeCellRenderer;
018
019 /**
020 * A Class that defines how each node in the ontology tree should look
021 * like (e.g. Icon, Text and Tooltips etc).
022 *
023 * @author niraj
024 *
025 */
026 public class OntoTreeCellRenderer extends DefaultTreeCellRenderer {
027 private static final long serialVersionUID = 3256445798102610225L;
028 public Component getTreeCellRendererComponent(JTree jtree, Object obj,
029 boolean flag, boolean flag1, boolean flag2, int i, boolean flag3) {
030 if(obj != null && (obj instanceof DefaultMutableTreeNode)) {
031 javax.swing.Icon icon = null;
032 String s = null;
033 Object obj1 = ((DefaultMutableTreeNode)obj).getUserObject();
034 if(obj1 != null && obj1 instanceof OResourceNode) {
035 obj1 = ((OResourceNode)obj1).getResource();
036 }
037
038 if(obj1 instanceof OResource) {
039 Color color = Color.BLACK;
040 setForeground(color);
041 }
042
043 if(obj1 instanceof Restriction) {
044 icon = MainFrame.getIcon("ontology-restriction");
045 s = ((OClass)obj1).getName();
046 if(((OClass)obj1).getURI().isAnonymousResource())
047 setToolTipText(((OClass)obj1).getURI().toString()
048 + " is a restriction");
049 else setToolTipText(((OClass)obj1).getURI().toString());
050 }
051 else if(obj1 instanceof OClass) {
052 icon = MainFrame.getIcon("ontology-class");
053 s = ((OClass)obj1).getName();
054 if(((OClass)obj1).getURI().isAnonymousResource())
055 setToolTipText(((OClass)obj1).getURI().toString()
056 + " is an annonymous class");
057 else setToolTipText(((OClass)obj1).getURI().toString());
058 }
059 else if(obj1 instanceof OInstance) {
060 icon = MainFrame.getIcon("ontology-instance");
061 s = ((OInstance)obj1).getName();
062 setToolTipText(((OInstance)obj1).getURI().toString());
063 }
064 else if(obj1 instanceof AnnotationProperty) {
065 icon = MainFrame.getIcon("ontology-annotation-property");
066 s = ((AnnotationProperty)obj1).getName();
067 setToolTipText(((AnnotationProperty)obj1).getURI().toString());
068 }
069 else if(obj1 instanceof DatatypeProperty) {
070 icon = MainFrame.getIcon("ontology-datatype-property");
071 s = ((DatatypeProperty)obj1).getName();
072 setToolTipText(((DatatypeProperty)obj1).getURI().toString());
073 }
074 else if(obj1 instanceof SymmetricProperty) {
075 icon = MainFrame.getIcon("ontology-symmetric-property");
076 s = ((SymmetricProperty)obj1).getName();
077 setToolTipText(((SymmetricProperty)obj1).getURI().toString());
078 }
079 else if(obj1 instanceof TransitiveProperty) {
080 icon = MainFrame.getIcon("ontology-transitive-property");
081 s = ((TransitiveProperty)obj1).getName();
082 setToolTipText(((TransitiveProperty)obj1).getURI().toString());
083 }
084 else if(obj1 instanceof ObjectProperty) {
085 icon = MainFrame.getIcon("ontology-object-property");
086 s = ((ObjectProperty)obj1).getName();
087 setToolTipText(((ObjectProperty)obj1).getURI().toString());
088 }
089 else if(obj1 instanceof RDFProperty) {
090 icon = MainFrame.getIcon("ontology-rdf-property");
091 s = ((RDFProperty)obj1).getName();
092 setToolTipText(((RDFProperty)obj1).getURI().toString());
093 }
094 if(icon != null) {
095 if(flag1)
096 setOpenIcon(icon);
097 else setClosedIcon(icon);
098 if(flag2) setLeafIcon(icon);
099 }
100 super
101 .getTreeCellRendererComponent(jtree, s, flag, flag1, flag2, i,
102 flag3);
103 }
104 else {
105 super.getTreeCellRendererComponent(jtree, obj, flag, flag1, flag2, i,
106 flag3);
107 }
108 return this;
109 }
110 }
|