Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
public run(_args: any[]): boolean {
const vp = IModelApp.viewManager.selectedView;
if (undefined === vp)
return true;
if (MarkupApp.isActive) {
// NOTE: Because we don't have separate START and STOP buttons in the test app, exit markup mode only when the Markup Select tool is active, otherwise start the Markup Select tool...
const startMarkupSelect = IModelApp.toolAdmin.defaultToolId === MarkupApp.markupSelectToolId && (undefined === IModelApp.toolAdmin.activeTool || MarkupApp.markupSelectToolId !== IModelApp.toolAdmin.activeTool.toolId);
if (startMarkupSelect) {
IModelApp.toolAdmin.startDefaultTool();
return true;
}
MarkupApp.props.result.maxWidth = 1500;
MarkupApp.stop().then((markupData) => {
if (undefined !== markupData.image)
openImageDataUrlInNewWindow(markupData.image, "Markup");
}).catch((_) => { });
} else {
MarkupApp.props.active.element.stroke = "white"; // as an example, set default color for elements
MarkupApp.markupSelectToolId = "Markup.TestSelect"; // as an example override the default markup select tool to launch redline tools using key events
MarkupApp.start(vp); // tslint:disable-line:no-floating-promises
}
return true;
public static initialize() {
// istanbul ignore else
if (IModelApp && IModelApp.toolAdmin) {
IModelApp.toolAdmin.toolSettingsChangeHandler = ToolUiManager.syncToolSettingsProperties;
}
}
// first, lock the viewport to its current size while the markup session is running
this.lockViewportSize(view, markupData);
this.markup = this.createMarkup(view, markupData); // start a markup against the provided view.
if (!this.markup.svgMarkup) {
ScreenViewport.setToParentSize(this.markup.vp.vpDiv);
this.markup.markupDiv.remove();
return;
}
IModelApp.toolAdmin.markupView = view; // so viewing tools won't operate on the view.
// set the markup Select tool as the default tool and start it, saving current default tool
this._saveDefaultToolId = IModelApp.toolAdmin.defaultToolId;
IModelApp.toolAdmin.defaultToolId = this.markupSelectToolId;
IModelApp.toolAdmin.startDefaultTool();
}
public startDefaultTool(): void {
// Start the default tool
if (this.defaultTool && IModelApp.toolAdmin && IModelApp.viewManager) {
IModelApp.toolAdmin.defaultToolId = this.defaultTool.toolId;
this.defaultTool.execute();
}
}
public static initialize() {
// istanbul ignore else
if (IModelApp && IModelApp.toolAdmin) {
IModelApp.toolAdmin.toolSettingsChangeHandler = ToolUiManager.syncToolSettingsProperties;
}
}
label={UiFramework.translate("toolAssistance.promptAtCursor")}
isOn={this.state.showPromptAtCursor} onChange={this._onPromptAtCursorChange} />
}
);
}
if (prompt)
tooltip = prompt;
// istanbul ignore next
if (IModelApp.toolAdmin.activeTool)
tooltip = `${IModelApp.toolAdmin.activeTool.flyover} > ${tooltip} `;
if (tooltip) {
const lineBreak = "\u000d\u000a";
tooltip = tooltip + lineBreak;
}
tooltip += UiFramework.translate("toolAssistance.moreInfo");
return (
<>
<div title="{tooltip}">
{toolIcon}
</div>
OpenIModelTool,
PurgeTileTreesTool,
RefreshTilesTool,
ReopenIModelTool,
ResizeWindowTool,
RestoreWindowTool,
SaveImageTool,
ShutDownTool,
SVTSelectionTool,
ToggleFrustumIntersectionTool,
ToggleShadowMapTilesTool,
VersionComparisonTool,
ZoomToSelectedElementsTool,
].forEach((tool) => tool.register(svtToolNamespace));
IModelApp.toolAdmin.defaultToolId = SVTSelectionTool.toolId;
return FrontendDevTools.initialize();
}
handler: (value, _input) => { ToolSettings.wheelZoomRatio = value; IModelApp.toolAdmin.exitViewTool(); },
parseAsFloat: true,
protected setupAndPromptForNextAction(): void { IModelApp.accuSnap.enableSnap(true); IModelApp.toolAdmin.toolState.coordLockOvr = CoordinateLockOverrides.None; super.setupAndPromptForNextAction(); }
handler: (_cb) => { ToolSettings.preserveWorldUp = !ToolSettings.preserveWorldUp; IModelApp.toolAdmin.exitViewTool(); },
});