theia-sprotty
Version:
Glue code for sprotty diagrams in a Theia IDE
44 lines • 2.3 kB
TypeScript
import { ILogger, ActionHandlerRegistry, IActionDispatcher, SModelStorage, ViewerOptions, DiagramServer, ActionMessage, ExportSvgAction, Action, ICommand, ServerStatusAction, RequestPopupModelAction, SModelRootSchema, SModelElementSchema } from 'sprotty/lib';
import { TheiaSprottyConnector } from './theia-sprotty-connector';
import { Workspace } from '@theia/languages/lib/browser';
export declare const TheiaDiagramServerProvider: unique symbol;
export declare type TheiaDiagramServerProvider = () => Promise<TheiaDiagramServer>;
export declare const IRootPopupModelProvider: unique symbol;
export interface IRootPopupModelProvider {
getPopupModel(action: RequestPopupModelAction, rootElement: SModelRootSchema): Promise<SModelElementSchema | undefined>;
}
/**
* A sprotty DiagramServer that can be connected to a Theia language
* server.
*
* This class is the sprotty side of the Theia/sprotty integration. It
* is instantiated with the DI container of the sprotty diagram. Theia
* services are available via the TheiaDiagramServerConnector.
*/
export declare class TheiaDiagramServer extends DiagramServer {
actionDispatcher: IActionDispatcher;
private connector;
private resolveConnector;
protected sourceUri: string;
protected workspace: Workspace | undefined;
protected rootPopupModelProvider: IRootPopupModelProvider;
constructor(actionDispatcher: IActionDispatcher, actionHandlerRegistry: ActionHandlerRegistry, viewerOptions: ViewerOptions, storage: SModelStorage, logger: ILogger);
connect(connector: TheiaSprottyConnector): void;
disconnect(): void;
private waitForConnector;
getConnector(): Promise<TheiaSprottyConnector>;
getSourceUri(): string;
getWorkspace(): Workspace | undefined;
initialize(registry: ActionHandlerRegistry): void;
handle(action: Action): void | ICommand;
handleLocally(action: Action): boolean;
handleExportSvgAction(action: ExportSvgAction): boolean;
handleRequestPopupModel(action: RequestPopupModelAction): boolean;
protected handleServerStateAction(status: ServerStatusAction): boolean;
sendMessage(message: ActionMessage): void;
/**
* made public
*/
messageReceived(message: ActionMessage): void;
}
//# sourceMappingURL=theia-diagram-server.d.ts.map