Extension SDK

oracle.ide.addin
Class BaseController

java.lang.Object
  extended byoracle.ide.addin.BaseController
All Implemented Interfaces:
Controller
Direct Known Subclasses:
AbstractCanvasController, AbstractLogManager, CodeEditorController, FileOpenHistory, UIEditorController

public abstract class BaseController
extends java.lang.Object
implements Controller

BaseController class. Provides a default implementation of the Controller interface. Classes that extend this class generally want the IDE controller to be their supervisor.


Constructor Summary
BaseController()
          Default constructor for BaseController
BaseController(View view)
          Constructor.
 
Method Summary
 void checkCommands(Context context, Controller activeController)
          checkCommands() should be called on the controller associated with the active view whenever the Context changes.
 void checkToolbarCommands(Context context)
          Checks the sensitivity of the toolbar commands.
static void checkToolbarCommands(Context context, View view, Controller controller)
          Checks the sensitivity of the actions associated with the specified view toolbar.
 View getView()
          Get the view associated with this controller.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseController

public BaseController()
Default constructor for BaseController


BaseController

public BaseController(View view)
Constructor. The argument specifies the view that owns this controller. When a Controller is designed to handle multiple views, this argument should be null.

Method Detail

getView

public View getView()
Get the view associated with this controller. If a Controller is designed to handle multiple views, this return value is null.


supervisor

public Controller supervisor()
Gets the supervising controller

Specified by:
supervisor in interface 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.

Specified by:
handleEvent in interface Controller
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.

Specified by:
update in interface Controller
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.

Specified by:
checkCommands in interface Controller
Parameters:
context - the current context. Null values are acceptable.
activeController - the controller associated with the active view. Null values are acceptable.

checkToolbarCommands

public void checkToolbarCommands(Context context)
Checks the sensitivity of the toolbar commands. If the specified context is null, the method uses the controller's owning view context.


checkToolbarCommands

public static void checkToolbarCommands(Context context,
                                        View view,
                                        Controller controller)
Checks the sensitivity of the actions associated with the specified view toolbar. If the context is null the method gets the view associated with the specified context. If a toolbar action does not have a controller associated with it, or if the action controller is the same as the specified controller, the specified controller's update() method is called to check the action's sensitivity. Otherwise, the action's controller is used.


Extension SDK

 

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