public class DMXDefaultAdapter extends Object implements Observer, DMXAdapter
Represents the Adapter in Model-View-Adapter pattern. This class is responsible for communication and synchronization of View and Model. It is also used to register individual controllers and invoke them when appropriate.
Modifier and Type | Field and Description |
---|---|
protected Map<String,DMXController> |
controllerMap
Map of all registered controllers.
|
protected DMXModel |
dataModel
Model to be used with this adapter.
|
protected DMXExtensionManager |
extensionManager
Extension manager.
|
protected DMXResourceManager |
resourceManager
Resource manager used in this adapter.
|
protected DMXViewManager |
viewManager
DMXViewManager instance that is used to manage views. |
Constructor and Description |
---|
DMXDefaultAdapter(DMXResourceManager resourceManager)
Create new instance.
|
Modifier and Type | Method and Description |
---|---|
void |
executeTask(DMXTask task,
Object... args)
Execute specified task in background.
|
protected Map<String,Object> |
getControllerData(DMXController controller)
Extracts data from controller that should be register with the dataModel.
|
<T extends DialogFactory> |
getDialogFactory(Class<? extends DialogFactory> clazz)
Returns dialog factory for underlying platform.
|
DMXExtensionManager |
getExtensionManager()
Returns extension manager instance.
|
DMXResourceManager |
getResourceManager()
Returns resource manager associated with this adapter.
|
void |
invokeController(String controllerId,
Object... args)
Invokes controller with specified ID.
|
void |
registerController(Class clazz)
Register controller from supplied class.
|
void |
registerController(DMXController controller)
Registers specified controller to be used by the Adapter.
|
void |
registerEventHandler(DMXEventRegistrationHandler handler)
Registers event handler for UI components.
|
void |
registerExtensionCallback(DMXExtensionCallback callback)
Registers extension callback for controller or view.
|
void |
registerView(Class clazz)
Register view from specified class.
|
void |
registerView(DMXView view)
Registers this view with this application.
|
void |
setModel(DMXModel model)
Sets current dataModel.
|
void |
setViewManager(DMXViewManager vm)
Sets the current view manager.
|
void |
update(Observable o,
Object arg)
Invoked when any of the dataModel data changes.
|
protected DMXViewManager viewManager
DMXViewManager
instance that is used to manage views.protected Map<String,DMXController> controllerMap
protected DMXModel dataModel
protected DMXResourceManager resourceManager
protected DMXExtensionManager extensionManager
public DMXDefaultAdapter(DMXResourceManager resourceManager)
resourceManager
- resource manager for current platformpublic void setViewManager(DMXViewManager vm)
vm
- DMXViewManager
to setpublic void setModel(DMXModel model)
model
- dataModel to setpublic DMXResourceManager getResourceManager()
DMXAdapter
getResourceManager
in interface DMXAdapter
DMXResourceManager
instancepublic DMXExtensionManager getExtensionManager()
DMXAdapter
getExtensionManager
in interface DMXAdapter
public void registerController(DMXController controller)
DMXAdapter
Registers specified controller to be used by the Adapter. Each controller needs to be registered in order to be used properly. This method will do the following:
If specified controller also implements DMXExtendable
, system will look for suitable
DMXExtensionCallback
for it. If found, controller will be registered. Otherwise, it will
be put on hold until suitable extension callback is registered, or system is started up completely.
registerController
in interface DMXAdapter
controller
- controller to registerpublic void registerController(Class clazz)
DMXAdapter
Register controller from supplied class. Parameter clazz
should be a Class
object
annotated with DMXControllerDeclaration
. It should also provide a default, no-argument constructor.
registerController
in interface DMXAdapter
clazz
- controller classpublic void registerView(DMXView view)
DMXAdapter
DMXViewManager
, and register view data with dataModel.registerView
in interface DMXAdapter
view
- view to registerpublic void registerView(Class clazz)
DMXAdapter
registerView
in interface DMXAdapter
clazz
- view classpublic void registerExtensionCallback(DMXExtensionCallback callback)
DMXAdapter
DMXExtendable
which match it.registerExtensionCallback
in interface DMXAdapter
callback
- extension callbackpublic <T extends DialogFactory> T getDialogFactory(Class<? extends DialogFactory> clazz)
DMXAdapter
getDialogFactory
in interface DMXAdapter
T
- type parameterclazz
- factory classDialogFactory
protected Map<String,Object> getControllerData(DMXController controller)
controller
- controllerpublic void update(Observable o, Object arg)
Invoked when any of the dataModel data changes. Adapter will notify view manager, which will in turn update views that depend on changed data.
Argument must be an instance of java.util.Map
, or the IllegalArgumentException
will be thrown.
public void invokeController(String controllerId, Object... args)
DMXAdapter
execute()
method with arguments provided.invokeController
in interface DMXAdapter
controllerId
- controller IDargs
- execution argumentspublic void executeTask(DMXTask task, Object... args)
DMXAdapter
executeTask
in interface DMXAdapter
task
- task to executeargs
- execution argumentspublic void registerEventHandler(DMXEventRegistrationHandler handler)
DMXAdapter
handler
contains information
on what handler should be registered and on which UI components.registerEventHandler
in interface DMXAdapter
handler
- event handlerCopyright © 2012-2014 Vektor Software. All Rights Reserved.