Search in sources :

Example 1 with Query

use of org.gephi.filters.api.Query in project gephi by gephi.

the class CategoryChildFactory method createKeys.

@Override
protected boolean createKeys(List<Object> toPopulate) {
    Object[] children = utils.getChildren(category);
    Arrays.sort(children, new Comparator() {

        @Override
        public int compare(Object o1, Object o2) {
            String s1;
            String s2;
            if (o1 == FiltersExplorer.QUERIES || o2 == FiltersExplorer.QUERIES) {
                return o1 == FiltersExplorer.QUERIES ? 1 : -1;
            } else if (o1 instanceof Category && o2 instanceof Category) {
                s1 = ((Category) o1).getName();
                s2 = ((Category) o2).getName();
                return s1.compareTo(s2);
            } else if (o1 instanceof FilterBuilder && o2 instanceof FilterBuilder) {
                s1 = ((FilterBuilder) o1).getName();
                s2 = ((FilterBuilder) o2).getName();
                return s1.compareTo(s2);
            } else if (o1 instanceof Query && o2 instanceof Query) {
                s1 = ((Query) o1).getName();
                s2 = ((Query) o2).getName();
                return s1.compareTo(s2);
            } else if (o1 instanceof Category) {
                return -1;
            }
            return 1;
        }
    });
    toPopulate.addAll(Arrays.asList(children));
    return true;
}
Also used : Category(org.gephi.filters.spi.Category) Query(org.gephi.filters.api.Query) FilterBuilder(org.gephi.filters.spi.FilterBuilder) Comparator(java.util.Comparator)

Example 2 with Query

use of org.gephi.filters.api.Query in project gephi by gephi.

the class QueryExplorer method propertyChange.

@Override
public void propertyChange(PropertyChangeEvent evt) {
    if (evt.getPropertyName().equals(ExplorerManager.PROP_SELECTED_NODES)) {
        if (uiModel == null) {
            return;
        }
        Node[] nodeArray = (Node[]) evt.getNewValue();
        if (nodeArray.length > 0) {
            Node node = ((Node[]) evt.getNewValue())[0];
            if (node instanceof RootNode) {
                uiModel.setSelectedQuery(null);
                filterController.setCurrentQuery(null);
                return;
            }
            while (!(node instanceof QueryNode)) {
                node = node.getParentNode();
                if (node.getParentNode() == null) {
                    uiModel.setSelectedQuery(null);
                    filterController.setCurrentQuery(null);
                    return;
                }
            }
            QueryNode queryNode = (QueryNode) node;
            final Query query = queryNode.getQuery();
            new Thread(new Runnable() {

                @Override
                public void run() {
                    uiModel.setSelectedQuery(query);
                    model.removeChangeListener(QueryExplorer.this);
                    filterController.setCurrentQuery(uiModel.getSelectedRoot());
                    model.addChangeListener(QueryExplorer.this);
                }
            }).start();
        }
    }
}
Also used : Query(org.gephi.filters.api.Query) Node(org.openide.nodes.Node) AbstractNode(org.openide.nodes.AbstractNode)

Example 3 with Query

use of org.gephi.filters.api.Query in project gephi by gephi.

the class FilterModelImpl method destroyQuery.

private void destroyQuery(Query query) {
    if (query instanceof AbstractQueryImpl) {
        AbstractQueryImpl absQuery = (AbstractQueryImpl) query;
        for (Query q : absQuery.getDescendantsAndSelf()) {
            if (q instanceof FilterQueryImpl) {
                Filter f = ((FilterQueryImpl) q).getFilter();
                FilterBuilder builder = ((FilterQueryImpl) q).getBuilder();
                if (builder != null) {
                    builder.destroy(f);
                }
            }
        }
    }
}
Also used : Query(org.gephi.filters.api.Query) Filter(org.gephi.filters.spi.Filter) FilterBuilder(org.gephi.filters.spi.FilterBuilder)

Example 4 with Query

use of org.gephi.filters.api.Query in project gephi by gephi.

the class FilterModelImpl method destroy.

public void destroy() {
    if (filterThread != null) {
        filterThread.setRunning(false);
    }
    autoRefreshor.setRunning(false);
    currentResult = null;
    listeners = null;
    for (Query q : queries) {
        destroyQuery(q);
    }
}
Also used : Query(org.gephi.filters.api.Query)

Example 5 with Query

use of org.gephi.filters.api.Query in project gephi by gephi.

the class AbstractQueryImpl method getDescendantsAndSelf.

@Override
public Query[] getDescendantsAndSelf() {
    List<Query> r = new LinkedList<>();
    LinkedList<Query> stack = new LinkedList<>();
    stack.add(this);
    while (!stack.isEmpty()) {
        Query q = stack.pop();
        r.add(q);
        stack.addAll(Arrays.asList(q.getChildren()));
    }
    return r.toArray(new Query[0]);
}
Also used : Query(org.gephi.filters.api.Query) LinkedList(java.util.LinkedList)

Aggregations

Query (org.gephi.filters.api.Query)21 FilterBuilder (org.gephi.filters.spi.FilterBuilder)6 FilterController (org.gephi.filters.api.FilterController)4 LinkedList (java.util.LinkedList)3 AbstractNode (org.openide.nodes.AbstractNode)3 Node (org.openide.nodes.Node)3 Transferable (java.awt.datatransfer.Transferable)2 UnsupportedFlavorException (java.awt.datatransfer.UnsupportedFlavorException)2 IOException (java.io.IOException)2 XMLStreamException (javax.xml.stream.XMLStreamException)2 FilterBuilderNode (org.gephi.desktop.filters.library.FilterBuilderNode)2 Graph (org.gephi.graph.api.Graph)2 GraphController (org.gephi.graph.api.GraphController)2 GraphModel (org.gephi.graph.api.GraphModel)2 Serialization (org.gephi.utils.Serialization)2 PasteType (org.openide.util.datatransfer.PasteType)2 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 PropertyEditor (java.beans.PropertyEditor)1 ArrayList (java.util.ArrayList)1