1   /*****************************************************************************
2    *                   Virtual Mockup for Machine Vision
3    *  Copyright (C) 2001-2003 Fabio R. de Miranda, João E. Kogler Jr., 
4    *                         Carlos S. Santos.
5    *   Virtual Mockup for Machine Vision Project funded by SENAC-SP
6    *
7    * Permission is granted to redistribute and/or modify this
8    * software under the terms of the GNU Lesser General Public
9    * License as published by the Free Software Foundation; either
10   * version 2.1 of the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15   * Lesser General Public License (http://www.gnu.org/copyleft/lesser.html)
16   * for more details.
17   *
18   *****************************************************************************/
19  
20  package camera3d.action;
21  
22  
23  import camera3d.GUIControl;
24  
25  /***
26   * Abstract superclass to all VirtualCamera actions.
27   *
28   * @author Fábio Roberto de Miranda
29   * @version 1.0
30   */
31  public abstract class VcAction {
32      /*** Constant for signaling that an action affects one single object. */
33      public static final int SINGLE_OBJECT_ACTION   = 0;
34      /*** Constant for signaling that an action affects more than one object. */
35      public static final int MULTIPLE_OBJECT_ACTION = 1;
36  
37      boolean debugflag = true;
38  
39      private int multiplicityType = SINGLE_OBJECT_ACTION;
40  
41      public VcAction() {
42      }
43  
44      /***
45       * Returns a flag indicating whether this action is applied to a single object or
46       * to a collection of them.
47       */
48      public int getMultiplicityType(){
49          return this.multiplicityType;
50      }
51  
52      /***
53       * Sets multiplicity flag for this action.
54       */
55      public void setMultiplicityType(int i){
56          this.multiplicityType = i;
57      }
58  
59      /***
60       * Performs the action.
61       * @param executor provides any resource necessary for the action execution, such
62       *        as references to other objects.
63       */
64      public  abstract void  doAction(ActionExecutor executor);
65  
66      /***
67       * Undoes the action.
68       * @param executor provides any resource necessary for the action execution, such
69       *        as references to other objects.
70       */
71      public void undoAction(ActionExecutor executor){
72      }
73  
74      /***
75       *  Returns a flag indicating whether the action can be undone. It is used by ActionExecutor
76       *  in order to select which actions should be pushed into the output queue. Currently, this
77       *  method always returns true. In the future it should be turned into a abstract method,
78       *  implemented by subclasses.
79       */
80      public boolean isUndoable(){
81          return true;
82      }
83  
84      /***
85       * Prints a debug message. Its execution is controlled by debugflag and GUIControl.debugflag.
86       */
87      public void debugln(String s){
88         if ((debugflag)&&(GUIControl.debugflag)) {
89         //if (debugflag) {
90              System.out.println(s);
91          }
92      }
93  
94  }
This page was automatically generated by Maven