private void checkVertex(V v) { // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); for(Rectangle2D r : bounds) { if(shape.intersects(r)) { vertices.add(v); } } }
/** * Returns the vertex shape in view coordinates. * @param rc the render context used for rendering the vertex * @param v the vertex whose shape is to be returned * @param layout the layout algorithm that provides coordinates for the vertex * @param coords the x and y view coordinates * @return the vertex shape in view coordinates */ protected Shape prepareFinalVertexShape(RenderContext<V,E> rc, V v, Layout<V,E> layout, int[] coords) { // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); coords[0] = (int)x; coords[1] = (int)y; // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); return shape; }
Shape s2 = rc.getVertexShapeTransformer().apply(v2); Shape edgeShape = rc.getEdgeShapeTransformer().apply(e); Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v);
public void paintVertex(RenderContext<V,E> rc, Layout<V,E> layout, V v) { Graph<V,E> graph = layout.getGraph(); if (rc.getVertexIncludePredicate().apply(Context.<Graph<V,E>,V>getInstance(graph,v))) { boolean vertexHit = true; // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); vertexHit = vertexHit(rc, shape); //rc.getViewTransformer().transform(shape).intersects(deviceRectangle); if (vertexHit) { paintShapeForVertex(rc, v, shape); } } }
/** * Writes y:Geometry tag with node positions. * * @param vertex * V * @param xmlw * XMLStreamWriter2 * @throws XMLStreamException */ private void writeGeometry(ONDEXConcept vertex, XMLStreamWriter2 xmlw) throws XMLStreamException { // get coordinates of node Point2D coords = viewer.getGraphLayout().transform(vertex); // get shape of node Shape shape = viewer.getRenderContext().getVertexShapeTransformer() .transform(vertex); Rectangle bounds = shape.getBounds(); xmlw.writeStartElement("y:Geometry"); xmlw.writeAttribute("x", String.valueOf(coords.getX())); xmlw.writeAttribute("y", String.valueOf(coords.getY())); xmlw.writeAttribute("width", String.valueOf(bounds.getWidth())); xmlw.writeAttribute("height", String.valueOf(bounds.getHeight())); xmlw.writeEndElement(); }
Shape s2 = rc.getVertexShapeTransformer().apply(v2); Shape edgeShape = rc.getEdgeShapeTransformer().apply(e);
if(isLoop) { Shape s2 = vv.getRenderContext().getVertexShapeTransformer().apply(v2); Rectangle2D s2Bounds = s2.getBounds2D(); xform.scale(s2Bounds.getWidth(),s2Bounds.getHeight());
Shape s2 = rc.getVertexShapeTransformer().apply(v2); Shape edgeShape = rc.getEdgeShapeTransformer().apply(e);
LevelLayout.class.cast(diagramLayout).vertexShapeTransformer = viewer.getRenderContext().getVertexShapeTransformer();
if(p == null) continue; Shape shape = vv.getRenderContext().getVertexShapeTransformer().apply(v);
Shape shape = viewer.getRenderContext().getVertexShapeTransformer() .transform(vertex); if (shape instanceof Rectangle) {
if(isLoop) { Shape s2 = vv.getRenderContext().getVertexShapeTransformer().apply(v2); Rectangle2D s2Bounds = s2.getBounds2D(); xform.scale(s2Bounds.getWidth(),s2Bounds.getHeight());
for(V v : getFilteredVertices(layout)) { Shape shape = vv.getRenderContext().getVertexShapeTransformer().apply(v);
for(V v : getFilteredVertices(layout)) { Shape shape = vv.getRenderContext().getVertexShapeTransformer().apply(v);
Shape shape = vv.getRenderContext().getVertexShapeTransformer().apply(closest);
boolean vertexHit = true; Shape shape = rc.getVertexShapeTransformer().transform(v);
for(V v : getFilteredVertices(layout)) { Shape shape = vv.getRenderContext().getVertexShapeTransformer().apply(v);
@Override public void stateChanged(ChangeEvent e) { if (e.getSource() == nodeSize) { // scale node shapes to size ONDEXMetaConceptShapes nodeShapes = (ONDEXMetaConceptShapes) viewer.getMetaGraphPanel().getVisualizationViewer().getRenderContext().getVertexShapeTransformer(); nodeShapes.setSize((Integer) nodeSize.getValue()); } else if (e.getSource() == edgeSize) { // update thickness of edge strokes ONDEXMetaRelationStrokes edgeStrokes = (ONDEXMetaRelationStrokes) viewer.getMetaGraphPanel().getVisualizationViewer().getRenderContext().getEdgeStrokeTransformer(); edgeStrokes.setThickness((Integer) edgeSize.getValue()); } else if (e.getSource() == fontSize && viewer.getMetaGraph().getVertexCount() > 0) { // set new font size Font f = viewer.getMetaGraphPanel().getVisualizationViewer().getRenderContext().getVertexFontTransformer().transform(viewer.getMetaGraph().getVertices().iterator().next()); LabelTransformer<ONDEXMetaRelation, Font> ef = new LabelTransformer<ONDEXMetaRelation, Font>(f, (Integer) fontSize.getValue()); viewer.getMetaGraphPanel().getVisualizationViewer().getRenderContext().setEdgeFontTransformer(ef); LabelTransformer<ONDEXMetaConcept, Font> cf = new LabelTransformer<ONDEXMetaConcept, Font>(f, (Integer) fontSize.getValue()); viewer.getMetaGraphPanel().getVisualizationViewer().getRenderContext().setVertexFontTransformer(cf); } viewer.getMetaGraphPanel().repaint(); }
AffineTransform xform = AffineTransform.getTranslateInstance(x, y); Shape shape = rc.getVertexShapeTransformer().apply(v); shape = xform.createTransformedShape(shape); if(rc.getGraphicsContext() instanceof TransformingGraphics) {
/** * Sets viewer to be used in satellite view. * * @param viewer * OVTK2Viewer */ public void setViewer(OVTK2Viewer viewer) { this.viewer = viewer; // new satellite viewer satellite = new SatelliteVisualizationViewer<ONDEXConcept, ONDEXRelation>(viewer.getVisualizationViewer(), preferredSize); satellite.setPreferredSize(this.preferredSize); satellite.setSize(this.preferredSize); RenderContext<ONDEXConcept, ONDEXRelation> context = viewer.getVisualizationViewer().getRenderContext(); // configure satellite appearance satellite.getRenderContext().setVertexDrawPaintTransformer(context.getVertexDrawPaintTransformer()); satellite.getRenderContext().setVertexFillPaintTransformer(context.getVertexFillPaintTransformer()); satellite.getRenderContext().setVertexShapeTransformer(context.getVertexShapeTransformer()); satellite.getRenderContext().setEdgeDrawPaintTransformer(context.getEdgeDrawPaintTransformer()); satellite.getRenderContext().setEdgeArrowPredicate(context.getEdgeArrowPredicate()); satellite.getRenderContext().setEdgeStrokeTransformer(context.getEdgeStrokeTransformer()); // add to content pane this.getContentPane().removeAll(); this.getContentPane().add(satellite, BorderLayout.CENTER); JButton scaleToFit = new JButton(Config.language.getProperty("Satellite.ScaleToFit")); scaleToFit.addActionListener(this); this.getContentPane().add(scaleToFit, BorderLayout.SOUTH); this.revalidate(); // fit graph in scaleToFit(); }