123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- blocklyApp.WorkspaceComponent = ng.core
- .Component({
- selector: 'blockly-workspace',
- template: `
- <div class="blocklyWorkspaceColumn">
- <h3 #workspaceTitle id="blockly-workspace-title">{{'WORKSPACE'|translate}}</h3>
- <div *ngIf="workspace" class="blocklyWorkspace">
- <ol #tree *ngFor="#block of workspace.topBlocks_; #i = index"
- tabindex="0" role="tree" class="blocklyTree blocklyWorkspaceTree"
- [attr.aria-activedescendant]="getActiveDescId(tree.id)"
- [attr.aria-labelledby]="workspaceTitle.id"
- (keydown)="onKeypress($event, tree)">
- <blockly-workspace-tree [level]="0" [block]="block" [tree]="tree" [isTopLevel]="true">
- </blockly-workspace-tree>
- </ol>
- <span *ngIf="workspace.topBlocks_.length === 0">
- <i>Workspace is empty.</i>
- </span>
- </div>
- </div>
- <div class="blocklyToolbarColumn">
- <div id="blockly-workspace-toolbar" (keydown)="onWorkspaceToolbarKeypress($event)">
- <span *ngFor="#buttonConfig of toolbarButtonConfig">
- <button *ngIf="!buttonConfig.isHidden()"
- (click)="handleButtonClick(buttonConfig)"
- [attr.aria-describedby]="buttonConfig.ariaDescribedBy"
- class="blocklyTree blocklyWorkspaceToolbarButton">
- {{buttonConfig.text}}
- </button>
- </span>
- <button id="clear-workspace" (click)="clearWorkspace()"
- [attr.aria-disabled]="isWorkspaceEmpty()"
- class="blocklyTree blocklyWorkspaceToolbarButton">
- {{'CLEAR_WORKSPACE'|translate}}
- </button>
- </div>
- </div>
- `,
- directives: [blocklyApp.WorkspaceTreeComponent],
- pipes: [blocklyApp.TranslatePipe]
- })
- .Class({
- constructor: [
- blocklyApp.NotificationsService, blocklyApp.TreeService,
- blocklyApp.UtilsService,
- function(_notificationsService, _treeService, _utilsService) {
-
-
-
-
-
- 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();
- }
- });
|