diff --git a/package.json b/package.json index 8d90abe..847c216 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Taipy Studio Configuration Builder", "description": "Visual Studio Code extension for Taipy: Configuration Builder", "publisher": "Taipy", - "version": "0.3.0", + "version": "0.3.1", "homepage": "https://github.com/Avaiga/taipy-studio-config.git", "repository": { "type": "git", diff --git a/src/context.ts b/src/context.ts index d7af406..fd2c69d 100644 --- a/src/context.ts +++ b/src/context.ts @@ -239,7 +239,7 @@ export class Context { this.configDetailsView.setEmptyContent(); } - private async selectConfigNode(nodeType: string, name: string, configNode: object, uri: Uri, reveal = true): Promise { + private async selectConfigNode(nodeType: string, name: string, configNode: object, uri: Uri, reveal = true, fromInEditor = true): Promise { let updateCache = false; if (reveal || this.selectionCache.lastView === nodeType) { this.configDetailsView.setConfigNodeContent(nodeType, name, configNode, uri); @@ -255,7 +255,7 @@ export class Context { if (updateCache) { this.vsContext.workspaceState.update(Context.cacheName, this.selectionCache); } - if (reveal) { + if (reveal && fromInEditor) { this.revealConfigNodeInEditors(uri, nodeType, name); } } @@ -270,7 +270,7 @@ export class Context { const item = this.treeProviders[providerIndex].getItem(name); if (item) { this.treeViews[providerIndex].reveal(item, { select: true }); - this.selectConfigNode(nodeType, name, item.getNode(), docUri, false); + this.selectConfigNode(nodeType, name, item.getNode(), docUri, true, false); } } } diff --git a/webviews/package.json b/webviews/package.json index e86f1f7..b1d1d95 100644 --- a/webviews/package.json +++ b/webviews/package.json @@ -3,7 +3,7 @@ "displayName": "taipy-studio-webviews", "description": "Components for Visual Studio Code extension for Taipy", "publisher": "Avaiga", - "version": "0.3.0", + "version": "0.3.1", "categories": [ "Other" ], diff --git a/webviews/src/utils/diagram.ts b/webviews/src/utils/diagram.ts index ea4f15c..e20ff92 100644 --- a/webviews/src/utils/diagram.ts +++ b/webviews/src/utils/diagram.ts @@ -113,6 +113,7 @@ export const getLinkId = (link: LinkModel) => export const getNodeId = (node: DefaultNodeModel) => `${node.getType()}.${node.getOptions().name}`; const fireNodeSelected = (nodeType: string, name?: string) => name && postActionMessage(nodeType, name, Select); + export const cachePositions = (model: DiagramModel) => { const pos = getModelNodes(model).reduce((ps, node) => { const pNode = node as DefaultNodeModel; @@ -157,9 +158,11 @@ const debouncedPostPoss = debounce(postPoss, 500); const nodeListener = { selectionChanged: (e: BaseEvent) => { - const node = (e as BaseEntityEvent).entity; - if (node.getType() && node.getOptions().name) { - fireNodeSelected(node.getType(), node.getOptions().name); + if ((e as any).isSelected) { + const node = (e as BaseEntityEvent).entity; + if (node.getType() && node.getOptions().name) { + fireNodeSelected(node.getType(), node.getOptions().name); + } } }, positionChanged: (e: BaseEvent) => debouncedPostPoss(getNodeAndLinksPositions, (e as BaseEntityEvent).entity), @@ -250,7 +253,7 @@ export const showNode = (engine: DiagramEngine, message: EditorAddNodeMessage) = const isInLine = (pnt: PointModel, startLine: PointModel, endLine: PointModel) => { const L2 = (endLine.getX() - startLine.getX()) * (endLine.getX() - startLine.getX()) + (endLine.getY() - startLine.getY()) * (endLine.getY() - startLine.getY()); - if (L2 == 0) { + if (L2 === 0) { return false; } const r = ((pnt.getX() - startLine.getX()) * (endLine.getX() - startLine.getX()) + (pnt.getY() - startLine.getY()) * (endLine.getY() - startLine.getY())) / L2;