swoopcellrenderer.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 136 行

JAVA
136
字号
package org.mindswap.swoop.renderer;import java.awt.Component;import java.io.PrintWriter;import java.io.StringWriter;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.ListCellRenderer;import org.mindswap.swoop.SwoopModel;import org.mindswap.swoop.renderer.entity.ConciseFormatEntityRenderer;import org.mindswap.swoop.utils.ui.SwoopIcons;import org.semanticweb.owl.model.OWLClass;import org.semanticweb.owl.model.OWLDataType;import org.semanticweb.owl.model.OWLEntity;import org.semanticweb.owl.model.OWLException;import org.semanticweb.owl.model.OWLIndividual;import org.semanticweb.owl.model.OWLSubClassAxiom;/** * @author Evren Sirin */public class SwoopCellRenderer extends JLabel implements ListCellRenderer {	private SwoopModel swoopModel;	private Set rootURIs;		public SwoopCellRenderer(SwoopModel swoopModel) {		this.swoopModel = swoopModel;		this.rootURIs = new HashSet();	}	public SwoopCellRenderer(SwoopModel swoopModel, Set roots) {		this.swoopModel = swoopModel;		this.rootURIs = new HashSet();		for (Iterator iter = roots.iterator(); iter.hasNext();) {			OWLClass root = (OWLClass) iter.next();			try {				this.rootURIs.add(root.getURI());			} catch (OWLException e) {				e.printStackTrace();			}		}	}		public Component getListCellRendererComponent(		JList list,		Object value,		int index,		boolean isSelected,		boolean cellHasFocus) {		if (value==null) {			return this;		}				if (!(value instanceof OWLEntity) && !(value instanceof OWLDataType) && !(value instanceof OWLSubClassAxiom)) {			setText(value.toString());			//return this;		}		else if (value instanceof OWLSubClassAxiom) {			// create concise format to render class expr			ConciseFormatEntityRenderer cfRend = new ConciseFormatEntityRenderer();	    	cfRend.setSwoopModel(swoopModel);	    	cfRend.visitor = cfRend.createVisitor();	    	StringWriter st = new StringWriter();			PrintWriter buffer = new PrintWriter(st);	    	cfRend.setWriter(buffer);		    				try {				cfRend.printObject((OWLSubClassAxiom) value);			} catch (OWLException e) {				e.printStackTrace();			}			setText("<html>"+st.toString()+"</html>");			setIcon(null);		}		else if (value instanceof OWLDataType) {			OWLDataType dt = (OWLDataType) value;			try {				setText(swoopModel.shortForm(dt.getURI()));			} catch (OWLException e) {				e.printStackTrace();			}		}		else {			OWLEntity entity = (OWLEntity) value;				SwoopIcons swoopIcons = new SwoopIcons();			if (swoopIcons.getIcon(entity, swoopModel)!=null) setIcon(swoopIcons.getIcon(entity, swoopModel));				try {				String text = "";				// handle anon individuals by displaying gen-ids				if (entity instanceof OWLIndividual) {					OWLIndividual ind = (OWLIndividual) entity;					if (ind.isAnonymous()) text = swoopModel.shortForm(ind.getAnonId()) +" (Anonymous)"; 				}				if (text.equals("")) text = swoopModel.shortForm(entity.getURI());				if (swoopModel.getChangesCache().getChangeList(entity.getURI()).size()>0) text += "*";								try {					// mark entities that have annotations with superscript A					if (swoopModel.getAnnotatedObjectURIs().contains(entity.getURI())) {						text = "<html>"+text+"<sup>A</sup></html>";					}					// mark root classes (for RepairFrame)					if (rootURIs.contains(entity.getURI())) text = "<html>"+text+"<sup>Root</sup></html>";				} 				catch (Exception e1) {											e1.printStackTrace();				}								setText(text);			} catch (OWLException e) {				setText("ERROR");			}		}				if (isSelected) {			setBackground(list.getSelectionBackground());			setForeground(list.getSelectionForeground());		} else {			setBackground(list.getBackground());			setForeground(list.getForeground());		}		setEnabled(list.isEnabled());		setFont(list.getFont());		setOpaque(true);		return this;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?