Extension SDK

oracle.ide.addin
Interface Controller

All Known Subinterfaces:
DockStation, EditorManager, LogManager, PrintManager
All Known Implementing Classes:
AbstractLogManager, BaseController, ChainedController, Ide, JCompiler, JProjectStructureController, LayoutController, WizardManager

public interface Controller

Each View has an associated Controller. Controllers receive requests to handle the commands associated with user actions. The controller's handleEvent method gets called with the appropriate Command specified. If the Controller does not handle the requested command it delegates the Command to a supervising Controller. Controllers are also responsible for determining the availability of a specific command. The update method is called to do just that.

See Also:
oracle.jdeveloper.ide.Command, oracle.jdeveloper.ide.IdeAction, oracle.jdeveloper.ide.View

Method Summary
 void checkCommands(Context context, Controller activeController)
          checkCommands() should be called on the controller associated with the active view whenever the Context changes.
 boolean handleEvent(IdeAction action, Context context)
          This method is called when a user interaction with a View triggers the execution of a command.
 Controller supervisor()
          Gets the supervising controller
 boolean update(IdeAction action, Context context)
          This method updates the enabled status of the specified action within the specified context.
 

Method Detail

supervisor

public Controller supervisor()
Gets the supervising controller

Returns:
the supervising controller.

handleEvent

public boolean handleEvent(IdeAction action,
                           Context context)
This method is called when a user interaction with a View triggers the execution of a command.

Parameters:
action - action whose command is to be executed.
Returns:
true if the controller handles the specified command.

update

public boolean update(IdeAction action,
                      Context context)
This method updates the enabled status of the specified action within the specified context. It should generally be called on the controller associated with the active view to allow that controller to take the first crack at determining its enabled status. If that controller wants to update its enabled status, it does so and returns true to indicate that further controllers do not need to be consulted. If the controller does not deal with setting the enabled status of an action, it delegates the request to its supervising controller, all the way up to the Ide. The Ide has a special implementation of update(xx) that further delegates the request to root controllers, until one of them returns true indicating the request was handled by the controller. Note that checkCommands() uses a non-overlapping upwards delegation model to update the enabled status of all actions, whereas update() provides a 'virtual-like' mechanism for allowing the most-specific controllers to determine the enabled status of each action being checked.

Parameters:
action - action whose command is to be executed.
context - the current context
Returns:
true if the controller handles the specified command.

checkCommands

public void checkCommands(Context context,
                          Controller activeController)
checkCommands() should be called on the controller associated with the active view whenever the Context changes. The method gives the controller a chance to assign the enabled/disabled status of each of the context-sensitive Actions it owns. Calling this method on the active controller should cause all context-sensitive Actions owned by this controller and its supervisor's to be updated. No two controllers should attempt to update the status of the same action or else we would have redundant checking, which we want to avoid. checkCommands() should end by calling supervisor().checkCommands() to make sure actions dealt with by higher-level controllers get updated as well. This method is implemented by BaseController to call checkCommands() on the Ide itself. Note that the only context-sensitive Actions should be updated inside a checkCommands() method. Updating the enabled/disabled state of an action is handled by the update() command.

Parameters:
context - the current context. Null values are acceptable.
activeController - the controller associated with the active view. Null values are acceptable.

Extension SDK

 

Copyright ©1997, 2003, Oracle. All rights reserved.