org.protege.editor.owl.ui.ontology.imports.OntologyImportsList Maven / Gradle / Ivy
The newest version!
package org.protege.editor.owl.ui.ontology.imports;
import org.protege.editor.core.ui.list.MList;
import org.protege.editor.core.ui.list.MListSectionHeader;
import org.protege.editor.core.ui.wizard.Wizard;
import org.protege.editor.owl.OWLEditorKit;
import org.protege.editor.owl.ui.ontology.imports.wizard.OntologyImportWizard;
import org.semanticweb.owlapi.model.*;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
/**
* Author: drummond
* http://www.cs.man.ac.uk/~drummond/
* The University Of Manchester
* Bio Health Informatics Group
* Date: May 28, 2009
*/
public class OntologyImportsList extends MList {
private final OWLEditorKit editorKit;
private OWLOntology ont;
private final MListSectionHeader directImportsHeader;
private final MListSectionHeader indirectImportsHeader;
private OWLOntologyChangeListener ontChangeListener = this::handleOntologyChanges;
public OntologyImportsList(OWLEditorKit editorKit) {
this.editorKit = editorKit;
setFixedCellHeight(-1);
setCellRenderer(new OntologyImportsItemRenderer(editorKit));
directImportsHeader = new MListSectionHeader() {
public String getName() {
return "Direct Imports";
}
public boolean canAdd() {
return true;
}
};
indirectImportsHeader = new MListSectionHeader() {
public String getName() {
return "Indirect Imports";
}
public boolean canAdd() {
return false;
}
};
editorKit.getOWLModelManager().addOntologyChangeListener(ontChangeListener);
}
protected void handleAdd() {
// don't need to check the section as only the direct imports can be added
OntologyImportWizard wizard = new OntologyImportWizard((Frame) SwingUtilities.getAncestorOfClass(Frame.class, editorKit.getWorkspace()), editorKit);
int ret = wizard.showModalDialog();
if (ret == Wizard.FINISH_RETURN_CODE) {
AddImportsStrategy strategy = new AddImportsStrategy(editorKit, ont, wizard.getImports());
strategy.addImports();
}
}
public void setOntology(OWLOntology ont) {
this.ont = ont;
List