构建基于 Eclipse Theia 桌面平台生态系统,并使用Eclipse-GLSP创建可拖拽的图标编辑器插件。具体可看Examples · Eclipse Graphical Language Server Platform
在 glsp客户端代码中,在设置diagram-modules.ts文件中,引入右键菜单删除API:
import {
DeleteElementContextMenuItemProvider,
} from '@eclipse-glsp/client';
然后创建一个名为workflowDiagramModule
容器模块实例,在这个容器模块中,包含了一些功能、依赖项或配置等。
export const workflowDiagramModule = new ContainerModule((bind, unbind, isBound, rebind) => {
const context = { bind, unbind, isBound, rebind };
bindOrRebind(context, TYPES.ILogger).to(ConsoleLogger).inSingletonScope();
bindOrRebind(context, TYPES.LogLevel).toConstantValue(LogLevel.warn);
bind(TYPES.ISnapper).to(GridSnapper);
bindAsService(context, TYPES.ICommandPaletteActionProvider, RevealNamedElementActionProvider);
bindAsService(context, TYPES.IContextMenuItemProvider, DeleteElementContextMenuItemProvider);
}
使用了一个依赖注入容器中的方法 bindAsService
,并将 DeleteElementContextMenuItemProvider
类绑定为一个实现 IContextMenuItemProvider
接口的服务,这样就可以实现右键选择相应的组件可删除功能了。
示例图: