mirror of
https://github.com/google/blockly.git
synced 2026-01-08 17:40:09 +01:00
chore: clean up leftover procedure-related things in core (#6797)
* chore: remove triggering updates * chore: export isObservable * chore: move the observable procedure model out of its own directory
This commit is contained in:
@@ -98,6 +98,7 @@ import {IFlyout} from './interfaces/i_flyout.js';
|
||||
import {IKeyboardAccessible} from './interfaces/i_keyboard_accessible.js';
|
||||
import {IMetricsManager} from './interfaces/i_metrics_manager.js';
|
||||
import {IMovable} from './interfaces/i_movable.js';
|
||||
import {IObservable, isObservable} from './interfaces/i_observable.js';
|
||||
import {IPositionable} from './interfaces/i_positionable.js';
|
||||
import {IRegistrable} from './interfaces/i_registrable.js';
|
||||
import {ISelectable} from './interfaces/i_selectable.js';
|
||||
@@ -690,6 +691,7 @@ export {IMetricsManager};
|
||||
export {IMovable};
|
||||
export {Input};
|
||||
export {InsertionMarkerManager};
|
||||
export {IObservable, isObservable};
|
||||
export {IPositionable};
|
||||
export {IRegistrable};
|
||||
export {ISelectable};
|
||||
|
||||
@@ -4,17 +4,15 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import * as eventUtils from '../events/utils.js';
|
||||
import {IProcedureMap} from '../interfaces/i_procedure_map.js';
|
||||
import type {IProcedureModel} from '../interfaces/i_procedure_model.js';
|
||||
import {isObservable} from '../interfaces/i_observable.js';
|
||||
import {triggerProceduresUpdate} from './update_procedures.js';
|
||||
import type {Workspace} from '../workspace.js';
|
||||
import {IProcedureMap} from './interfaces/i_procedure_map.js';
|
||||
import type {IProcedureModel} from './interfaces/i_procedure_model.js';
|
||||
import {isObservable} from './interfaces/i_observable.js';
|
||||
|
||||
|
||||
export class ObservableProcedureMap extends
|
||||
Map<string, IProcedureModel> implements IProcedureMap {
|
||||
constructor(private readonly workspace: Workspace) {
|
||||
/** @internal */
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
@@ -36,7 +34,6 @@ export class ObservableProcedureMap extends
|
||||
const proc = this.get(id);
|
||||
const existed = super.delete(id);
|
||||
if (!existed) return existed;
|
||||
triggerProceduresUpdate(this.workspace);
|
||||
if (isObservable(proc)) proc.stopPublishing();
|
||||
return existed;
|
||||
}
|
||||
@@ -47,10 +44,8 @@ export class ObservableProcedureMap extends
|
||||
override clear() {
|
||||
if (!this.size) return;
|
||||
for (const id of this.keys()) {
|
||||
const proc = this.get(id);
|
||||
super.delete(id);
|
||||
this.delete(id);
|
||||
}
|
||||
triggerProceduresUpdate(this.workspace);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +53,6 @@ export class ObservableProcedureMap extends
|
||||
* blocks can find it.
|
||||
*/
|
||||
add(proc: IProcedureModel): this {
|
||||
// TODO(#6526): See if this method is actually useful.
|
||||
return this.set(proc.getId(), proc);
|
||||
}
|
||||
|
||||
@@ -29,8 +29,7 @@ import {IParameterModel} from './interfaces/i_parameter_model.js';
|
||||
import {IProcedureMap} from './interfaces/i_procedure_map.js';
|
||||
import {IProcedureModel} from './interfaces/i_procedure_model.js';
|
||||
import {IProcedureBlock, isProcedureBlock} from './interfaces/i_procedure_block.js';
|
||||
import {ObservableProcedureMap} from './procedures/observable_procedure_map.js';
|
||||
import {triggerProceduresUpdate} from './procedures/update_procedures.js';
|
||||
import {ObservableProcedureMap} from './observable_procedure_map.js';
|
||||
import * as utilsXml from './utils/xml.js';
|
||||
import * as Variables from './variables.js';
|
||||
import type {Workspace} from './workspace.js';
|
||||
@@ -500,7 +499,6 @@ export function getDefinition(name: string, workspace: Workspace): Block|null {
|
||||
|
||||
export {
|
||||
ObservableProcedureMap,
|
||||
triggerProceduresUpdate,
|
||||
IParameterModel,
|
||||
IProcedureBlock,
|
||||
isProcedureBlock,
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2022 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import * as goog from '../../closure/goog/goog.js';
|
||||
import {isProcedureBlock} from '../interfaces/i_procedure_block.js';
|
||||
import {Workspace} from '../workspace.js';
|
||||
|
||||
goog.declareModuleId('Blockly.procedures.updateProcedures');
|
||||
|
||||
|
||||
/**
|
||||
* Calls the `doProcedureUpdate` method on all blocks which implement it.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
export function triggerProceduresUpdate(workspace: Workspace) {
|
||||
if (workspace.isClearing) return;
|
||||
for (const block of workspace.getAllBlocks(false)) {
|
||||
if (isProcedureBlock(block)) {
|
||||
block.doProcedureUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ import {VariableMap} from './variable_map.js';
|
||||
import type {VariableModel} from './variable_model.js';
|
||||
import type {WorkspaceComment} from './workspace_comment.js';
|
||||
import {IProcedureMap} from './interfaces/i_procedure_map.js';
|
||||
import {ObservableProcedureMap} from './procedures.js';
|
||||
import {ObservableProcedureMap} from './observable_procedure_map.js';
|
||||
|
||||
|
||||
/**
|
||||
@@ -112,7 +112,7 @@ export class Workspace implements IASTNodeLocation {
|
||||
private readonly blockDB = new Map<string, Block>();
|
||||
private readonly typedBlocksDB = new Map<string, Block[]>();
|
||||
private variableMap: VariableMap;
|
||||
private procedureMap: IProcedureMap = new ObservableProcedureMap(this);
|
||||
private procedureMap: IProcedureMap = new ObservableProcedureMap();
|
||||
|
||||
/**
|
||||
* Blocks in the flyout can refer to variables that don't exist in the main
|
||||
|
||||
Reference in New Issue
Block a user