The Caboteria / Tech Web / TechNotes > ProgrammingNotes > JavaNotes / JHotDrawNotes (12 May 2005, TobyCabot)
JHotDraw is a framework for building Swing drawing applications. It's descended from a toolkit written in 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?

     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)

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 DrawingView (it's a JPanel) and then get propagated to the tool that the DrawingEditor returns from a call to tool().

What happens when the mouse is dragged?

     [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)
Edit | Attach | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Copyright © 2008-2017 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