<nop>JHotDraw is a framework for building Swing drawing applications. It's descended from a toolkit written in <nop>SmallTalk by one of the "gang of four" patterns gurus so it's heavily pattern-intensive. http://www.jhotdraw.org/ What happens when the delete key is pressed? <pre> at reva.manager.view.editor.Antenna$1.figureRequestRemove(Antenna.java:100) at org.jhotdraw.standard.StandardDrawing.orphan(Unknown Source) at org.jhotdraw.standard.DeleteFromDrawingVisitor.visitFigure(Unknown Source) at org.jhotdraw.standard.AbstractFigure.visit(Unknown Source) at org.jhotdraw.standard.FigureTransferCommand.deleteFigures(Unknown Source) at org.jhotdraw.standard.DeleteCommand.execute(Unknown Source) at org.jhotdraw.util.UndoableCommand.execute(Unknown Source) at org.jhotdraw.standard.StandardDrawingView$DrawingViewKeyListener.keyPressed(Unknown Source) at java.awt.Component.processKeyEvent(Component.java:5058) </pre> =StandardDrawingView.DrawingViewKeyListener= creates a =DeleteCommand= in the constructor. When the delete key is pressed the listener calls =DeleteCommand.isExecutable()= and if it returns true calls =execute()=. =DeleteCommand.isExecutable()= checks some stuff and then delegates to =DeleteCommand.isExecutableWithView()= which checks if any figures are selected and if so returns true. Keyboard/mouse events start in the <nop>DrawingView (it's a JPanel) and then get propagated to the tool that the <nop>DrawingEditor returns from a call to =tool()=. What happens when the mouse is dragged? <pre> [java] at reva.manager.view.editor.AntennaFigure.basicMoveBy(AntennaFigure.java:274) [java] at org.jhotdraw.standard.AbstractFigure.moveBy(AbstractFigure.java:70) [java] at org.jhotdraw.standard.DragTracker.mouseDrag(DragTracker.java:64) [java] at org.jhotdraw.util.UndoableTool.mouseDrag(UndoableTool.java:72) [java] at org.jhotdraw.standard.SelectionTool.mouseDrag(SelectionTool.java:95) [java] at org.jhotdraw.contrib.CustomSelectionTool.mouseDrag(CustomSelectionTool.java:74) [java] at org.jhotdraw.standard.StandardDrawingView$DrawingViewMouseMotionListener.mouseDragged(StandardDrawingView.java:1001) [java] at org.jhotdraw.contrib.zoom.ZoomDrawingView$2.mouseDragged(ZoomDrawingView.java:367) [java] at java.awt.Component.processMouseMotionEvent(Component.java:5148) [java] at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:2779) [java] at java.awt.Component.processEvent(Component.java:4901) </pre>
This topic: Tech
>
TechNotes
>
ProgrammingNotes
>
JavaNotes
>
JHotDrawNotes
Topic revision: r4 - 12 May 2005 - TobyCabot
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding The Caboteria?
Send feedback