| 
01 /*02  * Copyright 2008-2015 the original author or authors.
 03  *
 04  * Licensed under the Apache License, Version 2.0 (the "License");
 05  * you may not use this file except in compliance with the License.
 06  * You may obtain a copy of the License at
 07  *
 08  *     http://www.apache.org/licenses/LICENSE-2.0
 09  *
 10  * Unless required by applicable law or agreed to in writing, software
 11  * distributed under the License is distributed on an "AS IS" BASIS,
 12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  * See the License for the specific language governing permissions and
 14  * limitations under the License.
 15  */
 16 package griffon.core.controller;
 17
 18 import griffon.core.artifact.GriffonController;
 19
 20 import javax.annotation.Nonnull;
 21 import javax.annotation.Nullable;
 22
 23 /**
 24  * @author Andres Almiray
 25  * @since 2.0.0
 26  */
 27 public interface Action {
 28     String KEY_ACTION_NAME = "actionName";
 29     String KEY_NAME = "name";
 30     String KEY_ENABLED = "enabled";
 31
 32     @Nonnull
 33     String getActionName();
 34
 35     /**
 36      * Returns the fully qualified name of this action.</p>
 37      * The value should be the controller's full class name and the action's name joined by a period.
 38      *
 39      * @return the fully qualified name of this action.
 40      * @since 2.1.0
 41      */
 42     @Nonnull
 43     String getFullyQualifiedName();
 44
 45     @Nullable
 46     String getName();
 47
 48     void setName(@Nullable String name);
 49
 50     boolean isEnabled();
 51
 52     void setEnabled(boolean enabled);
 53
 54     @Nonnull
 55     ActionManager getActionManager();
 56
 57     @Nonnull
 58     GriffonController getController();
 59
 60     @Nonnull
 61     Object getToolkitAction();
 62
 63     void execute(Object... args);
 64
 65     void initialize();
 66 }
 |