io.workspaces API
The Workspaces API for creating, restoring, and managing complex window arrangements.
createWorkspace()
Create a new workspace from a definition object.
io.workspaces.createWorkspace(definition: WorkspaceDefinition, config?: WorkspaceConfig): Promise<Workspace>
Example
const ws = await io.workspaces.createWorkspace({
children: [
{
type: "row",
children: [
{ type: "window", appName: "ClientList" },
{ type: "window", appName: "Portfolio" },
],
},
],
config: { title: "My Workspace" },
});restoreWorkspace()
Restore a previously saved workspace layout by name.
io.workspaces.restoreWorkspace(name: string, options?: RestoreOptions): Promise<Workspace>
getBuilder()
Get a fluent builder for constructing complex workspace layouts.
io.workspaces.getBuilder(options: BuilderOptions): WorkspaceBuilder
Example
const builder = io.workspaces.getBuilder({
type: "workspace",
definition: { config: { title: "Trading" } },
});
builder.addRow()
.addWindow({ appName: "Chart" })
.addWindow({ appName: "OrderTicket" });
const ws = await builder.create();Workspace Instance Methods
setContext() / getContext()
workspace.setContext(data: object): Promise<void>
workspace.getContext(): Promise<object>
lock()
workspace.lock(config: LockConfig): Promise<void>
| Parameter | Type | Description |
|---|---|---|
allowExtract | boolean | Allow dragging windows out. |
allowSplitters | boolean | Allow resizing panes. |
allowDrop | boolean | Allow dropping windows in. |
showCloseButton | boolean | Show close buttons on windows. |
Events
Workspace events
workspace.onWindowAdded((win) => console.log("Added:", win.appName));
workspace.onWindowRemoved((info) => console.log("Removed:", info.windowId));
workspace.onContextUpdated((ctx) => console.log("Context:", ctx));
workspace.onClosed(() => console.log("Workspace closed"));