1 /*
2 * $HeadURL: $
3 * $Date: $
4 * $Revision: $
5 * $Author: $
6 *
7 * Copyright (c) 2005 MindTree Consulting Ltd.
8 *
9 * This file is part of Insight.
10 *
11 * Insight is free software: you can redistribute it and/or modify it under the
12 * terms of the GNU General Public License as published by the Free Software
13 * Foundation, either version 3 of the License, or (at your option) any later
14 * version.
15 *
16 * Insight is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19 * Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along with
22 * Insight. If not, see <http://www.gnu.org/licenses/>.
23 */
24 package com.mindtree.techworks.insight.gui.action;
25
26 /**
27 *
28 * The <code>IAction</code> interface represents all menu items and tool bar
29 * button instances in Insight. It contains specific behavior for enabling
30 * and disabling and data related call-back from the Controller
31 *
32 * @see com.mindtree.techworks.insight.Controller
33 * @see com.mindtree.techworks.insight.gui.Presentation
34 *
35 * @author Regunath B
36 * @version 1.0, 05/03/11
37 */
38 public interface IAction {
39
40 /**
41 * Useful constants to identify the broad types of actions
42 */
43 public static final int NONE = 1;
44 public static final int NO_CONSTRAINTS = 2;
45 public static final int MUTATION = 4 | NO_CONSTRAINTS;
46 public static final int TAIL = 8 | MUTATION;
47 public static final int VIEW = 16 | MUTATION;
48 public static final int STARTUP = 32 | MUTATION;
49 public static final int ALL = 64 | STARTUP;
50
51 /**
52 * Useful array of mutual exclusion type
53 */
54 public static final int[][] MUTUAL_EXCLUSION_TYPES = {
55 {MUTATION, MUTATION},
56 {STARTUP, MUTATION},
57 {TAIL, NO_CONSTRAINTS},
58 };
59
60 /**
61 * Returns the type of this IAction
62 * @return valid type defined in this interface
63 */
64 public int getType();
65
66 /**
67 * Sets the enabled state of this action
68 */
69 public void setEnabled (boolean enable);
70
71 }