KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nightlabs > editor2d > command > ShearCommand


1 /* *****************************************************************************
2  * NightLabs Editor2D - Graphical editor framework *
3  * Copyright (C) 2004-2005 NightLabs - http://NightLabs.org *
4  * Project author: Daniel Mazurek <Daniel.Mazurek [at] nightlabs [dot] org> *
5  * *
6  * This library is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU Lesser General Public *
8  * License as published by the Free Software Foundation; either *
9  * version 2.1 of the License, or (at your option) any later version. *
10  * *
11  * This library is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14  * Lesser General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Lesser General Public *
17  * License along with this library; if not, write to the *
18  * Free Software Foundation, Inc., *
19  * 51 Franklin St, Fifth Floor, *
20  * Boston, MA 02110-1301 USA *
21  * *
22  * Or get it online : *
23  * http://www.gnu.org/copyleft/lesser.html *
24  * *
25  * *
26  ******************************************************************************/

27
28 package org.nightlabs.editor2d.command;
29
30 import java.awt.geom.AffineTransform JavaDoc;
31
32 import org.eclipse.draw2d.PositionConstants;
33
34
35 public class ShearCommand
36 extends AbstractTransformCommand
37 {
38
39   public ShearCommand()
40   {
41     super();
42   }
43
44   protected double shear;
45   public double getShear() {
46     return shear;
47   }
48   public void setShear(double shear) {
49     this.shear = shear;
50   }
51   
52   protected int direction;
53   public int getDirection() {
54     return direction;
55   }
56   public void setDirection(int direction) {
57     this.direction = direction;
58   }
59     
60   protected AffineTransform JavaDoc calcAffineTransform()
61   {
62     AffineTransform JavaDoc at = new AffineTransform JavaDoc();
63     switch (direction)
64     {
65         case(PositionConstants.EAST):
66         case(PositionConstants.WEST):
67             at.shear(shear, 1.0d);
68             break;
69         case(PositionConstants.NORTH):
70         case(PositionConstants.SOUTH):
71             at.shear(1.0d, shear);
72             setAffineTransform(at);
73             break;
74     }
75         return at;
76   }
77   
78   public void execute()
79   {
80     setAffineTransform(calcAffineTransform());
81     super.execute();
82   }
83   
84 }
85
Popular Tags