Hi Thomas,
Initialize method is meant for internal plugin initialization purpose
When you say "in PXfrontController..." plugin == null is always false"
this is attended because the plugin is not constructed yet
See initialize source code:
protected function initialize() : void
{
oController = new PXFrontController(this);
oQueueController = new PXQueueController(this);
oModelLocator = PXModelLocator.getInstance(this);
oViewLocator = PXViewLocator.getInstance(this);
oEBPublic =
PXApplicationBroadcaster.getInstance().getChannelDispatcher(channel,
this);
if( oEBPublic ) oEBPublic.addListener(this);
}
Only after internal initialization you may use and setup you plugin
the way you want. In your previous post I said not to forget
initialize plugins using onApplicationInit() dedicated method ;), see:
// Plugin A
/**
* Triggered when IoC process is finished.
*/
override public function onApplicationInit() : void {
initMVC();// initialize your plugin's view, model, frontcontroller
}
// Plugin B
/**
* Triggered when IoC process is finished.
*/
override public function onApplicationInit() : void {
initMVC();// initialize your plugin's view, model, frontcontroller
}
As I understand it you are using kinda main plugin to store/manage
centralized data. In this workflow you may proceed as follow:
public class PixlibTests extends PXBaseDocument
{
override protected function onDocumentReady():void {
var plugin : PluginA = new PluginA();
plugin.onApplicationInit();
// do stuff
var plugin : PluginB = new PluginB();
pluginB.onApplicationInit();
}
}
// OR
public class PixlibTests extends PXBaseDocument
{
override protected function onDocumentReady():void {
var plugin : MainPlugin = new MainPlugin();
plugin.onApplicationInit();
// do stuff
}
public function onStuffComplete() : void
{
var plugin : PluginA = new PluginA();
var plugin : PluginB = new PluginB();
pluginA.onApplicationInit();
pluginB.onApplicationInit();