PropertyDetailsTableCellRenderer.java :  » Natural-Language-Processing » GATE » gate » gui » ontology » Java Open Source

Java Open Source » Natural Language Processing » GATE 
GATE » gate » gui » ontology » PropertyDetailsTableCellRenderer.java
/*
 *  PropertyDetailsTableCellRenderer.java
 *
 *  Niraj Aswani, 09/March/07
 *
 *  $Id: PropertyDetailsTableCellRenderer.html,v 1.0 2007/03/09 16:13:01 niraj Exp $
 */
package gate.gui.ontology;

import gate.creole.ontology.*;
import gate.gui.MainFrame;
import java.awt.Component;
import java.util.Set;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

/**
 * A Class that specifies how each node in the details panel should look
 * like.
 * 
 * @author niraj
 * 
 */
public class PropertyDetailsTableCellRenderer extends DefaultTableCellRenderer {
  private static final long serialVersionUID = 3257572784619337525L;

  public PropertyDetailsTableCellRenderer(
          PropertyDetailsTableModel detailstablemodel) {
    propertyDetailsTableModel = detailstablemodel;
  }

  public Component getTableCellRendererComponent(JTable table, Object obj,
          boolean flag, boolean flag1, int i, int j) {
    Component component = super.getTableCellRendererComponent(table, "", flag,
            flag1, i, j);
    try {
      if(j == 0) {
        setText(null);
        if(obj == null) {
          setIcon(null);
        }
        else {
          Object obj1 = propertyDetailsTableModel.getValueAt(i, 1);
          setIcon(MainFrame.getIcon(((Boolean)obj).booleanValue()
                  ? "expanded"
                  : "closed"));
          setEnabled(((DetailsGroup)obj1).getSize() > 0);
        }
      }
      else if(j == 1) {
        if(obj instanceof DetailsGroup) {
          DetailsGroup detailsgroup = (DetailsGroup)obj;
          setIcon(null);
          setFont(getFont().deriveFont(1));
          setText(detailsgroup.getName());
          setEnabled(detailsgroup.getSize() > 0);
        }
        else if(obj instanceof KeyValuePair) {
          KeyValuePair kvp = (KeyValuePair)obj;
          setIcon(MainFrame.getIcon("empty"));
          setFont(getFont().deriveFont(0));
          setText(kvp.getKey());
          setEnabled(true);
        }
        else if(obj instanceof Restriction) {
          OClass tclass = (OClass)obj;
          setIcon(MainFrame.getIcon("ontology-restriction"));
          setFont(getFont().deriveFont(0));
          setText(tclass.getName());
          setToolTipText(tclass.getURI().toString());
          setEnabled(true);
        }
        else if(obj instanceof OClass) {
          OClass tclass = (OClass)obj;
          setIcon(MainFrame.getIcon("ontology-class"));
          setFont(getFont().deriveFont(0));
          setText(tclass.getName());
          setToolTipText(tclass.getURI().toString());
          setEnabled(true);
        }
        else if(obj instanceof OInstance) {
          OInstance oinstance = (OInstance)obj;
          setIcon(MainFrame.getIcon("ontology-instance"));
          setFont(getFont().deriveFont(0));
          setText(oinstance.getName());
          setToolTipText(oinstance.getURI().toString());
          setEnabled(true);
        }
        else if(obj instanceof RDFProperty) {
          RDFProperty property = (RDFProperty)obj;
          String propertyType = "RDF";
          if(property instanceof SymmetricProperty) {
            setIcon(MainFrame.getIcon("ontology-symmetric-property"));
            propertyType = "Symmetric";
          }
          else if(property instanceof AnnotationProperty) {
            setIcon(MainFrame.getIcon("ontology-annotation-property"));
            propertyType = "Annotation";
          }
          else if(property instanceof TransitiveProperty) {
            setIcon(MainFrame.getIcon("ontology-transitive-property"));
            propertyType = "Transitive";
          }
          else if(property instanceof ObjectProperty) {
            setIcon(MainFrame.getIcon("ontology-object-property"));
            propertyType = "Object";
          }
          else if(property instanceof DatatypeProperty) {
            setIcon(MainFrame.getIcon("ontology-datatype-property"));
            propertyType = "Datatype";
          }
          else {
            setIcon(MainFrame.getIcon("ontology-rdf-property"));
          }
          setFont(getFont().deriveFont(0));
          String s = property.getName();
          setText(s);
          setToolTipText((new StringBuilder()).append(
                  "<HTML><b>" + propertyType + " Property</b><br>").append(
                  property.getURI()).append("</html>").toString());
          setEnabled(true);
        }
        else if(obj instanceof PropertyValue) {

          PropertyValue property = (PropertyValue)obj;
          String propertyType = "RDF";
          if(property.getProperty() instanceof SymmetricProperty) {
            setIcon(MainFrame.getIcon("ontology-symmetric-property"));
            propertyType = "Symmetric";
          }
          else if(property.getProperty() instanceof AnnotationProperty) {
            setIcon(MainFrame.getIcon("ontology-annotation-property"));
            propertyType = "Annotation";
          }
          else if(property.getProperty() instanceof TransitiveProperty) {
            setIcon(MainFrame.getIcon("ontology-transitive-property"));
            propertyType = "Transitive";
          }
          else if(property.getProperty() instanceof ObjectProperty) {
            setIcon(MainFrame.getIcon("ontology-object-property"));
            propertyType = "Object";
          }
          else if(property.getProperty() instanceof DatatypeProperty) {
            setIcon(MainFrame.getIcon("ontology-datatype-property"));
            propertyType = "Datatype";
          }
          else {
            setIcon(MainFrame.getIcon("ontology-rdf-property"));
          }

          setFont(getFont().deriveFont(0));
          String s = property.getProperty().getName();
          setText(s);
          setToolTipText((new StringBuilder()).append(
                  "<HTML><b>" + propertyType + " Property Value</b><br>")
                  .append(property.getProperty().getURI()).append("</html>")
                  .toString());
          setEnabled(true);
        }
      }
      else if(j == 2) {
        setIcon(null);
        if(obj instanceof PropertyValue) {
          PropertyValue property = (PropertyValue)obj;
          setFont(getFont().deriveFont(0));
          String s = "";
          if(property.getValue() instanceof Literal) {
            s = ((Literal)property.getValue()).getValue();
          }
          else {
            s = property.getValue().toString();
          }
          setText(s);
          setEnabled(true);
        }
        else if(obj instanceof KeyValuePair) {
          KeyValuePair kvp = (KeyValuePair)obj;
          setIcon(null);
          setFont(getFont().deriveFont(0));
          setText(kvp.getValue().toString());
          setEnabled(true);
        }
        else if(obj instanceof RDFProperty) {
          RDFProperty prop = (RDFProperty)obj;
          String s = "";
          if(prop instanceof DatatypeProperty) {
            s = ((DatatypeProperty)prop).getDataType().getXmlSchemaURIString();
          }
          else if(prop instanceof ObjectProperty) {
            Set<OResource> set = prop.getRange();
            if(set == null || set.isEmpty()) {
              s = "[ALL CLASSES]";
            }
            else {
              s = "[";
              boolean firstTime = true;
              for(OResource res : set) {
                if(!firstTime) {
                  s += ",";
                }
                else {
                  firstTime = false;
                }
                s += res.getName();
              }
              s += "]";
            }
          }
          else {
            s = "[ALL RESOURCES]";
          }
          setIcon(null);
          setFont(getFont().deriveFont(0));
          setText(s);
          setEnabled(true);
        }
        else {
          setIcon(null);
          setFont(getFont().deriveFont(0));
          setText("");
          setEnabled(false);
        }
      } else if(j==3) {
        if(obj instanceof PropertyValue) {
          setIcon(MainFrame.getIcon("delete"));
          setText("");
          setEnabled(true);
          setFont(getFont().deriveFont(0));
        } else {
          setIcon(null);
          setText("");
          setEnabled(false);
          setFont(getFont().deriveFont(0));
        }
      }
      else {
        setIcon(null);
        setFont(getFont().deriveFont(0));
        setText("");
        setEnabled(false);
      }
    }
    catch(Exception e) {
      // refreshing errors hiding them
    }
    return component;
  }

  protected PropertyDetailsTableModel propertyDetailsTableModel;
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.