/** * If the pressed figure is a TextHolderFigure it can be edited. */ @Override public void mousePressed(MouseEvent e) { if (typingTarget != null) { beginEdit(typingTarget); updateCursor(getView(), e.getPoint()); } }
@Override public void actionPerformed(ActionEvent event) { endEdit(); fireToolDone(); }
protected void beginEdit(TextHolderFigure textHolder) { if (textField == null) { textField = new FloatingTextField(); textField.addActionListener(this); } if (textHolder != typingTarget && typingTarget != null) { endEdit(); } textField.createOverlay(getView(), textHolder); textField.requestFocus(); typingTarget = textHolder; }
/** * Returns a specialized tool for the given coordinate. * <p>Returns null, if no specialized tool is available. */ @Override public Tool getTool(Point2D.Double p) { return (target != null && contains(p)) ? new TextEditingTool(target) : null; }
@Override public void keyReleased(KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { fireToolDone(); } }
@Override public void deactivate(DrawingEditor editor) { endEdit(); super.deactivate(editor); }
@Override public void updateCursor(DrawingView view, Point p) { if (view.isEnabled()) { view.setCursor(Cursor.getPredefinedCursor(isEditing() ? Cursor.DEFAULT_CURSOR : Cursor.CROSSHAIR_CURSOR)); } else { view.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } }
getDrawing().fireUndoableEditHappened(edit);
/** * Returns a specialized tool for the given coordinate. * <p>Returns null, if no specialized tool is available. */ @Override public Tool getTool(Point2D.Double p) { if (isEditable() && contains(p)) { TextEditingTool t = new TextEditingTool(this); return t; } return null; }
/** * Returns a specialized tool for the given coordinate. * <p>Returns null, if no specialized tool is available. */ @Override public Tool getTool(Point2D.Double p) { if (isEditable() && contains(p)) { TextEditingTool tool = new TextEditingTool(this); return tool; } return null; }