Search in sources :

Example 1 with Item

use of org.gephi.preview.api.Item in project gephi-plugins-bootcamp by gephi.

the class NodesZOrdering method getItems.

@Override
public Item[] getItems(Graph graph) {
    //Get the current preview model, little hack to get the current workspace from the graph
    PreviewController previewController = Lookup.getDefault().lookup(PreviewController.class);
    PreviewModel previewModel = previewController.getModel();
    //Get the sort column from the properties, if any
    PreviewProperties previewProperties = previewModel.getProperties();
    final Column sortColumn = previewProperties.getValue(SORT_COLUMN);
    //Get the standard node items from the node builder
    Item[] nodeItems = super.getItems(graph);
    if (sortColumn != null) {
        //Sort by column
        Arrays.sort(nodeItems, new Comparator<Item>() {

            @Override
            public int compare(Item o1, Item o2) {
                Node n1 = (Node) o1.getSource();
                Node n2 = (Node) o2.getSource();
                Number s1 = (Number) n1.getAttribute(sortColumn);
                Number s2 = (Number) n2.getAttribute(sortColumn);
                double size1 = s1 == null ? Double.NEGATIVE_INFINITY : s1.doubleValue();
                double size2 = s2 == null ? Double.NEGATIVE_INFINITY : s2.doubleValue();
                return size1 > size2 ? 1 : size1 < size2 ? -1 : 0;
            }
        });
    } else {
        //Sort by node size
        Arrays.sort(nodeItems, new Comparator<Item>() {

            @Override
            public int compare(Item o1, Item o2) {
                Node n1 = (Node) o1.getSource();
                Node n2 = (Node) o2.getSource();
                float size1 = n1.size();
                float size2 = n2.size();
                return size1 > size2 ? 1 : size1 < size2 ? -1 : 0;
            }
        });
    }
    return nodeItems;
}
Also used : Item(org.gephi.preview.api.Item) PreviewModel(org.gephi.preview.api.PreviewModel) PreviewProperties(org.gephi.preview.api.PreviewProperties) Column(org.gephi.graph.api.Column) Node(org.gephi.graph.api.Node) PreviewController(org.gephi.preview.api.PreviewController)

Example 2 with Item

use of org.gephi.preview.api.Item in project gephi by gephi.

the class NodeBuilder method getItems.

@Override
public Item[] getItems(Graph graph) {
    Item[] items = new NodeItem[graph.getNodeCount()];
    int i = 0;
    for (Node n : graph.getNodes()) {
        NodeItem nodeItem = new NodeItem(n);
        nodeItem.setData(NodeItem.X, n.x());
        nodeItem.setData(NodeItem.Y, -n.y());
        nodeItem.setData(NodeItem.Z, n.z());
        nodeItem.setData(NodeItem.SIZE, n.size() * 2f);
        nodeItem.setData(NodeItem.COLOR, n.getColor());
        items[i++] = nodeItem;
    }
    return items;
}
Also used : Item(org.gephi.preview.api.Item) NodeItem(org.gephi.preview.plugin.items.NodeItem) NodeItem(org.gephi.preview.plugin.items.NodeItem) Node(org.gephi.graph.api.Node)

Example 3 with Item

use of org.gephi.preview.api.Item in project gephi by gephi.

the class EdgeLabelBuilder method getItems.

@Override
public Item[] getItems(Graph graph) {
    boolean useTextData = false;
    for (Edge e : graph.getEdges()) {
        TextProperties textData = e.getTextProperties();
        if (textData != null && textData.getText() != null && !textData.getText().isEmpty()) {
            useTextData = true;
        }
    }
    //Build text
    VisualizationController vizController = Lookup.getDefault().lookup(VisualizationController.class);
    Column[] edgeColumns = vizController != null ? vizController.getEdgeTextColumns() : null;
    List<Item> items = new ArrayList<>();
    for (Edge e : graph.getEdges()) {
        EdgeLabelItem labelItem = new EdgeLabelItem(e);
        String label = getLabel(e, edgeColumns, graph.getView());
        labelItem.setData(EdgeLabelItem.LABEL, label);
        TextProperties textData = e.getTextProperties();
        if (textData != null && useTextData) {
            if (textData.getAlpha() != 0) {
                labelItem.setData(EdgeLabelItem.COLOR, textData.getColor());
            }
            //                labelItem.setData(EdgeLabelItem.WIDTH, textData.getWidth());
            //                labelItem.setData(EdgeLabelItem.HEIGHT, textData.getHeight());
            labelItem.setData(EdgeLabelItem.SIZE, textData.getSize());
            labelItem.setData(EdgeLabelItem.VISIBLE, textData.isVisible());
            if (textData.isVisible() && textData.getText() != null && !textData.getText().isEmpty()) {
                items.add(labelItem);
            }
        } else if (label != null && !label.isEmpty()) {
            items.add(labelItem);
        }
    }
    return items.toArray(new Item[0]);
}
Also used : Item(org.gephi.preview.api.Item) EdgeLabelItem(org.gephi.preview.plugin.items.EdgeLabelItem) VisualizationController(org.gephi.visualization.api.VisualizationController) ArrayList(java.util.ArrayList) EdgeLabelItem(org.gephi.preview.plugin.items.EdgeLabelItem)

Example 4 with Item

use of org.gephi.preview.api.Item in project gephi by gephi.

the class NodeLabelBuilder method getItems.

@Override
public Item[] getItems(Graph graph) {
    boolean useTextData = false;
    for (Node n : graph.getNodes()) {
        TextProperties textData = n.getTextProperties();
        if (textData != null && textData.getText() != null && !textData.getText().isEmpty()) {
            useTextData = true;
        }
    }
    //Build text
    VisualizationController vizController = Lookup.getDefault().lookup(VisualizationController.class);
    Column[] nodeColumns = vizController != null ? vizController.getNodeTextColumns() : null;
    List<Item> items = new ArrayList<>();
    for (Node n : graph.getNodes()) {
        NodeLabelItem labelItem = new NodeLabelItem(n);
        String label = getLabel(n, nodeColumns, graph.getView());
        labelItem.setData(NodeLabelItem.LABEL, label);
        TextProperties textData = n.getTextProperties();
        if (textData != null && useTextData) {
            if (textData.getR() != -1) {
                labelItem.setData(NodeLabelItem.COLOR, new Color((int) (textData.getR() * 255), (int) (textData.getG() * 255), (int) (textData.getB() * 255), (int) (textData.getAlpha() * 255)));
            }
            //                labelItem.setData(NodeLabelItem.WIDTH, textData.getWidth());
            //                labelItem.setData(NodeLabelItem.HEIGHT, textData.getHeight());
            labelItem.setData(NodeLabelItem.SIZE, textData.getSize());
            labelItem.setData(NodeLabelItem.VISIBLE, textData.isVisible());
            labelItem.setData(NodeLabelItem.LABEL, textData.getText());
            if (textData.isVisible() && label != null && !label.isEmpty()) {
                items.add(labelItem);
            }
        } else if (label != null && !label.isEmpty()) {
            items.add(labelItem);
        }
    }
    return items.toArray(new Item[0]);
}
Also used : NodeLabelItem(org.gephi.preview.plugin.items.NodeLabelItem) Item(org.gephi.preview.api.Item) NodeLabelItem(org.gephi.preview.plugin.items.NodeLabelItem) Column(org.gephi.graph.api.Column) VisualizationController(org.gephi.visualization.api.VisualizationController) Node(org.gephi.graph.api.Node) Color(java.awt.Color) ArrayList(java.util.ArrayList) TextProperties(org.gephi.graph.api.TextProperties)

Aggregations

Item (org.gephi.preview.api.Item)4 Node (org.gephi.graph.api.Node)3 ArrayList (java.util.ArrayList)2 Column (org.gephi.graph.api.Column)2 VisualizationController (org.gephi.visualization.api.VisualizationController)2 Color (java.awt.Color)1 TextProperties (org.gephi.graph.api.TextProperties)1 PreviewController (org.gephi.preview.api.PreviewController)1 PreviewModel (org.gephi.preview.api.PreviewModel)1 PreviewProperties (org.gephi.preview.api.PreviewProperties)1 EdgeLabelItem (org.gephi.preview.plugin.items.EdgeLabelItem)1 NodeItem (org.gephi.preview.plugin.items.NodeItem)1 NodeLabelItem (org.gephi.preview.plugin.items.NodeLabelItem)1