@Override public void run() { target.refresh(); } });
public void zoomMinus() { target.setScaling(target.getScaling() / 2f); refreshLoop.refreshSketch(); }
public void resetZoom() { target.reset(); refreshLoop.refreshSketch(); }
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (!inited) { //Listeners addMouseListener(this); addMouseMotionListener(this); addMouseWheelListener(this); inited = true; } int width = (int) (getWidth() * (isRetina ? 2.0 : 1.0)); int height = (int) (getHeight() * (isRetina ? 2.0 : 1.0)); if (target.getWidth() != width || target.getHeight() != height) { target.resize(width, height); } g.drawImage(target.getImage(), 0, 0, getWidth(), getHeight(), this); }
@Override public void render(Item item, RenderTarget target, PreviewProperties properties) { //Retrieve clicked node for the label: LabelItem label = (LabelItem) item; Node node = label.node; //Finally draw your graphics for the node label in each target if (target instanceof G2DTarget) { Graphics2D g = ((G2DTarget) target).getGraphics(); g.setColor(Color.BLACK); g.fillOval((int) node.x(), (int) -node.y(), 5, 5);//Note that y axis is inverse for node coordinates } else if (target instanceof PDFTarget) { } else if (target instanceof SVGTarget) { } }
@Override public boolean execute() { PreviewController controller = Lookup.getDefault().lookup(PreviewController.class); controller.getModel(workspace).getProperties().putValue(PreviewProperty.VISIBILITY_RATIO, 1.0); controller.refreshPreview(workspace); PreviewProperties props = controller.getModel(workspace).getProperties(); props.putValue("width", width); props.putValue("height", height); target = (G2DTarget) controller.getRenderTarget(RenderTarget.G2D_TARGET, workspace); try { target.refresh(); Graphics2D pg2 = (Graphics2D) target.getGraphics(); BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); pg2.drawImage(img, null, 0, 0); ImageIO.write(img, "jpg", stream); stream.close(); } catch (Exception e) { throw new RuntimeException(e); } return true; }
@Override public boolean execute() { Progress.start(progress); PreviewController ctrl = Lookup.getDefault().lookup(PreviewController.class); PreviewModel m = ctrl.getModel(workspace); setExportProperties(m); ctrl.refreshPreview(workspace); target = (G2DTarget) ctrl.getRenderTarget( RenderTarget.G2D_TARGET, workspace); if (target instanceof LongTask) { ((LongTask) target).setProgressTicket(progress); } try { target.refresh(); Progress.switchToIndeterminate(progress); Image sourceImg = target.getImage(); BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); img.getGraphics().drawImage(sourceImg, 0, 0, null); ImageIO.write(img, "png", stream); stream.close(); } catch (Exception e) { throw new RuntimeException(e); } discardExportProperties(m); Progress.finish(progress); return !cancel; }
private Vector screenPositionToModelPosition(Vector screenPos) { Vector center = new Vector(getWidth() / 2f, getHeight() / 2f); Vector scaledCenter = Vector.mult(center, target.getScaling()); Vector scaledTrans = Vector.sub(center, scaledCenter); Vector modelPos = new Vector(screenPos.x, screenPos.y); modelPos.sub(scaledTrans); modelPos.div(target.getScaling()); modelPos.sub(target.getTranslate()); return modelPos; }
@Override public void mousePressed(MouseEvent e) { previewController.sendMouseEvent(buildPreviewMouseEvent(e, PreviewMouseEvent.Type.PRESSED)); ref.set(e.getX(), e.getY()); lastMove.set(target.getTranslate()); refreshLoop.refreshSketch(); }
public void setMoving(boolean moving) { target.setMoving(moving); }
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (!inited) { //Listeners addMouseListener(this); addMouseMotionListener(this); addMouseWheelListener(this); inited = true; } int width = (int) (getWidth() * (isRetina ? 2.0 : 1.0)); int height = (int) (getHeight() * (isRetina ? 2.0 : 1.0)); if (target.getWidth() != width || target.getHeight() != height) { target.resize(width, height); } g.drawImage(target.getImage(), 0, 0, getWidth(), getHeight(), this); }
public void renderG2D(G2DTarget target, String label, float x, float y, Color color, float outlineSize, Color outlineColor) { Graphics2D graphics = target.getGraphics(); graphics.setFont(font); FontMetrics fm = graphics.getFontMetrics(); float posX = x - fm.stringWidth(label) / 2f; float posY = y + fm.getAscent() / 2f; Shape outlineGlyph = null; if (outlineSize > 0) { FontRenderContext frc = graphics.getFontRenderContext(); GlyphVector gv = font.createGlyphVector(frc, label); outlineGlyph = gv.getOutline(posX, posY); graphics.setColor(outlineColor); graphics.setStroke(new BasicStroke(outlineSize, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); graphics.draw(outlineGlyph); } graphics.setColor(color); if (null == outlineGlyph) { graphics.drawString(label, posX, posY); } else { graphics.fill(outlineGlyph); } }
private Vector screenPositionToModelPosition(Vector screenPos) { Vector center = new Vector(getWidth() / 2f, getHeight() / 2f); Vector scaledCenter = Vector.mult(center, target.getScaling()); Vector scaledTrans = Vector.sub(center, scaledCenter); Vector modelPos = new Vector(screenPos.x, screenPos.y); modelPos.sub(scaledTrans); modelPos.div(target.getScaling()); modelPos.sub(target.getTranslate()); return modelPos; }
@Override public void mousePressed(MouseEvent e) { previewController.sendMouseEvent(buildPreviewMouseEvent(e, PreviewMouseEvent.Type.PRESSED)); ref.set(e.getX(), e.getY()); lastMove.set(target.getTranslate()); refreshLoop.refreshSketch(); }
public void setMoving(boolean moving) { target.setMoving(moving); }
public void renderG2D(G2DTarget target, String label, float x, float y, int fontSize, Color color, float outlineSize, Color outlineColor, boolean showBox, Color boxColor) { Graphics2D graphics = target.getGraphics();
public void zoomPlus() { target.setScaling(target.getScaling() * 2f); refreshLoop.refreshSketch(); }
@Override public void mouseDragged(MouseEvent e) { if (!previewController.sendMouseEvent(buildPreviewMouseEvent(e, PreviewMouseEvent.Type.DRAGGED))) { setMoving(true); Vector trans = target.getTranslate(); trans.set(e.getX(), e.getY()); trans.sub(ref); trans.mult(isRetina ? 2f : 1f); trans.div(target.getScaling()); // ensure const. moving speed whatever the zoom is trans.add(lastMove); refreshLoop.refreshSketch(); } }
@Override public void run() { if (refresh.getAndSet(false)) { target.refresh(); repaint(); } else if (timeout == 0) { timeout = DELAY * 10; stopTimer(); } else { timeout -= DELAY; } } }, 0, DELAY);
public void resetZoom() { target.reset(); refreshLoop.refreshSketch(); }