public Helper(final Item item) { node = ((Edge) item.getSource()).getSource(); Item nodeSource = item.getData(SOURCE); x = nodeSource.getData(NodeItem.X); y = nodeSource.getData(NodeItem.Y); Float size = nodeSource.getData(NodeItem.SIZE); v1 = new Vector(x, y); v1.add(size, -size); v2 = new Vector(x, y); v2.add(size, size); } }
@Override public Item getItem(String type, Object source) { Item[] items = getItems(source); for (Item item : items) { if (item.getType().equals(type)) { return item; } } return null; }
String label = item.getData(NodeLabelItem.LABEL); if (label.length() >= maxChars + 3) { label = label.substring(0, maxChars) + "..."; item.setData(NodeLabelItem.LABEL, label); Node node = (Node) item.getSource(); Item nodeItem = previewModel.getItem(Item.NODE, node); item.setData(NODE_COLOR, nodeItem.getData(NodeItem.COLOR)); item.setData(NODE_SIZE, nodeItem.getData(NodeItem.SIZE)); item.setData(NODE_X, nodeItem.getData(NodeItem.X)); item.setData(NODE_Y, nodeItem.getData(NodeItem.Y)); Font font = properties.getFontValue(PreviewProperty.NODE_LABEL_FONT); for (Item item : previewModel.getItems(Item.NODE_LABEL)) { Float nodeSize = item.getData(NODE_SIZE); Float fontSize = 1f; if (item.getData(NodeLabelItem.SIZE) != null) { fontSize = item.getData(NodeLabelItem.SIZE); Font labelFont = font.deriveFont((float) fontSize); fontCache.put(labelFont.getSize(), labelFont); item.setData(FONT_SIZE, labelFont.getSize());
Object value = sourceMap.get(item.getSource()); if (value == null) { sourceMap.put(item.getSource(), item); } else if (value instanceof List) { ((List) value).add(item); Object value = sourceMap.get(item.getSource()); if (value == null) { sourceMap.put(item.getSource(), item); } else if (value instanceof Item && ((Item) value).getType().equals(item.getType())) { List<Item> list = (List<Item>) value; for (Item itemSameSource : list) { if (itemSameSource.getType().equals(item.getType())) {
private void setEdgeWeight(double weight, final PreviewProperties properties, final Item item) { //Multiply by thickness weight *= properties.getFloatValue(PreviewProperty.EDGE_THICKNESS); item.setData(EdgeItem.WEIGHT, weight); }
final Edge edge = (Edge) item.getSource(); final Node source = edge.getSource(); final Node target = edge.getTarget(); final Item nodeSource = previewModel.getItem(Item.NODE, source); final Item nodeTarget = previewModel.getItem(Item.NODE, target); item.setData(SOURCE, nodeSource); item.setData(TARGET, nodeTarget); minWeight = Math.min( minWeight, (Double) edge.getData(EdgeItem.WEIGHT)); maxWeight = Math.max( maxWeight, (Double) edge.getData(EdgeItem.WEIGHT)); && !NumberUtils.equalsEpsilon(maxWeight, minWeight)) { for (final Item item : edgeItems) { double weight = (Double) item.getData(EdgeItem.WEIGHT); weight = rescaledWeightsDiff * (weight - minWeight) / weightDiff + minRescaledWeight; setEdgeWeight(weight, properties, item); double weight = (Double) item.getData(EdgeItem.WEIGHT); if (!(Boolean) item.getData(EdgeItem.SELF_LOOP)) { final float edgeRadius = properties.getFloatValue(PreviewProperty.EDGE_RADIUS); boolean isDirected = (Boolean) item.getData(EdgeItem.DIRECTED); if (isDirected
private static float getThickness(final Item item) { return ((Double) item.getData(EdgeItem.WEIGHT)).floatValue(); }
@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; } });
String label = item.getData(EdgeLabelItem.LABEL); if (label.length() >= maxChars + 3) { label = label.substring(0, maxChars) + "..."; item.setData(EdgeLabelItem.LABEL, label); Edge edge = (Edge) item.getSource(); Item edgeItem = previewModel.getItem(Item.EDGE, edge); NodeItem sourceItem = (NodeItem) edgeItem.getData(EdgeRenderer.SOURCE); NodeItem targetItem = (NodeItem) edgeItem.getData(EdgeRenderer.TARGET); Color color = edgeColor.getColor((Color) item.getData(EdgeItem.COLOR), (Color) sourceItem.getData(NodeItem.COLOR), (Color) targetItem.getData(NodeItem.COLOR)); item.setData(EDGE_COLOR, color); if (edge.isSelfLoop()) { item.setData(LABEL_X, middle.x); item.setData(LABEL_Y, middle.y); item.setData(LABEL_X, middle.x); item.setData(LABEL_Y, middle.y); } else { Float x = ((Float) sourceItem.getData(NodeItem.X) + (Float) targetItem.getData(NodeItem.X)) / 2f; Float y = ((Float) sourceItem.getData(NodeItem.Y) + (Float) targetItem.getData(NodeItem.Y)) / 2f; item.setData(LABEL_X, x); item.setData(LABEL_Y, y);
@Override public void render(Item item, RenderTarget target, PreviewProperties properties) { Edge edge = (Edge) item.getSource(); Color edgeColor = item.getData(EDGE_COLOR); Color color = item.getData(EdgeLabelItem.COLOR); DependantOriginalColor propColor = properties.getValue(PreviewProperty.EDGE_LABEL_COLOR); color = propColor.getColor(edgeColor, color); String label = item.getData(EdgeLabelItem.LABEL); Float x = item.getData(LABEL_X); Float y = item.getData(LABEL_Y);
public void renderSVG(Item item, SVGTarget target, PreviewProperties properties) { Node node = (Node) item.getSource(); Float x = item.getData(NodeItem.X); Float y = item.getData(NodeItem.Y); Float size = item.getData(NodeItem.SIZE); size /= 2f; Color color = item.getData(NodeItem.COLOR); Color borderColor = ((DependantColor) properties.getValue(PreviewProperty.NODE_BORDER_COLOR)).getColor(color); float borderSize = properties.getFloatValue(PreviewProperty.NODE_BORDER_WIDTH);
public CanvasSize getCanvasSize( final Item item, final PreviewProperties properties) { final Item sourceItem = item.getData(SOURCE); final Item targetItem = item.getData(TARGET); final Float x1 = sourceItem.getData(NodeItem.X); final Float x2 = targetItem.getData(NodeItem.X); final Float y1 = sourceItem.getData(NodeItem.Y); final Float y2 = targetItem.getData(NodeItem.Y); final float minX = Math.min(x1, x2); final float minY = Math.min(y1, y2); final float maxX = Math.max(x1, x2); final float maxY = Math.max(y1, y2); return new CanvasSize(minX, minY, maxX - minX, maxY - minY); }
@Override public void render(Item item, RenderTarget target, PreviewProperties properties) { Node node = (Node) item.getSource(); Color nodeColor = item.getData(NODE_COLOR); Color color = item.getData(NodeLabelItem.COLOR); DependantOriginalColor propColor = properties.getValue(PreviewProperty.NODE_LABEL_COLOR); color = propColor.getColor(nodeColor, color); String label = item.getData(NodeLabelItem.LABEL); Integer fontSize = item.getData(FONT_SIZE); Float x = item.getData(NODE_X); Float y = item.getData(NODE_Y);
public static Color getColor( final Item item, final PreviewProperties properties) { final Item sourceItem = item.getData(SOURCE); final Item targetItem = item.getData(TARGET); final EdgeColor edgeColor = (EdgeColor) properties.getValue(PreviewProperty.EDGE_COLOR); final Color color = edgeColor.getColor( (Color) item.getData(EdgeItem.COLOR), (Color) sourceItem.getData(NodeItem.COLOR), (Color) targetItem.getData(NodeItem.COLOR)); return new Color( color.getRed(), color.getGreen(), color.getBlue(), (int) (getAlpha(properties) * 255)); }