
org.coode.dlquery.ResultsList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.coode.dlquery Show documentation
Show all versions of org.coode.dlquery Show documentation
A plug-in for Protege that provides a reasoner-backed query capability.
package org.coode.dlquery;
import java.awt.Frame;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.*;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.protege.editor.core.ui.list.MList;
import org.protege.editor.core.ui.list.MListButton;
import org.protege.editor.owl.OWLEditorKit;
import org.protege.editor.owl.ui.OWLClassExpressionComparator;
import org.protege.editor.owl.ui.explanation.ExplanationManager;
import org.protege.editor.owl.ui.framelist.ExplainButton;
import org.protege.editor.owl.ui.renderer.LinkedObjectComponent;
import org.protege.editor.owl.ui.renderer.LinkedObjectComponentMediator;
import org.protege.editor.owl.ui.view.Copyable;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLClassExpression;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLIndividual;
import org.semanticweb.owlapi.model.OWLNamedIndividual;
import org.semanticweb.owlapi.model.OWLObject;
import org.semanticweb.owlapi.reasoner.Node;
import org.semanticweb.owlapi.reasoner.OWLReasoner;
import static org.coode.dlquery.ResultsSection.*;
/**
* Author: Matthew Horridge
* The University Of Manchester
* Bio-Health Informatics Group
* Date: 27-Feb-2007
*/
public class ResultsList extends MList implements LinkedObjectComponent, Copyable {
private final OWLEditorKit owlEditorKit;
private final Set visibleResultsSections = EnumSet.of(SUB_CLASSES);
private final LinkedObjectComponentMediator mediator;
private final List copyListeners = new ArrayList<>();
public ResultsList(OWLEditorKit owlEditorKit) {
this.owlEditorKit = owlEditorKit;
setCellRenderer(new DLQueryListCellRenderer(owlEditorKit));
mediator = new LinkedObjectComponentMediator(owlEditorKit, this);
getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event) {
if (!event.getValueIsAdjusting()) {
ChangeEvent ev = new ChangeEvent(ResultsList.this);
for (ChangeListener l : new ArrayList<>(copyListeners)) {
l.stateChanged(ev);
}
}
}
});
}
public boolean isResultsSectionVisible(ResultsSection section) {
return visibleResultsSections.contains(section);
}
public void setResultsSectionVisible(ResultsSection section, boolean b) {
if (b) {
visibleResultsSections.add(section);
} else {
visibleResultsSections.remove(section);
}
}
private List toSortedList(Set clses) {
OWLClassExpressionComparator descriptionComparator = new OWLClassExpressionComparator(owlEditorKit.getModelManager());
List list = new ArrayList<>(clses);
Collections.sort(list, descriptionComparator);
return list;
}
public void setOWLClassExpression(OWLClassExpression description) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy