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;
}
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;
}
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]);
}
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]);
}
Aggregations