49,52d48
< 	public void open() {
< 		super.open();
< 	}
< 
65c61
< 		Tool tool = new UndoableTool(new TextTool(view(), new TextFigure()));
---
> 		Tool tool = new UndoableTool(new TextTool(this, new TextFigure()));
68,69c64
< 		tool = new UndoableTool(new ConnectedTextTool(view(), new TextFigure()));
< //        tool = new ConnectedTextTool(view(), new TextFigure());
---
> 		tool = new UndoableTool(new ConnectedTextTool(this, new TextFigure()));
72c67
< 		tool = new URLTool(view());
---
> 		tool = new URLTool(this);
75c70
< 		tool = new UndoableTool(new CreationTool(view(), new RectangleFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new RectangleFigure()));
78c73
< 		tool = new UndoableTool(new CreationTool(view(), new RoundRectangleFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new RoundRectangleFigure()));
81c76
< 		tool = new UndoableTool(new CreationTool(view(), new EllipseFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new EllipseFigure()));
84c79
< 		tool = new UndoableTool(new PolygonTool(view()));
---
> 		tool = new UndoableTool(new PolygonTool(this));
87c82
< 		tool = new UndoableTool(new CreationTool(view(), new TriangleFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new TriangleFigure()));
90c85
< 		tool = new UndoableTool(new CreationTool(view(), new DiamondFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new DiamondFigure()));
93c88
< 		tool = new UndoableTool(new CreationTool(view(), new LineFigure()));
---
> 		tool = new UndoableTool(new CreationTool(this, new LineFigure()));
96c91
< 		tool = new UndoableTool(new ConnectionTool(view(), new LineConnection()));
---
> 		tool = new UndoableTool(new ConnectionTool(this, new LineConnection()));
99c94
< 		tool = new UndoableTool(new ConnectionTool(view(), new ElbowConnection()));
---
> 		tool = new UndoableTool(new ConnectionTool(this, new ElbowConnection()));
102c97
< 		tool = new UndoableTool(new ScribbleTool(view()));
---
> 		tool = new UndoableTool(new ScribbleTool(this));
105c100
< 		tool = new UndoableTool(new BorderTool(view()));
---
> 		tool = new UndoableTool(new BorderTool(this));
110c105
< 		return new MySelectionTool(view());
---
> 		return new MySelectionTool(this);
121,125c116,118
< 		JMenu menu = new JMenu("Animation");
< 		JMenuItem mi = new JMenuItem("Start Animation");
< 		mi.addActionListener(
< 			new ActionListener() {
< 				public void actionPerformed(ActionEvent event) {
---
> 		CommandMenu menu = new CommandMenu("Animation");
> 		Command cmd = new AbstractCommand("Start Animation", this) {
> 			public void execute() {
128,130c121,122
< 			}
< 		);
< 		menu.add(mi);
---
> 		};
> 		menu.add(cmd);
132,135c124,125
< 		mi = new JMenuItem("Stop Animation");
< 		mi.addActionListener(
< 			new ActionListener() {
< 				public void actionPerformed(ActionEvent event) {
---
> 		cmd = new AbstractCommand("Stop Animation", this) {
> 			public void execute() {
138,140c128,129
< 			}
< 		);
< 		menu.add(mi);
---
> 		};
> 		menu.add(cmd);
145,149c134,136
< 		JMenu menu = new JMenu("Window");
< 		JMenuItem mi = new JMenuItem("New View");
< 		mi.addActionListener(
< 			new ActionListener() {
< 				public void actionPerformed(ActionEvent event) {
---
> 		CommandMenu menu = new CommandMenu("Window");
> 		Command cmd = new AbstractCommand("New View", this) {
> 			public void execute() {
151a139,144
> 		};
> 		menu.add(cmd);
> 
> 		cmd = new AbstractCommand("New Window", this, false) {
> 			public void execute() {
> 				newWindow(createDrawing());
153,163c146,147
< 		);
< 		menu.add(mi);
< 		mi = new JMenuItem("New Window");
< 		mi.addActionListener(
< 			new ActionListener() {
< 				public void actionPerformed(ActionEvent event) {
< 					newWindow();
< 				}
< 			}
< 		);
< 		menu.add(mi);
---
> 		};
> 		menu.add(cmd);
166c150
< 		menu.add(new WindowMenu("Window List", (MDIDesktopPane)getDesktop()));
---
> 		menu.add(new WindowMenu("Window List", (MDIDesktopPane)getDesktop(), this));
180c164
< 					new InsertImageCommand(name, path, view())));
---
> 					new InsertImageCommand(name, path, this)));
194,195c178,179
< 		if (drawing() instanceof Animatable && fAnimator == null) {
< 			fAnimator = new Animator((Animatable)drawing(), view());
---
> 		if (view().drawing() instanceof Animatable && fAnimator == null) {
> 			fAnimator = new Animator((Animatable)view().drawing(), view());
