package org.emdev.ui.actions; /** * This interface defines base features for component controller. * * @param <ManagedComponent> * manager GUI component class */ public interface IActionController<ManagedComponent> { /** * Name of action property containing managed component */ String MANAGED_COMPONENT_PROPERTY = "ManagedComponent"; /** * Name of action property containing component controller */ String COMPONENT_CONTROLLER_PROPERTY = "ComponentController"; /** * Name of action property containing component controller */ String VIEW_PROPERTY = "View"; String ADAPTER_SELECTED_ITEM_PROPERTY = "AdapterSelectedItem"; String DIALOG_PROPERTY = "Dialog"; String DIALOG_ITEM_PROPERTY = "DialogItem"; String DIALOG_SELECTED_ITEMS_PROPERTY = "DialogSelectedItems"; /** * @return the parent controller */ IActionController<?> getParent(); /** * @return the managed component */ ManagedComponent getManagedComponent(); /** * @param component manager component to set */ void setManagedComponent(ManagedComponent component); /** * Searches for a global action by the given action id. * * @param id * action id * @return an instance of the {@link ActionEx} object or <code>null</code> */ ActionEx getAction(final int id); /** * Creates an action * * @param id * action id * @return an instance of {@link ActionEx} object or <code>null</code> */ ActionEx getOrCreateAction(final int id); /** * Creates an action * * @param id * action id * @param parameters * action parameters * @return an instance of {@link ActionEx} object */ ActionEx createAction(final int id, final IActionParameter... parameters); }