All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.protege.editor.owl.ui.editor.OWLObjectPropertyIndividualPairEditor Maven / Gradle / Ivy

Go to download

OWL ontology editing infrastructure used by the Protege desktop application.

There is a newer version: 5.6.4-beta3
Show newest version
package org.protege.editor.owl.ui.editor;

import org.protege.editor.owl.OWLEditorKit;
import org.protege.editor.owl.ui.frame.OWLObjectPropertyIndividualPair;
import org.protege.editor.owl.ui.selector.OWLIndividualSelectorPanel;
import org.protege.editor.owl.ui.selector.OWLObjectPropertySelectorPanel;
import org.semanticweb.owlapi.model.OWLIndividual;
import org.semanticweb.owlapi.model.OWLObjectProperty;
import org.semanticweb.owlapi.model.OWLObjectPropertyExpression;
import org.semanticweb.owlapi.model.OWLPropertyAssertionAxiom;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.swing.*;
import java.awt.*;
import java.util.HashSet;
import java.util.Set;

/**
 * Author: Matthew Horridge
* The University Of Manchester
* Bio-Health Informatics Group
* Date: 22-Feb-2007
*
*/ public class OWLObjectPropertyIndividualPairEditor extends AbstractOWLObjectEditor { private JPanel editorPanel; private OWLObjectPropertySelectorPanel objectPropertyPanel; private OWLIndividualSelectorPanel individualSelectorPanel; public OWLObjectPropertyIndividualPairEditor(OWLEditorKit owlEditorKit) { objectPropertyPanel = new OWLObjectPropertySelectorPanel(owlEditorKit); individualSelectorPanel = new OWLIndividualSelectorPanel(owlEditorKit, ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); splitPane.setLeftComponent(objectPropertyPanel); splitPane.setRightComponent(individualSelectorPanel); editorPanel = new JPanel(new BorderLayout()); editorPanel.add(splitPane); } public void setObjectPropertyAxiom(OWLPropertyAssertionAxiom ax) { OWLObjectPropertyExpression p = ax.getProperty(); // @@TODO support for inverse properties if (p instanceof OWLObjectProperty) { objectPropertyPanel.setSelection((OWLObjectProperty) p); } // @@TODO support for anonymous individuals if (!ax.getObject().isAnonymous()){ individualSelectorPanel.setSelection(ax.getObject().asOWLNamedIndividual()); } } @Nullable public OWLObjectPropertyIndividualPair getEditedObject() { return new OWLObjectPropertyIndividualPair(objectPropertyPanel.getSelectedObject(), individualSelectorPanel.getSelectedObject()); } public Set getEditedObjects() { Set pairs = new HashSet<>(); for (OWLObjectProperty prop : objectPropertyPanel.getSelectedObjects()) { for (OWLIndividual ind : individualSelectorPanel.getSelectedObjects()) { pairs.add(new OWLObjectPropertyIndividualPair(prop, ind)); } } return pairs; } public boolean setEditedObject(OWLObjectPropertyIndividualPair editedObject) { if (editedObject == null){ objectPropertyPanel.clearSelection(); individualSelectorPanel.clearSelection(); } else{ if (!editedObject.getProperty().isAnonymous() && !editedObject.getIndividual().isAnonymous()){ objectPropertyPanel.setSelection(editedObject.getProperty().asOWLObjectProperty()); individualSelectorPanel.setSelection(editedObject.getIndividual().asOWLNamedIndividual()); } else{ return false; } } return true; } @Nonnull public String getEditorTypeName() { return "Object property assertion"; } public boolean canEdit(Object object) { return object instanceof OWLObjectPropertyIndividualPair; } @Nonnull public JComponent getEditorComponent() { return editorPanel; } public void dispose() { objectPropertyPanel.dispose(); individualSelectorPanel.dispose(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy