@Override public void redo() throws CannotRedoException { super.redo(); addedView.clearSelection(); addedDrawing.add(addedFigure); addedView.addToSelection(addedFigure); } });
@Override public void redo() throws CannotRedoException { super.redo(); drawing.add(c); view.clearSelection(); view.addToSelection(c); } });
@Override public void done(final LinkedList<Figure> importedFigures) { importedFigures.removeAll(existingFigures); if (importedFigures.size() > 0) { view.clearSelection(); view.addToSelection(importedFigures); transferFigures.addAll(importedFigures); moveToDropPoint(comp, transferFigures, dropPoint); drawing.fireUndoableEditHappened(new AbstractUndoableEdit() { @Override public String getPresentationName() { ResourceBundleUtil labels = ResourceBundleUtil.getBundle("org.jhotdraw.draw.Labels"); return labels.getString("edit.paste.text"); } @Override public void undo() throws CannotUndoException { super.undo(); drawing.removeAll(importedFigures); } @Override public void redo() throws CannotRedoException { super.redo(); drawing.addAll(importedFigures); } }); } }
/** * This method allows subclasses to do perform additonal user interactions * after the new figure has been created. * The implementation of this class just invokes fireToolDone. */ @Override protected void creationFinished(Figure createdFigure) { getView().clearSelection(); getView().addToSelection(createdFigure); beginEdit((TextHolderFigure) createdFigure); } /*
@Override public void mousePressed(MouseEvent evt) { super.mousePressed(evt); getView().clearSelection(); createdFigure = createFigure(); Point2D.Double p = constrainPoint(viewToDrawing(anchor)); anchor.x = evt.getX(); anchor.y = evt.getY(); createdFigure.setBounds(p, p); getDrawing().add(createdFigure); }
@SuppressWarnings("unchecked") @Override public Collection<Figure> ungroupFigures(DrawingView view, CompositeFigure group) { LinkedList<Figure> figures = new LinkedList<Figure>(group.getChildren()); view.clearSelection(); group.basicRemoveAllChildren(); LinkedList<Figure> paths = new LinkedList<Figure>(); for (Figure f : figures) { ODGPathFigure path = new ODGPathFigure(); path.removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : group.getAttributes().entrySet()) { path.set(entry.getKey(), entry.getValue()); } path.add(f); view.getDrawing().basicAdd(path); paths.add(path); } view.getDrawing().remove(group); view.addToSelection(paths); return figures; }
@Override public void undo() throws CannotUndoException { super.undo(); view.clearSelection(); for (CompositeFigureEvent evt : deletionEvents) { drawing.add(evt.getIndex(), evt.getChildFigure()); } view.addToSelection(selectedFigures); }
@Override @SuppressWarnings("unchecked") public Collection<Figure> ungroupFigures(DrawingView view, CompositeFigure group) { LinkedList<Figure> figures = new LinkedList<Figure>(group.getChildren()); view.clearSelection(); group.basicRemoveAllChildren(); LinkedList<Figure> paths = new LinkedList<Figure>(); for (Figure f : figures) { ODGPathFigure path = new ODGPathFigure(); path.removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : group.getAttributes().entrySet()) { path.set(entry.getKey(), entry.getValue()); } path.add(f); view.getDrawing().basicAdd(path); paths.add(path); } view.getDrawing().remove(group); view.addToSelection(paths); return figures; }
@Override public void mouseDragged(MouseEvent e) { DrawingView v = getView(); Figure f = v.findFigure(e.getPoint()); if (f != null) { if (!v.getSelectedFigures().contains(f)) { v.clearSelection(); v.addToSelection(f); } v.getComponent().getTransferHandler().exportAsDrag(v.getComponent(), e, DnDConstants.ACTION_MOVE); } fireToolDone(); }
public void splitPath(DrawingView view, CompositeFigure group, List<Figure> ungroupedPaths, int[] ungroupedPathsIndices, int[] ungroupedPathsChildCounts) { view.clearSelection(); Iterator<Figure> groupedFigures = new LinkedList<Figure>(group.getChildren()).iterator(); group.basicRemoveAllChildren(); view.getDrawing().remove(group); SVGPathFigure pathFigure = (SVGPathFigure) group; pathFigure.flattenTransform(); for (int i = 0; i < ungroupedPaths.size(); i++) { CompositeFigure path = (CompositeFigure) ungroupedPaths.get(i); view.getDrawing().add(ungroupedPathsIndices[i], path); path.willChange(); for (int j = 0; j < ungroupedPathsChildCounts[i]; j++) { Figure child = groupedFigures.next(); child.willChange(); path.basicAdd(child); } path.changed(); } view.addToSelection(ungroupedPaths); }
public Collection<Figure> ungroupFigures(DrawingView view, CompositeFigure group) { // XXX - This code is redundant with UngroupAction LinkedList<Figure> figures = new LinkedList<Figure>(group.getChildren()); view.clearSelection(); group.basicRemoveAllChildren(); view.getDrawing().basicAddAll(view.getDrawing().indexOf(group), figures); view.getDrawing().remove(group); view.addToSelection(figures); return figures; }
@SuppressWarnings("unchecked") @Override public void groupFigures(DrawingView view, CompositeFigure group, Collection<Figure> figures) { Collection<Figure> sorted = view.getDrawing().sort(figures); view.getDrawing().basicRemoveAll(figures); view.clearSelection(); view.getDrawing().add(group); group.willChange(); ((ODGPathFigure) group).removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : figures.iterator().next().getAttributes().entrySet()) { group.set(entry.getKey(), entry.getValue()); } for (Figure f : sorted) { ODGPathFigure path = (ODGPathFigure) f; for (Figure child : path.getChildren()) { group.basicAdd(child); } } group.changed(); view.addToSelection(group); } }
@Override @SuppressWarnings("unchecked") public void groupFigures(DrawingView view, CompositeFigure group, Collection<Figure> figures) { Collection<Figure> sorted = view.getDrawing().sort(figures); view.getDrawing().basicRemoveAll(figures); view.clearSelection(); view.getDrawing().add(group); group.willChange(); ((ODGPathFigure) group).removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : figures.iterator().next().getAttributes().entrySet()) { group.set(entry.getKey(), entry.getValue()); } for (Figure f : sorted) { ODGPathFigure path = (ODGPathFigure) f; // XXX - We must fire an UndoableEdito for the flattenTransform! path.flattenTransform(); for (Figure child : path.getChildren()) { group.basicAdd(child); } } group.changed(); view.addToSelection(group); } }
public void groupFigures(DrawingView view, CompositeFigure group, Collection<Figure> figures) { Collection<Figure> sorted = view.getDrawing().sort(figures); int index = view.getDrawing().indexOf(sorted.iterator().next()); view.getDrawing().basicRemoveAll(figures); view.clearSelection(); view.getDrawing().add(index, group); group.willChange(); for (Figure f : sorted) { f.willChange(); group.basicAdd(f); } group.changed(); view.addToSelection(group); } }
view.clearSelection(); view.addToSelection(anchorFigure);
/** * Creates a new figure at the location where the mouse was pressed. */ @Override public void mousePressed(MouseEvent e) { // Note: The search sequence used here, must be // consistent with the search sequence used by the // HandleTracker, SelectAreaTracker, DelegationSelectionTool, SelectionTool. if (typingTarget != null) { endEdit(); if (isToolDoneAfterCreation()) { fireToolDone(); } } else { super.mousePressed(e); // update view so the created figure is drawn before the floating text // figure is overlaid. TextHolderFigure textHolder = (TextHolderFigure)getCreatedFigure(); getView().clearSelection(); getView().addToSelection(textHolder); beginEdit(textHolder); updateCursor(getView(), e.getPoint()); } }
creationView.clearSelection(); finishWhenMouseReleased = null;
@Override public void mousePressed(MouseEvent evt) { super.mousePressed(evt); DrawingView view = getView(); if (evt.isShiftDown()) { view.setHandleDetailLevel(0); view.toggleSelection(anchorFigure); if (!view.isFigureSelected(anchorFigure)) { anchorFigure = null; } } else if (!view.isFigureSelected(anchorFigure)) { view.setHandleDetailLevel(0); view.clearSelection(); view.addToSelection(anchorFigure); } if (!view.getSelectedFigures().isEmpty()) { dragRect = null; for (Figure f : view.getSelectedFigures()) { if (dragRect == null) { dragRect = f.getBounds(); } else { dragRect.add(f.getBounds()); } } anchorPoint = previousPoint = view.viewToDrawing(anchor); anchorOrigin = previousOrigin = new Point2D.Double(dragRect.x, dragRect.y); } }
/** * Manipulates connections in a context dependent way. If the * mouse down hits a figure start a new connection. If the mousedown * hits a connection split a segment or join two segments. */ @Override public void mousePressed(MouseEvent evt) { super.mousePressed(evt); getView().clearSelection(); Point2D.Double startPoint = viewToDrawing(anchor); Figure startFigure = getDrawing().findFigure(startPoint); startConnector = (startFigure == null) ? null : startFigure.findConnector(startPoint, prototype); if (startConnector != null && canConnect(prototype, startConnector)) { Point2D.Double anchor = startConnector.getAnchor(); createdFigure = createFigure(); createdFigure.setStartPoint(anchor); createdFigure.setEndPoint(anchor); getDrawing().add(createdFigure); Rectangle r = new Rectangle(getView().drawingToView(anchor)); r.grow(ANCHOR_WIDTH, ANCHOR_WIDTH); fireAreaInvalidated(r); } else { startConnector = null; createdFigure = null; } endConnector = null; }
getConnection().setEndConnector(connectableConnector); getConnection().updateConnection(); view.clearSelection(); view.addToSelection(c); view.getDrawing().fireUndoableEditHappened(new AbstractUndoableEdit() {