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

org.protege.editor.owl.ui.view.AnonymousClassesView Maven / Gradle / Ivy

Go to download

OWL ontology editing infrastructure used by the Protege desktop application.

The newest version!
package org.protege.editor.owl.ui.view;

import org.protege.editor.core.ui.list.MList;
import org.protege.editor.core.ui.list.MListItem;
import org.protege.editor.owl.model.classexpression.anonymouscls.AnonymousDefinedClassManager;
import org.protege.editor.owl.model.util.OWLEntityDeleter;
import org.protege.editor.owl.ui.renderer.OWLCellRenderer;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLObject;
import org.semanticweb.owlapi.model.OWLOntology;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.util.*;
import java.util.List;
/*
* Copyright (C) 2007, University of Manchester
*
*
*/

/**
 * Author: drummond
* http://www.cs.man.ac.uk/~drummond/

* The University Of Manchester
* Bio Health Informatics Group
* Date: Nov 24, 2008

*/ public class AnonymousClassesView extends AbstractActiveOntologyViewComponent implements Deleteable, Copyable { private MList list; private java.util.List listeners = new ArrayList<>(); protected void initialiseOntologyView() throws Exception { setLayout(new BorderLayout()); list = new MList(); final MList.MListCellRenderer ren = (MList.MListCellRenderer) list.getCellRenderer(); ren.setContentRenderer(new OWLCellRenderer(getOWLEditorKit(), true, true) { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (value instanceof AnonymousClassItem) { value = ((AnonymousClassItem) value).getOWLClass(); } return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); } }); add(list, BorderLayout.CENTER); list.addListSelectionListener(event -> { for (ChangeListener l : new ArrayList<>(listeners)) { l.stateChanged(new ChangeEvent(AnonymousClassesView.this)); } Object item = list.getSelectedValue(); if (item != null) { getOWLEditorKit().getOWLWorkspace().getOWLSelectionModel().setSelectedEntity(((AnonymousClassItem) item).getOWLClass()); } }); } protected void disposeOntologyView() { // do nothing } protected void updateView(OWLOntology activeOntology) throws Exception { Set clses = new HashSet<>(); AnonymousDefinedClassManager ADCManager = getOWLModelManager().get(AnonymousDefinedClassManager.ID); if (ADCManager != null){ for (OWLClass cls : activeOntology.getClassesInSignature()){ if (ADCManager.isAnonymous(cls)){ clses.add(new AnonymousClassItem(cls)); } } } list.setListData(clses.toArray()); } public boolean canDelete() { return list.getSelectedIndex() >= 0; } public void handleDelete() { Set classes = new HashSet<>(); for (Object clsItem : list.getSelectedValuesList()){ classes.add(((AnonymousClassItem)clsItem).getOWLClass()); } OWLEntityDeleter.deleteEntities(classes, getOWLModelManager()); } public boolean canCopy() { return list.getSelectedIndex() >= 0; } public java.util.List getObjectsToCopy() { List sel = new ArrayList<>(); for (Object clsItem : list.getSelectedValuesList()){ sel.add(((AnonymousClassItem)clsItem).getOWLClass()); } return sel; } public void addChangeListener(ChangeListener listener) { listeners.add(listener); } public void removeChangeListener(ChangeListener listener) { listeners.remove(listener); } private class AnonymousClassItem implements MListItem { private OWLClass cls; public AnonymousClassItem(OWLClass cls) { this.cls = cls; } public boolean isEditable() { return false; } public void handleEdit() { // do nothing } public boolean isDeleteable() { return true; } public boolean handleDelete() { OWLEntityDeleter.deleteEntities(Collections.singleton(cls), getOWLModelManager()); return true; } public String getTooltip() { return ""; } public OWLClass getOWLClass() { return cls; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy