From 11b49930f9837e7b461d5d49201b0c68aa6e02af Mon Sep 17 00:00:00 2001 From: Sean Lip Date: Thu, 9 Jun 2016 19:10:34 -0700 Subject: [PATCH] Remove the unnecessary construction of new services. --- accessible/appview.component.js | 6 +++--- accessible/clipboard.service.js | 1 + accessible/fieldview.component.js | 3 +-- accessible/toolbox_treeview.component.js | 11 ++++++----- accessible/tree.service.js | 2 ++ accessible/utils.service.js | 7 +++++-- accessible/workspace_treeview.component.js | 7 ++++--- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/accessible/appview.component.js b/accessible/appview.component.js index 792726654..6a3cc87bd 100644 --- a/accessible/appview.component.js +++ b/accessible/appview.component.js @@ -55,10 +55,10 @@ blocklyApp.AppView = ng.core `, directives: [blocklyApp.ToolboxView, blocklyApp.WorkspaceView], pipes: [blocklyApp.TranslatePipe], - // ClipboardService declared here so that all components are using the same - // instance of the clipboard. + // The clipboard and utils services are declared here, so that all + // components in the application use the same instance of the service. // https://www.sitepoint.com/angular-2-components-providers-classes-factories-values/ - providers: [blocklyApp.ClipboardService] + providers: [blocklyApp.ClipboardService, blocklyApp.UtilsService] }) .Class({ constructor: function() {} diff --git a/accessible/clipboard.service.js b/accessible/clipboard.service.js index 747baf0e2..25508fc6c 100644 --- a/accessible/clipboard.service.js +++ b/accessible/clipboard.service.js @@ -25,6 +25,7 @@ blocklyApp.ClipboardService = ng.core .Class({ constructor: function() { + blocklyApp.debug && console.log('Clipboard service constructed'); this.clipboardBlockXml_ = null; this.clipboardBlockSuperiorConnection_ = null; this.clipboardBlockNextConnection_ = null; diff --git a/accessible/fieldview.component.js b/accessible/fieldview.component.js index cdd52e117..114a256b6 100644 --- a/accessible/fieldview.component.js +++ b/accessible/fieldview.component.js @@ -62,8 +62,7 @@ blocklyApp.FieldView = ng.core `, inputs: ['field', 'level', 'index', 'parentId'], - pipes: [blocklyApp.TranslatePipe], - providers: [blocklyApp.TreeService, blocklyApp.UtilsService] + pipes: [blocklyApp.TranslatePipe] }) .Class({ constructor: [blocklyApp.UtilsService, function(_utilsService) { diff --git a/accessible/toolbox_treeview.component.js b/accessible/toolbox_treeview.component.js index 1e50ca196..0411c3fba 100644 --- a/accessible/toolbox_treeview.component.js +++ b/accessible/toolbox_treeview.component.js @@ -105,13 +105,14 @@ blocklyApp.ToolboxTreeView = ng.core }), blocklyApp.FieldView], inputs: [ 'block', 'displayBlockMenu', 'level', 'index', 'tree', 'noCategories'], - pipes: [blocklyApp.TranslatePipe], - providers: [blocklyApp.TreeService, blocklyApp.UtilsService] + pipes: [blocklyApp.TranslatePipe] }) .Class({ - constructor: [blocklyApp.ClipboardService, blocklyApp.TreeService, - blocklyApp.UtilsService, - function(_clipboardService, _treeService, _utilsService) { + constructor: [ + blocklyApp.ClipboardService, blocklyApp.TreeService, blocklyApp.UtilsService, + function(_clipboardService, _treeService, _utilsService) { + // ClipboardService and UtilsService are app-wide singleton services. + // TreeService is from the parent ToolboxView component. this.infoBlocks = Object.create(null); this.clipboardService = _clipboardService; this.treeService = _treeService; diff --git a/accessible/tree.service.js b/accessible/tree.service.js index 549df25db..6682f66af 100644 --- a/accessible/tree.service.js +++ b/accessible/tree.service.js @@ -19,6 +19,8 @@ /** * @fileoverview Angular2 Service that handles all tree keyboard navigation. + * A separate TreeService is constructed for each tree in the application. + * * @author madeeha@google.com (Madeeha Ghori) */ diff --git a/accessible/utils.service.js b/accessible/utils.service.js index fddb47ded..569dc7aa1 100644 --- a/accessible/utils.service.js +++ b/accessible/utils.service.js @@ -18,8 +18,10 @@ */ /** - * @fileoverview Angular2 Service with functions required by multiple - * components. + * @fileoverview Angular2 utility service for multiple components. All + * functions in this service should be stateless, since this is a singleton + * service that is used for the entire application. + * * @author madeeha@google.com (Madeeha Ghori) */ @@ -28,6 +30,7 @@ var blocklyApp = {}; blocklyApp.UtilsService = ng.core .Class({ constructor: function() { + blocklyApp.debug && console.log('Utils service constructed'); }, generateUniqueId: function() { return 'blockly-' + Blockly.genUid(); diff --git a/accessible/workspace_treeview.component.js b/accessible/workspace_treeview.component.js index e6f492cdb..3740e4dec 100644 --- a/accessible/workspace_treeview.component.js +++ b/accessible/workspace_treeview.component.js @@ -117,11 +117,12 @@ blocklyApp.WorkspaceTreeView = ng.core [level]="level"> `, - directives: [ng.core.forwardRef( - function() { return blocklyApp.WorkspaceTreeView; }), blocklyApp.FieldView], + directives: [ng.core.forwardRef(function() { + return blocklyApp.WorkspaceTreeView; + }), blocklyApp.FieldView], inputs: ['block', 'isTopBlock', 'topBlockIndex', 'level', 'parentId'], pipes: [blocklyApp.TranslatePipe], - providers: [blocklyApp.TreeService, blocklyApp.UtilsService], + providers: [blocklyApp.TreeService], }) .Class({ constructor: [