Create new callback types for uninterruptible callbacks.
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / graphicObject / CallBack.java
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
4  *  Copyright (C) 2011 - DIGITEO - Vincent COUVERT
5  *
6  *  This file must be used under the terms of the CeCILL.
7  *  This source file is licensed as described in the file COPYING, which
8  *  you should have received as part of this distribution.  The terms
9  *  are also available at
10  *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
11  *
12  */
13 package org.scilab.modules.graphic_objects.graphicObject;
14
15 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus;
16
17 /**
18  * Abstract class to manage all callbacks.
19  *
20  * @author Bruno JOFRET
21  */
22 public class CallBack {
23
24     /**
25      * Unmanaged command type constant
26      */
27     public static final int UNTYPED = -1;
28     /**
29      * Scilab instruction command type constant
30      */
31     public static final int SCILAB_INSTRUCTION = 0;
32     public static final int SCILAB_NOT_INTERRUPTIBLE_INSTRUCTION = 10;
33     /**
34      * C or Fortran function type constant
35      */
36     public static final int C_FORTRAN = 1;
37     /**
38      * Scilab function type constant
39      */
40     public static final int SCILAB_FUNCTION = 2;
41     public static final int SCILAB_NOT_INTERRUPTIBLE_FUNCTION = 12;
42     /**
43      * Scilab function type constant (not trapped by scilab event listeners)
44      */
45     public static final int SCILAB_OUT_OF_XCLICK_AND_XGETMOUSE = -2;
46     /**
47      * Java function type constant
48      */
49     public static final int JAVA = 3;
50     /**
51      * Java function type constant (not trapped by scilab event listeners)
52      */
53     public static final int JAVA_OUT_OF_XCLICK_AND_XGETMOUSE = -3;
54
55     /**
56      * Scilab instruction without GCBO setting (old addmenu compatibility)
57      */
58     public static final int SCILAB_INSTRUCTION_WITHOUT_GCBO = 4;
59
60     /**
61      * The Command to Store and remember.
62      */
63     private String command;
64
65     /**
66      * The command type
67      */
68     private int commandType;
69
70     /**
71      * Constructor to be seen by specifics CallBack.
72      * @param command the command associated to the ccallback
73      */
74     public CallBack(String command) {
75         this(command, UNTYPED);
76     }
77
78     /**
79      * Constructor to be seen by specifics CallBack.
80      * @param command the command associated to the ccallback
81      * @param commandType the command type
82      */
83     public CallBack(String command, int commandType) {
84         this.command = command;
85         this.commandType =  commandType;
86     }
87
88     /**
89      * @param command sets the command
90      */
91     public UpdateStatus setCommand(String command) {
92         this.command = command;
93         return UpdateStatus.Success;
94     }
95
96     /**
97      * @return the command if it's a Scilab instruction.
98      */
99     public String getCommand() {
100         return command;
101     }
102
103     /**
104      * @param commandType sets the command
105      */
106     public UpdateStatus setCommandType(int commandType) {
107         this.commandType = commandType;
108         return UpdateStatus.Success;
109     }
110
111     /**
112      * @return the command type
113      */
114     public int getCommandType() {
115         return commandType;
116     }
117 }