KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jac > ide > diagrams > AbstractActionTool


1 /*
2   Copyright (C) 2002-2003 Laurent Martelli <laurent@aopsys.com>
3
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU Lesser General Public License as
6   published by the Free Software Foundation; either version 2 of the
7   License, or (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12   GNU Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with this program; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17 */

18
19 package org.objectweb.jac.ide.diagrams;
20
21 import CH.ifa.draw.framework.DrawingEditor;
22 import CH.ifa.draw.framework.Figure;
23 import CH.ifa.draw.standard.AbstractTool;
24 import org.objectweb.jac.aspects.gui.DisplayContext;
25 import java.awt.event.MouseEvent JavaDoc;
26
27 public abstract class AbstractActionTool extends AbstractTool {
28
29    protected DisplayContext context;
30    Class JavaDoc figureClass;
31
32    /**
33     * @param drawingEditor the editor the tool is attached to
34     * @param context the display context
35     * @param figureClass the type of figures the action applies to
36     */

37    public AbstractActionTool(DrawingEditor drawingEditor,
38                              DisplayContext context,
39                              Class JavaDoc figureClass) {
40       super(drawingEditor);
41       this.context = context;
42       this.figureClass = figureClass;
43    }
44
45    /**
46     * Add the touched figure to the selection an invoke action
47     * @see #action
48     */

49    public void mouseDown(MouseEvent JavaDoc e, int x, int y) {
50       Figure target = drawing().findFigure(x, y);
51       if (target != null && figureClass.isAssignableFrom(target.getClass())) {
52          view().addToSelection(target);
53          action(target);
54       }
55    }
56    
57    public void mouseUp(MouseEvent JavaDoc e, int x, int y) {
58       editor().toolDone();
59    }
60
61    public abstract void action(Figure figure);
62
63    public boolean isActive() {
64       // The AbstractTool implementation seems to always return false
65
// because isUsable()==false
66
return editor().tool() == this;
67    }
68 }
69
70
Popular Tags