From c9913330fcd389dfba5515461109e88fe702834e Mon Sep 17 00:00:00 2001 From: masamitsu Date: Fri, 30 Sep 2011 12:57:13 +0900 Subject: [PATCH] =?utf8?q?=E3=82=A2=E3=83=89=E3=82=A4=E3=83=B3=E3=81=AE?= =?utf8?q?=E9=87=8D=E8=A4=87=E3=83=AD=E3=83=BC=E3=83=89=E3=82=92=E5=9B=9E?= =?utf8?q?=E9=81=BF=E3=81=99=E3=82=8B=E3=81=9F=E3=82=81=E3=81=AE=E4=BF=AE?= =?utf8?q?=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- app/controller/CoreController.js | 1 + app/view/platform/MainTabs.js | 56 +++++++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/app/controller/CoreController.js b/app/controller/CoreController.js index de15f11..0c68966 100644 --- a/app/controller/CoreController.js +++ b/app/controller/CoreController.js @@ -9,6 +9,7 @@ Ext.define( onLaunch: function(app) { Decshee.Application = app; console.log('Decshee.Application: ' + Decshee.Application); + Decshee.AddIns = {}; Decshee.Viewport = Ext.getCmp('Decshee.Viewport'); console.log('Decshee.Viewport: ' + Decshee.Viewport); } diff --git a/app/view/platform/MainTabs.js b/app/view/platform/MainTabs.js index 218e97c..0268b70 100644 --- a/app/view/platform/MainTabs.js +++ b/app/view/platform/MainTabs.js @@ -39,31 +39,45 @@ Ext.define( // アドインのロード var srcPath = 'addins/' + id; var packagePath = 'Decshee.' + id; + var rootPath = packagePath + '.controller.Root'; + var rootPanelPath = packagePath + '.view.Panel'; + console.log(srcPath); console.log(packagePath); - Ext.Loader.setPath(packagePath, srcPath); - Ext.require(packagePath + '.*'); - - var rootPath = packagePath + '.controller.Root'; console.log(rootPath); - var rootController = Decshee.Application.getController(rootPath); - console.log(rootController); - rootController.init(); - // タブを追加。 - me.add( - { - title: caption, - itemId: tabId, - iconCls: 'tabs', - closable: true, - layout: 'fit', - items: [ - { xtype: 'memberpanel' } - ] - } - ); - tab = me.child('#' + tabId); + var addin = Decshee.AddIns[id]; + if (addin == null) { + + Ext.Loader.setPath(packagePath, srcPath); + Ext.require(packagePath + '.*'); + + var rootController = Decshee.Application.getController(rootPath); + console.log(rootController); + rootController.init(); + + Decshee.AddIns[id] = rootController; + console.log('AddIn [' + id + '] has not loaded.'); + } + + try { + // タブを追加。 + me.add( + { + title: caption, + itemId: tabId, + iconCls: 'tabs', + closable: true, + layout: 'fit', + items: [ + { xtype: id + 'rootpanel' } + ] + } + ); + tab = me.child('#' + tabId); + } catch(e) { + alert(e); + } } tab.show(); } -- 2.11.0