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

org.protege.editor.owl.ui.transfer.TransferableOWLObject Maven / Gradle / Ivy

package org.protege.editor.owl.ui.transfer;

import org.protege.editor.owl.model.OWLModelManager;
import org.semanticweb.owlapi.model.OWLObject;

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Author: Matthew Horridge
* The University Of Manchester
* Medical Informatics Group
* Date: 04-Jun-2006

* [email protected]
* www.cs.man.ac.uk/~horridgm

*/ public class TransferableOWLObject implements Transferable { private List owlObjects; private Map dataFlavorMap; private TransferHandler stringTransferHandler; public TransferableOWLObject(final OWLModelManager owlModelManager, List objects) { owlObjects = new ArrayList<>(objects); dataFlavorMap = new HashMap<>(); dataFlavorMap.put(OWLObjectDataFlavor.OWL_OBJECT_DATA_FLAVOR, () -> new ArrayList<>(owlObjects)); stringTransferHandler = () -> { StringBuilder builder = new StringBuilder(); for (OWLObject obj : owlObjects) { builder.append(owlModelManager.getRendering(obj)); builder.append("\n"); } return builder.toString(); }; dataFlavorMap.put(DataFlavor.stringFlavor, stringTransferHandler); } public DataFlavor[] getTransferDataFlavors() { DataFlavor[] dataFlavors = new DataFlavor[dataFlavorMap.size()]; System.arraycopy(dataFlavorMap.keySet().toArray(), 0, dataFlavors, 0, dataFlavors.length); return dataFlavors; } public boolean isDataFlavorSupported(DataFlavor flavor) { return dataFlavorMap.keySet().contains(flavor); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { TransferHandler handler = dataFlavorMap.get(flavor); if (handler == null) { throw new UnsupportedFlavorException(flavor); } return handler.getTransferData(); } private interface TransferHandler { Object getTransferData(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy