From db2570c3df545b1912913cf1d3273e2991f5aa8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8A=E5=B1=B1=20=E6=99=BA=E5=A3=AB?= Date: Tue, 4 Feb 2014 15:15:59 +0900 Subject: [PATCH] #25 toggle selection button --- inner/js/selection/selection-controller.js | 5 ++++- inner/js/ui/edit-toolbar.js | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/inner/js/selection/selection-controller.js b/inner/js/selection/selection-controller.js index a23253e..be9b80c 100644 --- a/inner/js/selection/selection-controller.js +++ b/inner/js/selection/selection-controller.js @@ -42,10 +42,12 @@ if (!window.mobmap) { window.mobmap={}; } this.fireNewSession(); this.currentSelectionSession = new mobmap.RectSelectionSession(); + this.fireAfterNewSession(); }, fireSessionDispose: function() { this.callResponders('selWillDisposeCurrentSession'); }, fireNewSession: function() { this.callResponders('selWillStartNewSession'); }, + fireAfterNewSession: function() { this.callResponders('selDidStartNewSession'); }, callResponders: function(methodName, arg1, arg2) { var required = SelectionControllerResponderMethodList[methodName] || false; @@ -70,7 +72,8 @@ if (!window.mobmap) { window.mobmap={}; } var SelectionControllerResponderMethodList = { // name | required selWillDisposeCurrentSession : false, - selWillStartNewSession : false + selWillStartNewSession : false, + selDidStartNewSession : false }; aGlobal.mobmap.SelectionController = SelectionController; diff --git a/inner/js/ui/edit-toolbar.js b/inner/js/ui/edit-toolbar.js index a65abcc..08ce988 100644 --- a/inner/js/ui/edit-toolbar.js +++ b/inner/js/ui/edit-toolbar.js @@ -17,7 +17,7 @@ if (!window.mobmap) { window.mobmap={}; } this.groupColumnMap = {}; this.addPresetColumns(); - this.addSelectionButtons('sel'); + this.selectionButtonNameMap = this.addSelectionButtons('sel'); } MobmapEditToolBar.prototype = { @@ -57,6 +57,8 @@ if (!window.mobmap) { window.mobmap={}; } targetCol.appendChild(btnObj.element); this.observeSelectionButton(btnObj); } + + return generatedButtonMap; }, observeSelectionButton: function (btnObj) { @@ -112,8 +114,8 @@ if (!window.mobmap) { window.mobmap={}; } }, // Responder methods for controller - selWillStartNewSession: function(selController) { - var currentType = SelectionSessionType.Unknown; + selDidStartNewSession: function(selController) { + var currentType = mobmap.SelectionSessionType.Unknown; var sess = selController.getCurrentSession(); if (sess) { currentType = sess.getType(); @@ -123,7 +125,19 @@ if (!window.mobmap) { window.mobmap={}; } }, updateSelectionButtonsState: function(currentSessionType) { + var sel_name = null; + switch(currentSessionType) { + case mobmap.SelectionSessionType.Rect: sel_name = 'sel_rect'; break; + } + var setButtonNames = ['sel_rect']; + var len = setButtonNames.length; + for (var i = 0;i < len;++i) { + var targetName = setButtonNames[i]; + var btn = this.selectionButtonNameMap[targetName]; + console.log(targetName , sel_name) + btn.setSelectedStyle(targetName === sel_name); + } } };