From ef5daece4a9e9184b7a37962a49f5a21d85314da Mon Sep 17 00:00:00 2001 From: Michael Wurster Date: Mon, 8 Feb 2021 17:14:22 +0100 Subject: [PATCH] Sidebar for research plugins and instance model retrieval (#532) Co-authored-by: Lukas Harzenetter --- .gitignore | 3 + org.eclipse.winery.accountability/pom.xml | 6 +- org.eclipse.winery.cli/pom.xml | 6 +- org.eclipse.winery.common/pom.xml | 6 +- org.eclipse.winery.compliance/pom.xml | 6 +- org.eclipse.winery.crawler/pom.xml | 6 +- org.eclipse.winery.edmm/pom.xml | 11 + .../winery/edmm/model/EdmmConverterTest.java | 26 +- .../toscalight/ToscaLightCheckerTest.java | 8 +- .../src/test/resources/logback-test.xml | 52 + .../src/app/canvas/canvas.component.ts | 23 +- .../edmmTransformationCheck.component.css | 2 +- .../edmmTransformationCheck.component.html | 57 +- .../edmmTransformationCheck.component.ts | 32 +- .../src/app/enricher/enricher.component.html | 2 +- .../app/group-view/group-view.component.html | 2 +- .../app/group-view/group-view.component.ts | 3 - .../src/app/navbar/navbar.component.html | 11 +- .../src/app/navbar/navbar.component.ts | 4 + .../src/app/node/node.component.ts | 19 +- .../manage-participants.component.html | 2 +- .../manage-participants.component.ts | 3 - .../problemDetection.component.html | 6 +- .../redux/actions/topologyRenderer.actions.ts | 10 + .../src/app/redux/actions/winery.actions.ts | 6 +- .../reducers/topologyRenderer.reducer.ts | 74 +- .../src/app/redux/reducers/winery.reducer.ts | 2 +- .../instanceModel.component.html | 57 ++ .../instanceModel/instanceModel.component.ts | 136 +++ .../instanceModel/instanceModel.service.ts | 58 ++ .../node-details/node-details-sidebar.ts | 38 +- .../nodeDetailsSidebar.component.ts | 47 +- .../abstractRefinementWebSocket.service.ts | 71 ++ .../refinementSidebar.component.html | 8 +- .../refinement/refinementWebSocket.service.ts | 55 +- .../research-plugins.component.html | 30 + .../research-plugins.component.ts | 52 + ...tailsSidebar.component.css => sidebar.css} | 2 +- .../topology-renderer.component.ts | 7 +- .../src/app/winery.component.html | 18 +- .../src/app/winery.component.ts | 48 +- .../topologymodeler/src/app/winery.module.ts | 4 + .../configuration.component.html | 8 +- .../requirementsOrCapabilities.component.ts | 7 +- .../WineryRepositoryConfiguration.service.ts | 1 + .../wineryRepository.feature.direct.ts | 8 +- .../src/css/wineryRepository.css | 4 +- org.eclipse.winery.frontends/pom.xml | 12 +- org.eclipse.winery.generators.ia/pom.xml | 6 +- org.eclipse.winery.model.adaptation/pom.xml | 8 +- .../instance/InstanceModelPluginChooser.java | 16 +- .../instance/InstanceModelRefinement.java | 88 ++ .../InstanceModelRefinementPlugin.java | 129 +++ .../instance/InstanceModelUtils.java | 204 ++++ .../plugins/MySqlDbRefinementPlugin.java | 102 ++ .../plugins/MySqlDbmsRefinementPlugin.java | 118 +++ .../plugins/PetClinicRefinementPlugin.java | 138 +++ .../plugins/SpringWebAppRefinementPlugin.java | 107 +++ .../plugins/TomcatRefinementPlugin.java | 126 +++ .../TopologyFragmentRefinement.java | 2 +- ...ementUtilsTestWithGitBackedRepository.java | 14 +- .../instance/InstanceModelRefinementTest.java | 268 ++++++ .../instance/InstanceModelUtilsTest.java | 146 +++ .../refinement/AbstractRefinementTest.java | 40 +- .../refinement/PermutationHelper.java | 60 +- .../refinement/tests/TestRefinementTest.java | 8 +- .../src/test/resources/authorized_keys | 1 + .../src/test/resources/winery.test | 27 + .../pom.xml | 6 +- ...atModelingTestWithGitBackedRepository.java | 2 +- .../pom.xml | 40 +- .../winery/model/tosca/TEntityTemplate.java | 1 - .../winery/model/tosca/TTopologyTemplate.java | 6 +- .../tosca/constants/OpenToscaBaseTypes.java | 3 + .../model/tosca/constants/ToscaBaseTypes.java | 2 + .../pom.xml | 6 +- .../xml/constants/OpenToscaBaseTypes.java | 40 - .../tosca/xml/constants/ToscaBaseTypes.java | 24 - .../model/tosca/xml/utils/ModelUtilities.java | 904 ------------------ org.eclipse.winery.repository.client/pom.xml | 6 +- org.eclipse.winery.repository.rest/pom.xml | 6 +- .../resources/apiData/RefinementTasks.java | 21 - .../rest/websockets/AbstractWebSocket.java | 64 ++ .../websockets/ConsistencyCheckWebSocket.java | 33 +- .../rest/websockets/GitWebSocket.java | 21 +- .../websockets/InstanceModelWebSocket.java | 141 +++ .../rest/websockets/RefinementWebSocket.java | 53 +- org.eclipse.winery.repository/pom.xml | 12 +- .../TestWithGitRepoAndSshServer.java | 199 ++++ .../JsonBasedMultiNamespaceManager.java | 11 +- .../repository/filebased/MultiRepository.java | 4 +- .../fulfillpolicies/PolicyComparison.java | 2 +- .../util/AllocationUtils.java | 2 +- .../repository/backend/BackendUtilsTest.java | 17 +- .../util/TopologyMappingsWrapperTest.java | 12 +- .../pom.xml | 6 +- .../pom.xml | 6 +- org.eclipse.winery.topologygraph/pom.xml | 6 +- .../matching/ToscaPrmPropertyMatcher.java | 70 +- .../matching/ToscaPropertyMatcher.java | 77 ++ .../transformation/ToscaTransformer.java | 6 +- .../matching/ToscaPrmPropertyMatcherTest.java | 10 +- pom.xml | 6 +- 103 files changed, 2926 insertions(+), 1566 deletions(-) create mode 100644 org.eclipse.winery.edmm/src/test/resources/logback-test.xml create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/instanceModel/instanceModel.component.html create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/instanceModel/instanceModel.component.ts create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/instanceModel/instanceModel.service.ts create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/refinement/abstractRefinementWebSocket.service.ts create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/research-plugins/research-plugins.component.html create mode 100644 org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/research-plugins/research-plugins.component.ts rename org.eclipse.winery.frontends/app/topologymodeler/src/app/sidebars/{node-details/nodeDetailsSidebar.component.css => sidebar.css} (94%) rename org.eclipse.winery.repository.rest/src/main/java/org/eclipse/winery/repository/rest/resources/apiData/RefinementWebSocketApiData.java => org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/InstanceModelPluginChooser.java (61%) create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/InstanceModelRefinement.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/InstanceModelRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/InstanceModelUtils.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/plugins/MySqlDbRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/plugins/MySqlDbmsRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/plugins/PetClinicRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/plugins/SpringWebAppRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/main/java/org/eclipse/winery/model/adaptation/instance/plugins/TomcatRefinementPlugin.java create mode 100644 org.eclipse.winery.model.adaptation/src/test/java/org/eclipse/winery/model/adaptation/instance/InstanceModelRefinementTest.java create mode 100644 org.eclipse.winery.model.adaptation/src/test/java/org/eclipse/winery/model/adaptation/instance/InstanceModelUtilsTest.java create mode 100644 org.eclipse.winery.model.adaptation/src/test/resources/authorized_keys create mode 100644 org.eclipse.winery.model.adaptation/src/test/resources/winery.test delete mode 100644 org.eclipse.winery.model/org.eclipse.winery.model.tosca.xml/src/main/java/org/eclipse/winery/model/tosca/xml/constants/OpenToscaBaseTypes.java delete mode 100644 org.eclipse.winery.model/org.eclipse.winery.model.tosca.xml/src/main/java/org/eclipse/winery/model/tosca/xml/constants/ToscaBaseTypes.java delete mode 100644 org.eclipse.winery.model/org.eclipse.winery.model.tosca.xml/src/main/java/org/eclipse/winery/model/tosca/xml/utils/ModelUtilities.java delete mode 100644 org.eclipse.winery.repository.rest/src/main/java/org/eclipse/winery/repository/rest/resources/apiData/RefinementTasks.java create mode 100644 org.eclipse.winery.repository.rest/src/main/java/org/eclipse/winery/repository/rest/websockets/AbstractWebSocket.java create mode 100644 org.eclipse.winery.repository.rest/src/main/java/org/eclipse/winery/repository/rest/websockets/InstanceModelWebSocket.java create mode 100644 org.eclipse.winery.repository/src/main/java/org/eclipse/winery/repository/TestWithGitRepoAndSshServer.java create mode 100644 org.eclipse.winery.topologygraph/src/main/java/org/eclipse/winery/topologygraph/matching/ToscaPropertyMatcher.java diff --git a/.gitignore b/.gitignore index d41186d7ff..85251e5790 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,9 @@ org.eclipse.winery.repository.ui/src/assets/build-code** # generated by CLi when executing with -cb copy.bara.sky copy.bara.sky +# generated by sshd +**/host.ser + ## Eclipse **/.classpath **/.settings diff --git a/org.eclipse.winery.accountability/pom.xml b/org.eclipse.winery.accountability/pom.xml index 0f4e5d720b..5714296f66 100644 --- a/org.eclipse.winery.accountability/pom.xml +++ b/org.eclipse.winery.accountability/pom.xml @@ -127,9 +127,9 @@ ${maven.surefire.version} - org.apache.maven.surefire - maven-surefire-common - ${maven.surefire.version} + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} diff --git a/org.eclipse.winery.cli/pom.xml b/org.eclipse.winery.cli/pom.xml index 47aac4f805..abe09f8a17 100644 --- a/org.eclipse.winery.cli/pom.xml +++ b/org.eclipse.winery.cli/pom.xml @@ -107,9 +107,9 @@ ${maven.surefire.version} - org.apache.maven.surefire - maven-surefire-common - ${maven.surefire.version} + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} diff --git a/org.eclipse.winery.common/pom.xml b/org.eclipse.winery.common/pom.xml index 31f3434291..6f20c47613 100644 --- a/org.eclipse.winery.common/pom.xml +++ b/org.eclipse.winery.common/pom.xml @@ -135,9 +135,9 @@ ${maven.surefire.version} - org.apache.maven.surefire - maven-surefire-common - ${maven.surefire.version} + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} diff --git a/org.eclipse.winery.compliance/pom.xml b/org.eclipse.winery.compliance/pom.xml index 41b91ba8ab..ae1ff8249d 100644 --- a/org.eclipse.winery.compliance/pom.xml +++ b/org.eclipse.winery.compliance/pom.xml @@ -91,9 +91,9 @@ ${maven.surefire.version} - org.apache.maven.surefire - maven-surefire-common - ${maven.surefire.version} + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} diff --git a/org.eclipse.winery.crawler/pom.xml b/org.eclipse.winery.crawler/pom.xml index 6425d05865..495d5e0ecb 100644 --- a/org.eclipse.winery.crawler/pom.xml +++ b/org.eclipse.winery.crawler/pom.xml @@ -149,9 +149,9 @@ ${maven.surefire.version} - org.apache.maven.surefire - maven-surefire-common - ${maven.surefire.version} + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} diff --git a/org.eclipse.winery.edmm/pom.xml b/org.eclipse.winery.edmm/pom.xml index 7ef924feb5..046f22481f 100644 --- a/org.eclipse.winery.edmm/pom.xml +++ b/org.eclipse.winery.edmm/pom.xml @@ -103,6 +103,17 @@ + + maven-surefire-plugin + ${maven.surefire.version} + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + + + diff --git a/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/model/EdmmConverterTest.java b/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/model/EdmmConverterTest.java index 01003e8d24..502beec179 100644 --- a/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/model/EdmmConverterTest.java +++ b/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/model/EdmmConverterTest.java @@ -43,7 +43,7 @@ protected EdmmConverterTest() throws UnsupportedEncodingException { void transformOneNodeTemplate() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_1")); + topology.addNodeTemplate(nodeTemplates.get("test_node_1")); // endregion TServiceTemplate serviceTemplate = new TServiceTemplate(); @@ -61,7 +61,7 @@ void transformOneNodeTemplate() { void transformDerivedFrom() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_2")); + topology.addNodeTemplate(nodeTemplates.get("test_node_2")); // endregion TServiceTemplate serviceTemplate = new TServiceTemplate(); @@ -83,7 +83,7 @@ void transformDerivedFrom() { void transformProperties() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_3")); + topology.addNodeTemplate(nodeTemplates.get("test_node_3")); // endregion TServiceTemplate serviceTemplate = new TServiceTemplate(); @@ -123,9 +123,9 @@ void transformProperties() { void transformTopologyWithRelationsAndRelationTypes() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_1")); - topology.addNodeTemplates(nodeTemplates.get("test_node_2")); - topology.addNodeTemplates(nodeTemplates.get("test_node_3")); + topology.addNodeTemplate(nodeTemplates.get("test_node_1")); + topology.addNodeTemplate(nodeTemplates.get("test_node_2")); + topology.addNodeTemplate(nodeTemplates.get("test_node_3")); topology.addRelationshipTemplate(relationshipTemplates.get("1_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("2_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("1_connects_to_2")); @@ -160,7 +160,7 @@ void transformTopologyWithRelationsAndRelationTypes() { void transformTopologyWithOperations() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_4")); + topology.addNodeTemplate(nodeTemplates.get("test_node_4")); // endregion TServiceTemplate serviceTemplate = new TServiceTemplate(); @@ -189,10 +189,10 @@ void transformTopologyWithOperations() { void transformTopology() { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_1")); - topology.addNodeTemplates(nodeTemplates.get("test_node_2")); - topology.addNodeTemplates(nodeTemplates.get("test_node_3")); - topology.addNodeTemplates(nodeTemplates.get("test_node_4")); + topology.addNodeTemplate(nodeTemplates.get("test_node_1")); + topology.addNodeTemplate(nodeTemplates.get("test_node_2")); + topology.addNodeTemplate(nodeTemplates.get("test_node_3")); + topology.addNodeTemplate(nodeTemplates.get("test_node_4")); topology.addRelationshipTemplate(relationshipTemplates.get("1_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("2_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("4_hosted_on_1")); @@ -212,8 +212,8 @@ void transformTopology() { " test_node_1:\n" + " type: software_component\n" + " relations:\n" + - " - hosted_on: test_node_3\n" + " - connects_to: test_node_2\n" + + " - hosted_on: test_node_3\n" + " artifacts:\n" + " - war: /artifacttemplates/https%3A%2F%2Fex.org%2Ftosca%2Fto%2Fedmm/startTestNode4/files/script.sh\n" + " test_node_3:\n" + @@ -223,9 +223,9 @@ void transformTopology() { " ssh_port: '22'\n" + " os_family: ubuntu\n" + " test_node_2:\n" + - " type: https_ex.orgtoscatoedmm__test_node_type_2\n" + " relations:\n" + " - hosted_on: test_node_3\n" + + " type: https_ex.orgtoscatoedmm__test_node_type_2\n" + " test_node_4:\n" + " operations:\n" + " stop: /artifacttemplates/https%3A%2F%2Fex.org%2Ftosca%2Fto%2Fedmm/startTestNode4/files/script.sh\n" + diff --git a/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/toscalight/ToscaLightCheckerTest.java b/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/toscalight/ToscaLightCheckerTest.java index c53063e75b..45b4f9c0dd 100644 --- a/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/toscalight/ToscaLightCheckerTest.java +++ b/org.eclipse.winery.edmm/src/test/java/org/eclipse/winery/edmm/toscalight/ToscaLightCheckerTest.java @@ -38,10 +38,10 @@ protected ToscaLightCheckerTest() throws UnsupportedEncodingException { void checkValidServiceTemplate() throws Exception { // region *** build the TopologyTemplate *** TTopologyTemplate.Builder topology = new TTopologyTemplate.Builder(); - topology.addNodeTemplates(nodeTemplates.get("test_node_1")); - topology.addNodeTemplates(nodeTemplates.get("test_node_2")); - topology.addNodeTemplates(nodeTemplates.get("test_node_3")); - topology.addNodeTemplates(nodeTemplates.get("test_node_4")); + topology.addNodeTemplate(nodeTemplates.get("test_node_1")); + topology.addNodeTemplate(nodeTemplates.get("test_node_2")); + topology.addNodeTemplate(nodeTemplates.get("test_node_3")); + topology.addNodeTemplate(nodeTemplates.get("test_node_4")); topology.addRelationshipTemplate(relationshipTemplates.get("1_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("2_hosted_on_3")); topology.addRelationshipTemplate(relationshipTemplates.get("4_hosted_on_1")); diff --git a/org.eclipse.winery.edmm/src/test/resources/logback-test.xml b/org.eclipse.winery.edmm/src/test/resources/logback-test.xml new file mode 100644 index 0000000000..d2e22d4e28 --- /dev/null +++ b/org.eclipse.winery.edmm/src/test/resources/logback-test.xml @@ -0,0 +1,52 @@ + + + + + + + + INFO + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%line %method - %msg%n + + + + + ${user.home}/winery-debug.log + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%line %method - %msg%n + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.eclipse.winery.frontends/app/topologymodeler/src/app/canvas/canvas.component.ts b/org.eclipse.winery.frontends/app/topologymodeler/src/app/canvas/canvas.component.ts index 1522aa0819..f4e764b905 100644 --- a/org.eclipse.winery.frontends/app/topologymodeler/src/app/canvas/canvas.component.ts +++ b/org.eclipse.winery.frontends/app/topologymodeler/src/app/canvas/canvas.component.ts @@ -12,7 +12,8 @@ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 ********************************************************************************/ import { - AfterViewInit, Component, ElementRef, HostListener, Input, KeyValueDiffers, NgZone, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, + AfterViewInit, Component, ElementRef, HostListener, Input, KeyValueDiffers, NgZone, OnChanges, OnDestroy, OnInit, + QueryList, Renderer2, SimpleChanges, ViewChild, ViewChildren } from '@angular/core'; import { JsPlumbService } from '../services/jsPlumb.service'; @@ -60,6 +61,7 @@ import { WineryRowData } from '../../../../tosca-management/src/app/wineryTableM import { InheritanceUtils } from '../models/InheritanceUtils'; import { PolicyService } from '../services/policy.service'; import { QName } from '../../../../shared/src/app/model/qName'; +import { DetailsSidebarState } from '../sidebars/node-details/node-details-sidebar'; @Component({ selector: 'winery-canvas', @@ -1540,21 +1542,8 @@ export class CanvasComponent implements OnInit, OnDestroy, OnChanges, AfterViewI * Hides the Sidebar on the right. */ hideSidebar() { - this.ngRedux.dispatch(this.actions.openSidebar({ - sidebarContents: { - visible: false, - nodeClicked: false, - template: { - id: '', - name: '', - type: '', - properties: '', - }, - relationshipTemplate: undefined, - source: '', - target: '', - } - })); + this.ngRedux.dispatch(this.actions.triggerSidebar( + { sidebarContents: new DetailsSidebarState(false) })); } /** @@ -1981,7 +1970,7 @@ export class CanvasComponent implements OnInit, OnDestroy, OnChanges, AfterViewI // Workaround to support old topology templates with the real name name = currentRel.type.substring(currentRel.type.indexOf('}') + 1); } - this.ngRedux.dispatch(this.actions.openSidebar({ + this.ngRedux.dispatch(this.actions.triggerSidebar({ sidebarContents: { visible: true, nodeClicked: false, diff --git a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.css b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.css index 5ee384a376..aadc08eb89 100644 --- a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.css +++ b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.css @@ -24,7 +24,7 @@ background-color: #d43f3a; } -.cursorpointer{ +.cursorPointer { cursor: pointer; } diff --git a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.html b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.html index 8e21eb23ab..7bebef30b7 100644 --- a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.html +++ b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.html @@ -11,32 +11,33 @@ ~ ~ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--> -
-
-
- - - - - + +
+ + + +
+
    +
  • +
    + {{ candidate.name }} supports: {{ (candidate.supports * 100) | number : '1.1-2' }} + %
    + + +
    +
  • +
-
+ + diff --git a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.ts b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.ts index 2377d620c7..f7c4f47726 100644 --- a/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.ts +++ b/org.eclipse.winery.frontends/app/topologymodeler/src/app/edmmTransformationCheck/edmmTransformationCheck.component.ts @@ -11,7 +11,7 @@ * * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 *******************************************************************************/ -import { Component } from '@angular/core'; +import { Component, OnDestroy, OnInit } from '@angular/core'; import { EdmmTechnologyTransformationCheck, EdmmTransformationCheckService } from './edmmTransformationCheck.service'; import { NgRedux } from '@angular-redux/store'; import { IWineryState } from '../redux/store/winery.store'; @@ -26,9 +26,8 @@ import { TTopologyTemplate } from '../models/ttopology-template'; EdmmTransformationCheckService ] }) -export class EdmmTransformationCheckComponent { +export class EdmmTransformationCheckComponent implements OnInit, OnDestroy { - isVisible = false; loading = false; checkResult: EdmmTechnologyTransformationCheck[]; @@ -36,32 +35,22 @@ export class EdmmTransformationCheckComponent { // this allows to show the replacement rules of the plugin selected currentCandidate: string = null; - private changeSubscription: Subscription; + private subscription: Subscription; public topologyTemplate: TTopologyTemplate; private numberRelations = 0; private numberNodes = 0; constructor(private service: EdmmTransformationCheckService, private ngRedux: NgRedux) { - this.ngRedux.select(state => state.topologyRendererState.buttonsState.edmmTransformationCheck) - .subscribe(value => { - if (value) { - this.init(); - } else { - this.hide(); - } - }); - this.ngRedux.select(currentState => currentState.wineryState.currentJsonTopology) - .subscribe(topologyTemplate => this.topologyTemplate = topologyTemplate); } - init() { + ngOnInit(): void { this.service.getOneToOneMap().subscribe(map => { this.oneToOneMap = map; }); - this.isVisible = true; - this.changeSubscription = this.ngRedux.select(state => state.wineryState.currentJsonTopology) + this.subscription = this.ngRedux.select(state => state.wineryState.currentJsonTopology) .subscribe(element => { + this.topologyTemplate = element; if (element.relationshipTemplates && element.relationshipTemplates.length !== this.numberRelations || element.nodeTemplates && element.nodeTemplates.length !== this.numberNodes) { this.numberRelations = element.relationshipTemplates.length; @@ -71,12 +60,11 @@ export class EdmmTransformationCheckComponent { }); } - hide() { - this.isVisible = false; - if (this.changeSubscription) { - this.changeSubscription.unsubscribe(); + ngOnDestroy(): void { + if (this.subscription) { + this.subscription.unsubscribe(); } - this.changeSubscription = null; + this.subscription = null; } doTransformationCheck() { diff --git a/org.eclipse.winery.frontends/app/topologymodeler/src/app/enricher/enricher.component.html b/org.eclipse.winery.frontends/app/topologymodeler/src/app/enricher/enricher.component.html index e3d299d371..c9e0b3ac71 100644 --- a/org.eclipse.winery.frontends/app/topologymodeler/src/app/enricher/enricher.component.html +++ b/org.eclipse.winery.frontends/app/topologymodeler/src/app/enricher/enricher.component.html @@ -12,7 +12,7 @@ ~ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--> -