/** * AccessibleBlockly * * Copyright 2016 Google Inc. * https://developers.google.com/blockly/ * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @fileoverview Angular2 Component that details how a Blockly.Workspace is * rendered in AccessibleBlockly. * @author madeeha@google.com (Madeeha Ghori) */ blocklyApp.WorkspaceComponent = ng.core .Component({ selector: 'blockly-workspace', template: `

{{'WORKSPACE'|translate}}

Workspace is empty.
`, directives: [blocklyApp.WorkspaceTreeComponent], pipes: [blocklyApp.TranslatePipe] }) .Class({ constructor: [ blocklyApp.NotificationsService, blocklyApp.TreeService, blocklyApp.UtilsService, function(_notificationsService, _treeService, _utilsService) { // ACCESSIBLE_GLOBALS is a global variable defined by the containing // page. It should contain a key, toolbarButtonConfig, whose // corresponding value is an Array with two keys: 'text' and 'action'. // The first is the text to display on the button, and the second is the // function that gets run when the button is clicked. this.toolbarButtonConfig = ACCESSIBLE_GLOBALS && ACCESSIBLE_GLOBALS.toolbarButtonConfig ? ACCESSIBLE_GLOBALS.toolbarButtonConfig : []; this.workspace = blocklyApp.workspace; this.notificationsService = _notificationsService; this.treeService = _treeService; this.utilsService = _utilsService; }], clearWorkspace: function() { this.workspace.clear(); }, getActiveDescId: function(treeId) { return this.treeService.getActiveDescId(treeId); }, handleButtonClick: function(buttonConfig) { buttonConfig.action(); if (buttonConfig.onClickNotification) { this.notificationsService.setStatusMessage( buttonConfig.onClickNotification); } }, onWorkspaceToolbarKeypress: function(e) { this.treeService.onWorkspaceToolbarKeypress( e, document.activeElement.id); }, onKeypress: function(e, tree) { this.treeService.onKeypress(e, tree); }, isWorkspaceEmpty: function() { return this.utilsService.isWorkspaceEmpty(); } });