Search in sources :

Example 1 with SavedQueryNode

use of org.gephi.desktop.filters.library.SavedQueryNode in project gephi by gephi.

the class RootNode method getDropType.

@Override
public PasteType getDropType(Transferable t, int action, int index) {
    final Node dropNode = NodeTransfer.node(t, DnDConstants.ACTION_COPY_OR_MOVE);
    if (t.isDataFlavorSupported(FilterBuilderNode.DATA_FLAVOR)) {
        try {
            final FilterBuilder fb = (FilterBuilder) t.getTransferData(FilterBuilderNode.DATA_FLAVOR);
            return new PasteType() {

                @Override
                public Transferable paste() throws IOException {
                    FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                    Query f = filterController.createQuery(fb);
                    filterController.add(f);
                    return null;
                }
            };
        } catch (UnsupportedFlavorException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    } else if (dropNode != null && dropNode instanceof SavedQueryNode) {
        return new PasteType() {

            @Override
            public Transferable paste() throws IOException {
                SavedQueryNode node = (SavedQueryNode) dropNode;
                FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                filterController.add(node.getQuery());
                return null;
            }
        };
    } else if (dropNode != null && dropNode instanceof QueryNode && ((QueryNode) dropNode).getQuery().getParent() != null) {
        return new PasteType() {

            @Override
            public Transferable paste() throws IOException {
                QueryNode queryNode = (QueryNode) dropNode;
                FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                filterController.removeSubQuery(queryNode.getQuery(), queryNode.getQuery().getParent());
                filterController.add(queryNode.getQuery());
                return null;
            }
        };
    }
    return null;
}
Also used : Query(org.gephi.filters.api.Query) SavedQueryNode(org.gephi.desktop.filters.library.SavedQueryNode) FilterBuilder(org.gephi.filters.spi.FilterBuilder) SavedQueryNode(org.gephi.desktop.filters.library.SavedQueryNode) Node(org.openide.nodes.Node) SavedQueryNode(org.gephi.desktop.filters.library.SavedQueryNode) FilterBuilderNode(org.gephi.desktop.filters.library.FilterBuilderNode) AbstractNode(org.openide.nodes.AbstractNode) PasteType(org.openide.util.datatransfer.PasteType) Transferable(java.awt.datatransfer.Transferable) FilterController(org.gephi.filters.api.FilterController) IOException(java.io.IOException) UnsupportedFlavorException(java.awt.datatransfer.UnsupportedFlavorException)

Aggregations

Transferable (java.awt.datatransfer.Transferable)1 UnsupportedFlavorException (java.awt.datatransfer.UnsupportedFlavorException)1 IOException (java.io.IOException)1 FilterBuilderNode (org.gephi.desktop.filters.library.FilterBuilderNode)1 SavedQueryNode (org.gephi.desktop.filters.library.SavedQueryNode)1 FilterController (org.gephi.filters.api.FilterController)1 Query (org.gephi.filters.api.Query)1 FilterBuilder (org.gephi.filters.spi.FilterBuilder)1 AbstractNode (org.openide.nodes.AbstractNode)1 Node (org.openide.nodes.Node)1 PasteType (org.openide.util.datatransfer.PasteType)1