From 5b15f2c84c0cc8a2db8e9cd379ed47f3f105addc Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Fri, 14 Oct 2016 10:01:12 -0700 Subject: [PATCH] New sample showing usage of spring-flo to visualize Spring Integration apps --- samples/spring-flo-si/LICENSE.txt | 202 +++++ samples/spring-flo-si/README.adoc | 42 + samples/spring-flo-si/imgs/basicGraph.png | Bin 0 -> 132665 bytes samples/spring-flo-si/imgs/numbersGraph.png | Bin 0 -> 107319 bytes samples/spring-flo-si/imgs/tooltip.png | Bin 0 -> 150899 bytes samples/spring-flo-si/pom.xml | 115 +++ .../org/springframework/flo/Application.java | 46 ++ .../src/main/resources/application.properties | 1 + .../src/main/resources/static/css/flosi.css | 189 +++++ .../main/resources/static/icons/delete.svg | 4 + .../src/main/resources/static/icons/error.svg | 12 + .../main/resources/static/icons/rotate.svg | 15 + .../src/main/resources/static/index.html | 41 + .../resources/static/js/editor-service.js | 450 +++++++++++ .../src/main/resources/static/js/flosi-app.js | 104 +++ .../main/resources/static/js/graph-to-text.js | 179 +++++ .../src/main/resources/static/js/main.js | 83 ++ .../resources/static/js/metamodel-sample.json | 90 +++ .../resources/static/js/metamodel-service.js | 161 ++++ .../resources/static/js/render-service.js | 746 ++++++++++++++++++ .../main/resources/static/js/text-to-graph.js | 273 +++++++ .../main/resources/static/js/update-graph.js | 232 ++++++ 22 files changed, 2985 insertions(+) create mode 100644 samples/spring-flo-si/LICENSE.txt create mode 100644 samples/spring-flo-si/README.adoc create mode 100644 samples/spring-flo-si/imgs/basicGraph.png create mode 100644 samples/spring-flo-si/imgs/numbersGraph.png create mode 100644 samples/spring-flo-si/imgs/tooltip.png create mode 100755 samples/spring-flo-si/pom.xml create mode 100755 samples/spring-flo-si/src/main/java/org/springframework/flo/Application.java create mode 100644 samples/spring-flo-si/src/main/resources/application.properties create mode 100644 samples/spring-flo-si/src/main/resources/static/css/flosi.css create mode 100644 samples/spring-flo-si/src/main/resources/static/icons/delete.svg create mode 100644 samples/spring-flo-si/src/main/resources/static/icons/error.svg create mode 100644 samples/spring-flo-si/src/main/resources/static/icons/rotate.svg create mode 100755 samples/spring-flo-si/src/main/resources/static/index.html create mode 100644 samples/spring-flo-si/src/main/resources/static/js/editor-service.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/flosi-app.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/graph-to-text.js create mode 100755 samples/spring-flo-si/src/main/resources/static/js/main.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/metamodel-sample.json create mode 100644 samples/spring-flo-si/src/main/resources/static/js/metamodel-service.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/render-service.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/text-to-graph.js create mode 100644 samples/spring-flo-si/src/main/resources/static/js/update-graph.js diff --git a/samples/spring-flo-si/LICENSE.txt b/samples/spring-flo-si/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/samples/spring-flo-si/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/samples/spring-flo-si/README.adoc b/samples/spring-flo-si/README.adoc new file mode 100644 index 0000000..f02deac --- /dev/null +++ b/samples/spring-flo-si/README.adoc @@ -0,0 +1,42 @@ +# A sample app using spring-flo to visualize Spring Integration applications + +This sample uses flo as a live viewer for Spring Integration applications. + +This https://spring.io/blog/2016/04/26/spring-integration-4-3-m2-is-available[blog] discusses +how to activate the new endpoint in a Spring Integration application. When +the endpoint is active in your SI application, just enter that into the spring +flo viewer. You should then see something like this: + +image::imgs/basicGraph.png[width="800"] + +# Running the sample + +A basic Spring Boot app is used to serve the sample. Launch it with: + + mvn spring-boot:run + +then open `http://localhost:8082`. In the `Spring Integration Graph Endpoint` +field enter the url for the spring integration data, for example: `http://localhost:8080/integration` +and the graph should load. + + +# Using the application + +Once the graph is loaded you can drag nodes around to adjust the layout. (Press the `Read-Only` +button to prevent moving nodes around). Hovering over a node will show a tool tip with more +information for that element. If you hover over a channel you will see many stats about +traffic flowing over that channel: + +image::imgs/tooltip.png[width="500"] + +It is possible to select one of those stats of interest and have it shown directly on the graph. +Simply select what you are interested in and enter the name of that stat in the `Link label path` +field at the top. The values for that stat will then be shown on the links between graph +elements: + +image::imgs/numbersGraph.png[width="800"] + +If you enter a Refresh rate (minimal allowed is 250ms) then that stat will actually +update on the graph at that rate with a small animation indicating where on the graph changes +in value are occurring. + diff --git a/samples/spring-flo-si/imgs/basicGraph.png b/samples/spring-flo-si/imgs/basicGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..66104fe94d586521652b5d31330ac593b183e389 GIT binary patch literal 132665 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 KF8a1r(EkA_mC;TB literal 0 HcmV?d00001 diff --git a/samples/spring-flo-si/imgs/numbersGraph.png b/samples/spring-flo-si/imgs/numbersGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a0fac4d048fae2660412831b995669fe710b0c GIT binary patch literal 107319 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 literal 0 HcmV?d00001 diff --git a/samples/spring-flo-si/imgs/tooltip.png b/samples/spring-flo-si/imgs/tooltip.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ee0645fe7dc94cfcc3b7cfddb9f0cc65b2a0e7 GIT binary patch literal 150899 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�P<&G{S8>hViqsU!-)BP6IyBhSRwi4DeX5(l}XaY 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�kJn0g-AC`@f{)hNO0vz8?QJ)K({|(g?dDk{K89Y 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 + + 4.0.0 + + org.springframework + spring-flo-sample-si + 0.0.1.BUILD-SNAPSHOT + jar + + spring-flo-sample + Spring Flo Sample + + + org.springframework.boot + spring-boot-starter-parent + 1.3.2.RELEASE + + + + + + + + org.webjars.bower + codemirror + 5.1.0 + + + org.webjars.bower + angular + 1.3.8 + + + org.webjars.bower + jshint + 2.8.0 + + + org.webjars.bower + requirejs + 2.1.18 + + + org.webjars.bower + jquery + 2.2.0 + + + org.webjars.bower + lodash + 3.10.1 + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.webjars + webjars-locator + 0.31 + + + org.webjars.bower + requirejs-domready + 2.0.1 + + + org.webjars.bower + requirejs-text + 2.0.15 + + + org.webjars.bower + jointjs + 0.9.7 + + + org.webjars.bower + json5 + 0.4.0 + + + org.webjars.bower + spring-flo + 0.5.0 + + + org.webjars.bower + joint + + + + + + + UTF-8 + org.springframework.flo.Application + 1.7 + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/samples/spring-flo-si/src/main/java/org/springframework/flo/Application.java b/samples/spring-flo-si/src/main/java/org/springframework/flo/Application.java new file mode 100755 index 0000000..df6784f --- /dev/null +++ b/samples/spring-flo-si/src/main/java/org/springframework/flo/Application.java @@ -0,0 +1,46 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.flo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +/** + * + * @author Andy Clement + * @author Alex Boyko + */ +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +// @Bean +// public WebMvcConfigurer corsConfigurer() { +// return new WebMvcConfigurerAdapter() { +// @Override +// public void addCorsMappings(CorsRegistry registry) { +// registry.addMapping("/").allowedOrigins("http://localhost:9000"); +// } +// }; +// } +} diff --git a/samples/spring-flo-si/src/main/resources/application.properties b/samples/spring-flo-si/src/main/resources/application.properties new file mode 100644 index 0000000..8d51d0c --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/application.properties @@ -0,0 +1 @@ +server.port=8082 \ No newline at end of file diff --git a/samples/spring-flo-si/src/main/resources/static/css/flosi.css b/samples/spring-flo-si/src/main/resources/static/css/flosi.css new file mode 100644 index 0000000..dcf5a95 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/css/flosi.css @@ -0,0 +1,189 @@ + +.header { + font-weight: 400; + font-family: "Roboto",sans-serif; + font-size: 36px; + color: #ffffff; + padding: 2px; + background-color: #283E49; + border: none; +/* border-top: 4px solid #6db33f; */ + z-index: 1; +} + +.input-label-div { + font-family: "Roboto",sans-serif; + font-size: 18px; + color: #ffffff; + display: inline-block; +} + +#labelpath { + width: 200px; +} + +#refreshrate { + width: 100px; +} + +.inputfield { + font-family: "Roboto",sans-serif; + font-size: 18px; +} + +#endpoint { + font-family: "Roboto",sans-serif; + font-size: 18px; + width: 400px; +} + +#endpoint-button { + font-family: "Roboto",sans-serif; + font-size: 18px; + height:80px; +} + +body { + background-color: #283E49; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +} + +.control-button { + width: 16px; + height: 16px; +} + +.header-small { + font: 300 24px "Helvetica Neue"; +} + +pre { + font-size: 18px; +} + +.border-selected { + stroke: #34302d; + stroke-width: 3; +} + +.controls { + border-radius: 2px; + border: solid; + border-color: #283E49; + padding: 5px; + margin-top: 3px; + background-color: #283E49; + border-width: 1px; +} + +.button { + color: #ffffff; + background-image: none; + border-radius: 2px; + background-color: #00B0A7; + font-size: 18px; + line-height: 14px; + font-family: "Roboto",sans-serif; + border: 2px solid #00B0A7; + padding: 5px 20px; + text-shadow: none; +} + +.button span { + background-color: #34302d; + background-image: none; + border-radius: 2px; + color: #f1f1f1; + font-size: 14px; + line-height: 14px; + font-family: Montserrat,sans-serif; + border: 2px solid #6db33f; + padding: 5px 20px; + text-shadow: none; +} + +.button input { + background-color: #34302d; + background-image: none; + color: #f1f1f1; + font-size: 14px; + font-family: Montserrat,sans-serif; + text-shadow: none; + border: 0px; + text-align:right; +} + +button.off { + background-color: #00B0A7; + color: #283E49; +} + +.flow-definition-container { + display: none; + border: 1px solid; + border-color: #283E49; + border-radius: 2px; + margin-top: 3px; + background-color: #ffffff; + font-family: monospace; + z-index: 2; + width:100%; + height:100px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +textarea:input { + outline: none; + border: 1px solid #6db33f; +} + +textarea:input:focus { + outline: none; + border: 1px solid #000000; +} +.canvas { + border-color: #283E49; +} +.flow-definition { + border: 5px; + height:100%; + width:100%; + font-size: 16px; + resize: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* The text label on the nodes */ + +.label { + font-family: 'Ubuntu Mono'; + font-size: 12px; + color: black; +} + + +/* The class for the 'icon/unicode_char' on the nodes */ +.label2 { + font-size: 18px; +} + +[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { + display: none !important; +} + +.box { + stroke: #283e49; +} + + +.node-tooltip-option-name { + font-family: 'Ubuntu Mono', monospace; +} diff --git a/samples/spring-flo-si/src/main/resources/static/icons/delete.svg b/samples/spring-flo-si/src/main/resources/static/icons/delete.svg new file mode 100644 index 0000000..5b3f988 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/icons/delete.svg @@ -0,0 +1,4 @@ + + + + diff --git a/samples/spring-flo-si/src/main/resources/static/icons/error.svg b/samples/spring-flo-si/src/main/resources/static/icons/error.svg new file mode 100644 index 0000000..c6c8388 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/icons/error.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/samples/spring-flo-si/src/main/resources/static/icons/rotate.svg b/samples/spring-flo-si/src/main/resources/static/icons/rotate.svg new file mode 100644 index 0000000..9248e1b --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/icons/rotate.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/samples/spring-flo-si/src/main/resources/static/index.html b/samples/spring-flo-si/src/main/resources/static/index.html new file mode 100755 index 0000000..2f3f8a7 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/index.html @@ -0,0 +1,41 @@ + + + + Spring Integration Viewer + + + + + + + + + +

+
+ Spring Integration Graph endpoint: + + +     Link label path: + +     Refresh rate (ms): + +
+
+ +
+ + +
+
+ + +
+
+
+ + diff --git a/samples/spring-flo-si/src/main/resources/static/js/editor-service.js b/samples/spring-flo-si/src/main/resources/static/js/editor-service.js new file mode 100644 index 0000000..0fa4e11 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/editor-service.js @@ -0,0 +1,450 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @author Alex Boyko + * @author Andy Clement + */ +define(function(require) { + 'use strict'; + + var joint = require('joint'); + + return ['$log', function($log) { + + function createHandles(flo, createHandle, element) { + var bbox = element.getBBox(); + var pt = bbox.origin().offset(bbox.width + 3, bbox.height + 3); + createHandle(element, 'remove', flo.deleteSelectedNode, pt); + } + + function validatePort(/*flo, cellView, magnet*/) { + return true; + } + + function validateLink(flo, cellViewS, magnetS, cellViewT, magnetT/*, end, linkView*/) { + // Prevent linking from input ports. + if (magnetS && magnetS.getAttribute('type') === 'input') { + return false; + } + // Prevent linking from output ports to input ports within one element. + if (cellViewS === cellViewT) { + return false; + } + // Prevent linking to input ports. + if (magnetT && magnetT.getAttribute('type') === 'output') { + return false; + } + return cellViewS.model && cellViewT.model && !(cellViewS.model instanceof joint.shapes.flo.ErrorDecoration) && !(cellViewT.model instanceof joint.shapes.flo.ErrorDecoration); + } + + function preDelete(flo, cell) { + repairDamage(flo, cell); + } + + function handleNodeDropping(flo, dragDescriptor) { + // this is a viewer not an editor, so do not adjust the graph structure + } + + function calculateDragDescriptor(flo, draggedView, targetUnderMouse, point, context) { + // check if it's a tap being dragged + var source = draggedView.model; + if ((targetUnderMouse instanceof joint.dia.Element) && source.attr('metadata/name') === 'tap') { // jshint ignore:line + return { + context: context, + source: { + cell: draggedView.model, + }, + target: { + cell: targetUnderMouse, + } + }; + } + + // Find closest port + var range = 30; + var graph = flo.getGraph(); + var paper = flo.getPaper(); + var closestData; + var minDistance = Number.MAX_VALUE; + var maxIcomingLinks = draggedView.model.attr('metadata/constraints/maxIncomingLinksNumber'); + var maxOutgoingLinks = draggedView.model.attr('metadata/constraints/maxOutgoingLinksNumber'); + var hasIncomingPort = typeof maxIcomingLinks !== 'number' || maxIcomingLinks > 0; + var hasOutgoingPort = typeof maxOutgoingLinks !== 'number' || maxOutgoingLinks > 0; + if (!hasIncomingPort && !hasOutgoingPort) { + return; + } + var elements = graph.findModelsInArea(joint.g.rect(point.x - range, point.y - range, 2 * range, 2 * range)); // jshint ignore:line + if (Array.isArray(elements)) { + elements.forEach(function(model) { + var view = paper.findViewByModel(model); + if (view && view !== draggedView && model instanceof joint.dia.Element) { // jshint ignore:line + var targetMaxIcomingLinks = view.model.attr('metadata/constraints/maxIncomingLinksNumber'); + var targetMaxOutgoingLinks = view.model.attr('metadata/constraints/maxOutgoingLinksNumber'); + var targetHasIncomingPort = typeof targetMaxIcomingLinks !== 'number' || targetMaxIcomingLinks > 0; + var targetHasOutgoingPort = typeof targetMaxOutgoingLinks !== 'number' || targetMaxOutgoingLinks > 0; + if (view.model.attr('metadata/constraints/xorSourceSink')) { + if (targetHasIncomingPort) { + targetHasIncomingPort = targetHasIncomingPort && graph.getConnectedLinks(view.model, { outbound: true }).length === 0; + } + if (targetHasOutgoingPort) { + targetHasOutgoingPort = targetHasOutgoingPort && graph.getConnectedLinks(view.model, { inbound: true }).length === 0; + } + } + if (draggedView.model.attr('metadata/constraints/xorSourceSink')) { + if (hasIncomingPort) { + targetHasOutgoingPort = targetHasOutgoingPort && graph.getConnectedLinks(view.model, { outbound: true }).length === 0; + } + if (hasOutgoingPort) { + targetHasIncomingPort = targetHasIncomingPort && graph.getConnectedLinks(view.model, { inbound: true }).length === 0; + } + } + view.$('[magnet]').each(function(index, magnet) { + var type = magnet.getAttribute('type'); + if ((type === 'input' && targetHasIncomingPort && hasOutgoingPort) || (type === 'output' && targetHasOutgoingPort && hasIncomingPort)) { + var bbox = joint.V(magnet).bbox(false, paper.viewport); // jshint ignore:line + var distance = point.distance({ + x: bbox.x + bbox.width / 2, + y: bbox.y + bbox.height / 2 + }); + if (distance < range && distance < minDistance) { + minDistance = distance; + closestData = { + context: context, + source: { + cell: draggedView.model, + selector: type === 'output' ? '.input-port' : '.output-port' + }, + target: { + cell: model, + selector: '.' + type+'-port' + }, + range: minDistance + }; + } + } + }); + } + }); + } + if (closestData) { + return closestData; + } + + // Check if drop on a link is allowed + if (targetUnderMouse instanceof joint.dia.Link && !(source.attr('metadata/constraints/xorSourceSink') || source.attr('metadata/constraints/maxOutgoingLinksNumber') === 0 || source.attr('metadata/constraints/maxIncomingLinksNumber') === 0) && graph.getConnectedLinks(source).length === 0) { // jshint ignore:line + return { + context: context, + source: { + cell: source + }, + target: { + cell: targetUnderMouse + } + }; + } + + return { + context: context, + source: { + cell: source + }, + }; + } + + function validateNode(flo, element) { + var errors = []; + var graph = flo.getGraph(); + var constraints = element.attr('metadata/constraints'); + if (constraints) { + var incoming = graph.getConnectedLinks(element, {inbound: true}); + var outgoing = graph.getConnectedLinks(element, {outbound: true}); + if (typeof constraints.maxIncomingLinksNumber === 'number' || typeof constraints.minIncomingLinksNumber === 'number') { + if (typeof constraints.maxIncomingLinksNumber === 'number' && constraints.maxIncomingLinksNumber < incoming.length) { + if (constraints.maxIncomingLinksNumber === 0) { + errors.push({ + message: 'Sources must appear at the start of a stream', + range: element.attr('range') + }); + } else { + errors.push({ + message: 'Max allowed number of incoming links is ' + constraints.maxIncomingLinksNumber, + range: element.attr('range') + }); + } + } + if (typeof constraints.minIncomingLinksNumber === 'number' && constraints.minIncomingLinksNumber > incoming.length) { + errors.push({ + message: 'Min allowed number of incoming links is ' + constraints.minIncomingLinksNumber, + range: element.attr('range') + }); + } + } + if (typeof constraints.maxOutgoingLinksNumber === 'number' || typeof constraints.minOutgoingLinksNumber === 'number') { + if (typeof constraints.maxOutgoingLinksNumber === 'number' && constraints.maxOutgoingLinksNumber < outgoing.length) { + if (constraints.maxOutgoingLinksNumber === 0) { + errors.push({ + message: 'Sinks must appear at the end of a stream', + range: element.attr('range') + }); + } else { + errors.push({ + message: 'Max allowed number of outgoing links is ' + constraints.maxOutgoingLinksNumber, + range: element.attr('range') + }); + } + } + if (typeof constraints.minOutgoingLinksNumber === 'number' && constraints.minOutgoingLinksNumber > outgoing.length) { + errors.push({ + message: 'Min allowed number of outgoing links is ' + constraints.minOutgoingLinksNumber, + range: element.attr('range') + }); + } + } + if (constraints.xorSourceSink && incoming.length && outgoing.length) { + errors.push({ + message: 'Node can either have incoming or outgoing links, but not both', + range: element.attr('range') + }); + } + } + if (!element.attr('metadata') || element.attr('metadata/unresolved')) { + var msg = 'Unknown element \'' + element.attr('metadata/name') + '\''; + if (element.attr('metadata/group')) { + msg += ' from group \'' + element.attr('metadata/group') + '\'.'; + } + errors.push({ + message: msg, + range: element.attr('range') + }); + } + + // If possible, verify the properties specified match those allowed on this type of element + // propertiesRanges are the ranges for each property included the entire '--name=value'. + // The format of a range is {'start':{'ch':NNNN,'line':NNNN},'end':{'ch':NNNN,'line':NNNN}} + var propertiesRanges = element.attr('propertiesranges'); + if (propertiesRanges) { + var moduleSchema = element.attr('metadata'); + // Grab the list of supported properties for this module type + moduleSchema.get('properties').then(function(moduleSchemaProperties) { + if (!moduleSchemaProperties) { + moduleSchemaProperties = {}; + } + // Example moduleSchemaProperties: + // {"host":{"name":"host","type":"String","description":"the hostname of the mail server","defaultValue":"localhost","hidden":false}, + // "password":{"name":"password","type":"String","description":"the password to use to connect to the mail server ","defaultValue":null,"hidden":false} + var specifiedProperties = element.attr('props'); + Object.keys(specifiedProperties).forEach(function(propertyName) { + if (!moduleSchemaProperties[propertyName]) { + // The schema does not mention that property + var propertyRange = propertiesRanges[propertyName]; + if (propertyRange) { + errors.push({ + message: 'unrecognized option \''+propertyName+'\' for module \''+element.attr('metadata/name')+'\'', + range: propertyRange + }); + } + } + }); + }); + } + + return errors; + } + + function moveNodeOnNode(flo, node, pivotNode, side, shouldRepairDamage) { + side = side || 'left'; + if (canSwap(flo, node, pivotNode, side)) { + var link; + var i; + if (side === 'left') { + var sources = []; + if (shouldRepairDamage) { + /* + * Commented out because it doesn't prevent cycles. + */ +// if (graph.getConnectedLinks(pivotNode, {inbound: true}).length > 0 || graph.getConnectedLinks(node, {outbound: true}).length > 0) { + repairDamage(flo, node); +// } + } + var pivotTargetLinks = flo.getGraph().getConnectedLinks(pivotNode, {inbound: true}); + for (i = 0; i < pivotTargetLinks.length; i++) { + link = pivotTargetLinks[i]; + sources.push(link.get('source').id); + link.remove(); + } + for (i = 0; i < sources.length; i++) { + flo.createLink({ + 'id': sources[i], + 'selector': '.output-port' + }, { + 'id': node.id, + 'selector': '.input-port' + }); + } + flo.createLink({ + 'id': node.id, + 'selector': '.output-port' + }, { + 'id': pivotNode.id, + 'selector': '.input-port' + }); + } else if (side === 'right') { + var targets = []; + if (shouldRepairDamage) { + /* + * Commented out because it doesn't prevent cycles. + */ +// if (graph.getConnectedLinks(pivotNode, {outbound: true}).length > 0 || graph.getConnectedLinks(node, {inbound: true}).length > 0) { + repairDamage(flo, node); +// } + } + var pivotSourceLinks = flo.getGraph().getConnectedLinks(pivotNode, {outbound: true}); + for (i = 0; i < pivotSourceLinks.length; i++) { + link = pivotSourceLinks[i]; + targets.push(link.get('target').id); + link.remove(); + } + for (i = 0; i < targets.length; i++) { + flo.createLink({ + 'id': node.id, + 'selector': '.output-port' + }, { + 'id': targets[i], + 'selector': '.input-port' + }); + } + flo.createLink({ + 'id': pivotNode.id, + 'selector': '.output-port' + }, { + 'id': node.id, + 'selector': '.input-port' + }); + } + } + } + + function moveNodeOnLink(flo, node, link, shouldRepairDamage) { + var source = link.get('source').id; + var target = link.get('target').id; + + if (shouldRepairDamage) { + repairDamage(flo, node); + } + link.remove(); + + if (source) { + flo.createLink({ + 'id': source, + 'selector': '.output-port' + }, { + 'id': node.id, + 'selector': '.input-port' + }); + } + if (target) { + flo.createLink({ + 'id': node.id, + 'selector': '.output-port' + }, { + 'id': target, + 'selector': '.input-port' + }); + } + } + + function repairDamage(flo, node) { + /* + * remove incoming, outgoing links and cache their sources and targets not equal to current node + */ + var sources = []; + var targets = []; + var i = 0; + var links = flo.getGraph().getConnectedLinks(node); + for (i = 0; i < links.length; i++) { + var targetId = links[i].get('target').id; + var sourceId = links[i].get('source').id; + if (targetId === node.id) { + links[i].remove(); + sources.push(sourceId); + } else if (sourceId === node.id) { + links[i].remove(); + targets.push(targetId); + } + } + /* + * best attempt to connect source and targets bypassing the node + */ + if (sources.length === 1) { + var source = sources[0]; + for (i = 0; i < targets.length; i++) { + flo.createLink({ + 'id': source, + 'selector': '.output-port' + }, { + 'id': targets[i], + 'selector': '.input-port' + }); + } + } else if (targets.length === 1) { + var target = targets[0]; + for (i = 0; i < sources.length; i++) { + flo.createLink({ + 'id': sources[i], + 'selector': '.output-port' + }, { + 'id': target, + 'selector': '.input-port' + }); + } + } + } + + /** + * Check if node being dropped and drop target node next to each other such that they won't be swapped by the drop + */ + function canSwap(flo, dropee, target, side) { + var i, targetId, sourceId, noSwap = (dropee.id === target.id); + if (dropee === target) { + $log.debug('What!??? Dragged == Dropped!!! id = ' + target); + } + var links = flo.getGraph().getConnectedLinks(dropee); + for (i = 0; i < links.length && !noSwap; i++) { + targetId = links[i].get('target').id; + sourceId = links[i].get('source').id; + noSwap = (side === 'left' && targetId === target.id && sourceId === dropee.id) || (side === 'right' && targetId === dropee.id && sourceId === target.id); + } + return !noSwap; + } + + return { + 'createHandles': createHandles, + 'validatePort': validatePort, + 'validateLink': validateLink, + 'calculateDragDescriptor': calculateDragDescriptor, + 'handleNodeDropping': handleNodeDropping, + 'validateNode': validateNode, + 'preDelete': preDelete, + 'interactive': { + 'vertexAdd': false + }, + 'allowLinkVertexEdit': false + }; + + }]; + +}); diff --git a/samples/spring-flo-si/src/main/resources/static/js/flosi-app.js b/samples/spring-flo-si/src/main/resources/static/js/flosi-app.js new file mode 100644 index 0000000..25278fa --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/flosi-app.js @@ -0,0 +1,104 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @author Alex Boyko + * @author Andy Clement + */ +define(function(require) { + 'use strict'; + var angular = require('angular'); + require('flo'); + var app = angular.module('floSiApp', [ 'spring.flo' ]); + app.factory('SampleMetamodelService', require('metamodel-service')); + app.factory('SampleRenderService', require('render-service')); + app.factory('SampleEditorService', require('editor-service')); + + app.controller('SiController', ['$scope', '$http', 'SampleMetamodelService', function($scope, $http, metamodelService) { + $scope.endpoint = 'http://localhost:8080/integration'; + $scope.labelpath = "stats.sendcount"; + $scope.refreshrate=0; + + var refreshTimer; + + $scope.load = function(endpoint) { + console.log("Loading from endpoint: '"+endpoint+"'"); + $scope.endpoint = endpoint; + // Load the graph from the endpoint + $http.get(endpoint, { }).success(function(json) { + // console.log("JSON is "+json); + // console.log("it is "+$('#endpoint').val()); + // $('#flow-definition').val('foo'); + $scope.definition.text = JSON.stringify(json); + $scope.flo.updateGraphRepresentation(); + }).error(function(err) { + console.log(err); + }); + }; + + $scope.updateRefreshRate = function(newRefreshRate) { + console.log("Update refresh rate: '"+newRefreshRate+"'"); + $scope.refreshrate=newRefreshRate; + if (refreshTimer) { + clearTimeout(refreshTimer); + } + if (newRefreshRate >0) { + if (newRefreshRate < 250) { + $scope.refreshrate = 250; + } + var refresher = function() { + refresh(); + refreshTimer = setTimeout(function() { refresher() }, $scope.refreshrate); + } + refreshTimer = setTimeout(refresher, $scope.refreshrate); + } else { + $scope.refreshrate=0; + } + } + + function refresh() { + $http.get($scope.endpoint, { }).success(function(json) { + metamodelService.updateGraphLabels($scope.flo, JSON.stringify(json), $scope.labelpath); + }).error(function(err) { + console.log(err); + }); + } + + $scope.updateLabelPath = function(newLabelPath) { + console.log("Update label path: '"+newLabelPath+"'"); + $scope.labelpath = newLabelPath; + // Update the graph from the endpoint + $http.get($scope.endpoint, { }).success(function(json) { + metamodelService.updateGraphLabels($scope.flo, JSON.stringify(json), newLabelPath); + }).error(function(err) { + console.log(err); + }); + }; + + }]).directive('ngEnter', function() { + return function(scope, element, attrs) { + element.bind("keydown keypress", function(event) { + if(event.which === 13) { + scope.$apply(function(){ + scope.$eval(attrs.ngEnter); + }); + event.preventDefault(); + } + }); + }; + }); + return app; +}); diff --git a/samples/spring-flo-si/src/main/resources/static/js/graph-to-text.js b/samples/spring-flo-si/src/main/resources/static/js/graph-to-text.js new file mode 100644 index 0000000..cb375bb --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/graph-to-text.js @@ -0,0 +1,179 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Convert a graph to a text representation. + * + * @author Alex Boyko + * @author Andy Clement + */ +define(function() { + 'use strict'; + + // Graph + var g; + + // Number of Links left to visit + var numberOfLinksToVisit; + + // Number of nodes left to visit + var numberOfNodesToVisit; + + // Map of links left to visit indexed by id + var linksToVisit; + + // Map of nodes left to visit indexed by id + var nodesToVisit; + + // Map of nodes incoming non-visited links degrees index by node id + var nodesInDegrees; + + // Priority: + // 1. find links whose source has no other links pointing at it + // 2. find links whose source has already been processed (not currently needed in sample DSL since + // can't create graphs like that due to metamodel constraints) + // 3. find remaining links + function nextLink() { + var indegree = Number.MAX_INT; + var currentBest; + for (var id in linksToVisit) { + var link = g.getCell(id); + var source = g.getCell(link.get('source').id); + var currentInDegree = nodesInDegrees[source.get('id')]; + if (currentInDegree === 0) { + return visit(link); + } else if (indegree > currentInDegree) { + indegree = currentInDegree; + currentBest = link; + } + } + if (currentBest) { + return visit(currentBest); + } + } + + function visit(e) { + if (e.isLink()) { + delete linksToVisit[e.get('id')]; + nodesInDegrees[e.get('target').id]--; + numberOfLinksToVisit--; + } else { + delete nodesToVisit[e.get('id')]; + numberOfNodesToVisit--; + } + return e; + } + + function init(graph) { + numberOfLinksToVisit = 0; + numberOfNodesToVisit = 0; + linksToVisit = {}; + nodesToVisit = {}; + nodesInDegrees = {}; + g = graph; + g.getElements().forEach(function(element) { + if (element.attr('metadata/name')) { // is it a node? + nodesToVisit[element.get('id')] = element; + var indegree = 0; + g.getConnectedLinks(element, {inbound: true}).forEach(function(link) { + if (link.get('source') && link.get('source').id && g.getCell(link.get('source').id) && + g.getCell(link.get('source').id).attr('metadata/name')) { + linksToVisit[link.get('id')] = link; + numberOfLinksToVisit++; + indegree++; + } + }); + nodesInDegrees[element.get('id')] = indegree; + numberOfNodesToVisit++; + } + }); + } + + /** + * Starts at a link and proceeds down a chain. Converts each node to + * text and then joins them with a ' > '. + */ + function chainToText(link) { + var text = ''; + var source = g.getCell(link.get('source').id); + text += nodeToText(source, true); + while (link) { + var target = g.getCell(link.get('target').id); + text += ' > '; + text += nodeToText(target, false); + + // Find next not visited link to follow + link = null; + var outgoingLinks = g.getConnectedLinks(target, {outbound: true}); + for (var i = 0; i < outgoingLinks.length && !link; i++) { + if (linksToVisit[outgoingLinks[i].get('id')]) { + source = target; + link = visit(outgoingLinks[i]); + } + } + } + return text; + } + + /** + * Very basic format. From a node to the text: + * "name --key=value --key=value" + */ + function nodeToText(element) { + var text = ''; + var props = element.attr('props'); + if (!element) { + return; + } + text += element.attr('metadata/name'); + if (props) { + Object.keys(props).forEach(function(propertyName) { + text += ' --' + propertyName + '=' + props[propertyName]; + }); + } + visit(element); + return text; + } + + function appendChainText(text, chainText) { + if (chainText) { + if (text) { + text += '\n'; + } + text += chainText; + } + return text; + } + + // Translate a graph into a basic string + return function(g) { + var text = ''; + var chainText; + var id; + init(g); + while (numberOfLinksToVisit) { + chainText = chainToText(nextLink()); + text = appendChainText(text, chainText); + } + // Visit all disconnected nodes + for (id in nodesToVisit) { + chainText = nodeToText(nodesToVisit[id], true); + text = appendChainText(text, chainText); + } + return text; + }; + +}); \ No newline at end of file diff --git a/samples/spring-flo-si/src/main/resources/static/js/main.js b/samples/spring-flo-si/src/main/resources/static/js/main.js new file mode 100755 index 0000000..24733bd --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/main.js @@ -0,0 +1,83 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @author Alex Boyko + * @author Andy Clement + */ +requirejs.config({ + baseUrl:'js', + paths: { + joint: '/webjars/jointjs/dist/joint', + backbone: '/webjars/backbone/backbone', + domReady: '/webjars/requirejs-domready/domReady', + angular: '/webjars/angular/angular', + jquery: '/webjars/jquery/dist/jquery', + bootstrap:'/webjars/bootstrap/bootstrap', + lodash: '/webjars/lodash/lodash', // lodash.compat + dagre: '/webjars/dagre/dist/dagre.core', + graphlib: '/webjars/graphlib/graphlib.core', + text : '/webjars/requirejs-text/text', + flo : '/webjars/spring-flo/dist/spring-flo', + json5 : '/webjars/json5/json5' + }, + map: { + '*': { + // Backbone requires underscore. This forces requireJS to load lodash instead: + 'underscore': 'lodash' + } + }, + packages: [ + { + name: 'codemirror', + location: '../lib/codemirror', + main: 'lib/codemirror' + } + ], + shim: { + angular: { + deps: ['bootstrap'], + exports: 'angular' + }, + bootstrap: { + deps: ['jquery'] + }, + graphlib: { + deps: ['underscore'] + }, + dagre: { + deps: ['graphlib', 'underscore'] + }, + joint: { + deps: ['jquery', 'underscore', 'backbone'], + }, + underscore: { + exports: '_' + }, + 'flo': { + deps: ['angular', 'jquery', 'joint', 'underscore'] + } + } +}); + +define(['require','angular'], function (require, angular) { + 'use strict'; + require(['domReady!', 'flosi-app'], + function (document) { + angular.bootstrap(document, ['floSiApp']); + } + ); +}); diff --git a/samples/spring-flo-si/src/main/resources/static/js/metamodel-sample.json b/samples/spring-flo-si/src/main/resources/static/js/metamodel-sample.json new file mode 100644 index 0000000..4313f82 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/metamodel-sample.json @@ -0,0 +1,90 @@ +[ +{ + 'name':'general', 'group':'general', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'service-activator', 'group':'messaging-endpoints', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'message-handler', 'group':'messaging-endpoints', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'gateway', 'group':'messaging-endpoints', 'description':'Gateway', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'splitter', 'group':'routing', 'description':'Splitter', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } + } +, +{ + 'name':'router', 'group':'routing', 'description':'Router', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'transformer', 'group':'transformation', 'description':'Transformer', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'bridge', 'group':'routing', 'description':'Bridge', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'channel', 'group':'connectors', 'description':'Channel', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'publish-subscribe-channel', 'group':'connectors', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'test-producer', 'group':'producers', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'BareHandler', 'group':'producers', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +}, +{ + 'name':'filter', 'group':'routing', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'aggregator', 'group':'routing', 'description':'Produce an output message after correlating some set of incoming messages', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'logging-channel-adapter', 'group':'connectors', 'description':'?', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'chain', 'group':'messaging-endpoints', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'inbound-channel-adapter', 'group':'messaging-endpoints', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +, +{ + 'name':'outbound-channel-adapter', 'group':'messaging-endpoints', 'description':'', + 'constraints':{ 'maxIncomingLinksNumber':10, 'maxOutgoingLinksNumber':10 } +} +] \ No newline at end of file diff --git a/samples/spring-flo-si/src/main/resources/static/js/metamodel-service.js b/samples/spring-flo-si/src/main/resources/static/js/metamodel-service.js new file mode 100644 index 0000000..4f5d7b3 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/metamodel-service.js @@ -0,0 +1,161 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @author Alex Boyko + * @author Andy Clement + */ +define(function(require) { + 'use strict'; + + require('json5'); + + var convertGraphToText = require('graph-to-text'); + var convertTextToGraph = require('text-to-graph'); + var updateGraph = require('update-graph'); + + return ['$http', '$q', '$timeout', '$log', 'MetamodelUtils', function($http, $q, $timeout, $log, metamodelUtils) { + + var metamodel; + + // Internally stored metamodel load promise + var request; + + var statsProperties = [ + {'name':'name','default':'?', 'description':'name'}, + {'name':'id','default':'?', 'description':'node id'}, + {'name':'componentType','default':'','description':'Detailed component type'}, + {'name':'stats.loggingEnabled', 'default': '?', 'description':'?' }, + {'name':'stats.statsEnabled', 'default': '?', 'description':'?' }, + {'name':'stats.countsEnabled', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.count', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.min', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.max', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.mean', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.standardDeviation', 'default': '?', 'description':'?' }, + {'name':'stats.sendRate.countLong', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.count', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.min', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.max', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.mean', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.standardDeviation', 'default': '?', 'description':'?' }, + {'name':'stats.errorRate.countLong', 'default': '?', 'description':'?' }, + {'name':'stats.sendCount', 'default': '?', 'description':'?' }, + {'name':'stats.sendErrorCount', 'default': '?', 'description':'?' }, + {'name':'stats.timeSinceLastSend', 'default': '?', 'description':'?' }, + {'name':'stats.meanSendRate', 'default': '?', 'description':'?' }, + {'name':'stats.meanErrorRate', 'default': '?', 'description':'?' }, + {'name':'stats.meanErrorRatio', 'default': '?', 'description':'?' }, + {'name':'stats.meanSendDuration', 'default': '?', 'description':'?' }, + {'name':'stats.minSendDuration', 'default': '?', 'description':'?' }, + {'name':'stats.maxSendDuration', 'default': '?', 'description':'?' }, + {'name':'stats.standardDeviationSendDuration', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.count', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.min', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.max', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.mean', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.standardDeviation', 'default': '?', 'description':'?' }, + {'name':'stats.sendDuration.countLong', 'default': '?', 'description':'?' }]; + + /** + * Helper that goes from basic JSON to a lazy getter structure. Useful when the + * metamodel is 'cheap' to build. If it is costly to discover the actual properties + * the getter may be more complex (e.g. make a REST request). + */ + function createMetadata(entry) { + var props = {}; + if (!entry.properties) { + // use the default stats properties + entry.properties = JSON.parse(JSON.stringify(statsProperties)); + } + if (Array.isArray(entry.properties)) { + entry.properties.forEach(function(property) { + if (!property.id) { + property.id = property.name; + } + props[property.id] = property; + }); + } + entry.properties = props; + return { + name: entry.name, + group: entry.group, + icon: entry.icon, + constraints: entry.constraints, + description: entry.description, + metadata: entry.metadata, + properties: entry.properties, + get: function(property) { + var deferred = $q.defer(); + if (entry.hasOwnProperty(property)) { + deferred.resolve(entry[property]); + } else { + deferred.reject(); + } + return deferred.promise; + } + }; + } + + function load() { + // COULDDO: to cache the result here, check result before doing this processing + // and simply return it if it is set. If doing that may want to override refresh + // in this service + var metamodelData = JSON5.parse(require('text!metamodel-sample.json')); + var deferred = $q.defer(); + var newData = {}; + metamodelData.forEach(function(data) { + var metadata = createMetadata(data); + if (!newData[metadata.group]) { + newData[metadata.group] = {}; + } + newData[metadata.group][metadata.name] = metadata; + }); + metamodel = newData; + deferred.resolve(metamodel); + request = deferred.promise; + return request; + } + + function graphToText(flo, definition) { + definition.text = convertGraphToText(flo.getGraph()); + } + + function updateGraphLabels(flo, text, labelpath) { + updateGraph(text, flo.getGraph(), labelpath); + } + + function textToGraph(flo, definition) { + // TODO perhaps push these flo operations into the 'caller' to make this simpler + flo.getGraph().clear(); + load().then(function(metamodel) { + convertTextToGraph(definition.text, flo, metamodel, metamodelUtils); + updateGraph(definition.text,flo.getGraph(),'stats.sendcount'); + flo.performLayout(); + flo.fitToPage(); + }); + } + + return { + 'load': load, + 'textToGraph': textToGraph, + 'updateGraphLabels': updateGraphLabels, + 'graphToText': graphToText + }; + + }]; + +}); diff --git a/samples/spring-flo-si/src/main/resources/static/js/render-service.js b/samples/spring-flo-si/src/main/resources/static/js/render-service.js new file mode 100644 index 0000000..e54d5af --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/render-service.js @@ -0,0 +1,746 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @author Alex Boyko + * @author Andy Clement + */ +define(function(require) { + 'use strict'; + + var joint = require('joint'); + + var dagre = require('dagre'); + + var HANDLE_ICON_MAP = { + 'remove': 'icons/delete.svg', + }; + + var DECORATION_ICON_MAP = { + 'error': 'icons/error.svg' + }; + + var IMAGE_W = 120, + IMAGE_H = 40; + + var HORIZONTAL_PADDING = 10; + + joint.shapes.si = {}; + + joint.routers.floforintegration = (function() { + + // expands a box by specific value + function expand(bbox, val) { + return joint.g.rect(bbox).moveAndExpand({ x: -val, y: -val, width: 2 * val, height: 2 * val }); + } + + function routeAround(exp, ref, anchor, opt) { + + var anchorSide = exp.sideNearestToPoint(anchor); + var expAnchor = exp.pointNearestToPoint(anchor); + var line = joint.g.line(ref, anchor); + var center = exp.center(); + var intersection; + var pts = []; + + if (anchorSide !== 'top') { + intersection = line.intersection(joint.g.line(exp.origin(), exp.topRight())); + if (intersection) { + if (anchorSide === 'bottom') { + if (intersection.x - exp.x + expAnchor.x - exp.x <= exp.width) { + pts = [exp.origin(), exp.bottomLeft()]; + } else { + pts = [exp.topRight(), exp.corner()]; + } + } else { + if (anchorSide === 'left') { + pts = [exp.origin()]; + } else { + pts = [exp.topRight()]; + } + } + if (opt.includeExtraPoints) { + pts.push(expAnchor); + } + return pts; + } + } + + if (anchorSide !== 'bottom') { + intersection = line.intersection(joint.g.line(exp.corner(), exp.bottomLeft())); + if (intersection) { + if (anchorSide === 'top') { + if (intersection.x - exp.x + expAnchor.x - exp.x <= exp.width) { + pts = [exp.bottomLeft(), exp.origin()]; + } else { + pts = [exp.corner(), exp.topRight()]; + } + } else { + if (anchorSide === 'left') { + pts = [exp.bottomLeft()]; + } else { + pts = [exp.corner()]; + } + } + if (opt.includeExtraPoints) { + pts.push(expAnchor); + } + return pts; + } + } + + if (anchorSide !== 'left') { + intersection = line.intersection(joint.g.line(exp.origin(), exp.bottomLeft())); + if (intersection) { + if (anchorSide === 'right') { + if (intersection.y - exp.y + expAnchor.y - exp.y <= exp.height) { + pts = [exp.origin(), exp.topRight()]; + } else { + pts = [exp.bottomLeft(), exp.corner()]; + } + } else { + if (anchorSide === 'top') { + pts = [exp.origin()]; + } else { + pts = [exp.bottomLeft()]; + } + } + if (opt.includeExtraPoints) { + pts.push(expAnchor); + } + return pts; + } + } + + if (anchorSide !== 'right') { + intersection = line.intersection(joint.g.line(exp.topRight(), exp.corner())); + if (intersection) { + if (anchorSide === 'left') { + if (intersection.y - exp.y + expAnchor.y - exp.y <= exp.height) { + pts = [exp.topRight(), exp.origin()]; + } else { + pts = [exp.corner(), exp.bottomLeft()]; + } + } else { + if (anchorSide === 'top') { + pts = [exp.topRight()]; + } else { + pts = [exp.corner()]; + } + } + if (opt.includeExtraPoints) { + pts.push(expAnchor); + } + return pts; + } + } + + return pts; + } + + function findRoute(vx, opt, linkView) { + + var vertices = opt.metro ? joint.routers.metro(vx, opt, linkView) : vx; + var sourceRoute = [], targetRoute = []; + + var paper = linkView.paper; + var reference = vertices.length ? vertices[0] : joint.g.rect(linkView.targetBBox).center(); + var sourceAnchorPt = paper.options.linkConnectionPoint(linkView, linkView.sourceView, linkView.sourceMagnet, reference); + var targetAnchorPt = paper.options.linkConnectionPoint(linkView, linkView.targetView, linkView.targetMagnet, sourceAnchorPt); + var padding = opt.elementPadding || 20; + + if (linkView.sourceView) { + var expSource = expand(linkView.sourceView.model.getBBox(), padding); + while (vertices.length && expSource.containsPoint(vertices[0])) { + vertices.splice(0, 1); + } + var sourceRef = vertices.length ? joint.g.point(vertices[0]) : targetAnchorPt; + sourceRoute = routeAround(expSource, sourceRef, sourceAnchorPt, opt).reverse(); + } + if (linkView.targetView) { + var expTarget = expand(linkView.targetView.model.getBBox(), padding); + while (vertices.length && expTarget.containsPoint(vertices[vertices.length - 1])) { + vertices.splice(vertices.length - 1, 1); + } + var targetRef = vertices.length ? joint.g.point(vertices[vertices.length - 1]) : sourceAnchorPt; + + targetRoute = routeAround(expTarget, targetRef, targetAnchorPt, opt); + } + + return sourceRoute.concat(vertices).concat(targetRoute); + }; + + return findRoute; + + })(); + + joint.shapes.si.Channel = joint.shapes.basic.Generic.extend({ + + markup: + ''+ + '' + + ''+ + ''+ + ''+ + ''+ + '' + +// ''+ + ''+ + ''+ + '', + + defaults: joint.util.deepSupplement({ + type: 'channel',//joint.shapes.flo.NODE_TYPE, + position: {x: 0, y: 0}, + size: { width: 100, height: 40 }, + attrs: { + '.': { + magnet: false, + }, + '.the_shape': { + 'stroke':'#000000' + }, + // rounded edges around image +// '.border': { +// width: IMAGE_W, +// height: IMAGE_H, +// rx: 2, +// ry: 2, +// 'fill-opacity':0, // see through +// stroke: '#eeeeee', +// 'stroke-width': 0, +// }, +// '.box': { +// width: IMAGE_W, +// height: IMAGE_H, +// rx: 2, +// ry: 2, +// //'fill-opacity':0, // see through +// stroke: '#6db33f', +// fill: '#eeeeee', +// 'stroke-width': 2, +// }, + '.input-port': { + type: 'input', + port: 'input', + r:4, + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + -2 + ',' + ((20/2)-2+10) + ')', + stroke: '#34302d', + 'stroke-width': 1, + }, + '.output-port': { + type: 'output', + port: 'output', + r:4, + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + (100+8-2) + ',' + ((20/2)-2+10) + ')', + stroke: '#34302d', + 'stroke-width': 1, + }, +// '.tap-port': { +// type: 'output', +// port: 'tap', +// r: 4, +// magnet: true, +// fill: '#eeeeee', +// 'ref-x': 0.5, +// 'ref-y': 0.99999999, +// ref: '.border', +// stroke: '#34302D' +// }, + '.label': { + 'ref-x': 0.5, // jointjs specific: relative position to ref'd element + 'ref-y': 0.525, + 'y-alignment': 'middle', + 'x-alignment' : 'middle', + ref: '.the_shape', // jointjs specific: element for ref-x, ref-y + fill: 'black', + 'stroke': 'black', + 'font-size': '12px', + 'font-family': 'Ubuntu Mono', + 'color': 'black' + }, + '.label2': { + 'y-alignment': 'middle', + 'ref-x': HORIZONTAL_PADDING+2, // jointjs specific: relative position to ref'd element + 'ref-y': 0.55, // jointjs specific: relative position to ref'd element + ref: '.border', // jointjs specific: element for ref-x, ref-y + fill: 'black', + 'font-size': 20 + }, +// '.stream-label': { +// 'x-alignment': 'middle', +// 'y-alignment': -0.999999, +// 'ref-x': 0.5, // jointjs specific: relative position to ref'd element +// 'ref-y': 0, // jointjs specific: relative position to ref'd element +// ref: '.border', // jointjs specific: element for ref-x, ref-y +// fill: '#AAAAAA', +// 'font-size': 15 +// }, +// '.shape': { +// } + } + }, joint.shapes.basic.Generic.prototype.defaults) + }); + + + joint.shapes.si.Node = joint.shapes.basic.Generic.extend({ + markup: + ''+ + '' + + '' + + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '', + + defaults: joint.util.deepSupplement({ + + type: 'node',//joint.shapes.flo.NODE_TYPE, + position: {x: 0, y: 0}, + size: { width: IMAGE_W, height: IMAGE_H }, + attrs: { + '.': { magnet: false }, + // rounded edges around image + '.border': { + width: IMAGE_W, + height: IMAGE_H, + rx: 3, + ry: 3, + 'fill-opacity':0, // see through + stroke: '#eeeeee', + 'stroke-width': 0 + }, + + '.box': { + width: IMAGE_W, + height: IMAGE_H, + rx: 3, + ry: 3, + //'fill-opacity':0, // see through + stroke: '#6db33f', + fill: '#eeeeee', + 'stroke-width': 1 + }, + '.input-port': { + type: 'input', + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + -2 + ',' + ((IMAGE_H/2)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.output-port': { + type: 'output', + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + (IMAGE_W-2) + ',' + ((IMAGE_H/2)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.error-port': { + type: 'output', + height: 4, width: 4, + magnet: true, + fill: '#ff0000', + transform: 'translate(' + (IMAGE_W/2-2) + ',' + ((IMAGE_H)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.label': { + 'text-anchor': 'middle', + 'ref-x': 0.5, // jointjs specific: relative position to ref'd element + // 'ref-y': -12, // jointjs specific: relative position to ref'd element + 'ref-y': 0.3, + ref: '.border', // jointjs specific: element for ref-x, ref-y + fill: 'black', + 'font-size': 14 + }, + '.label2': { + 'text': '\u21d2', + 'text-anchor': 'middle', + 'ref-x': 0.15, // jointjs specific: relative position to ref'd element + 'ref-y': 0.15, // jointjs specific: relative position to ref'd element + ref: '.border', // jointjs specific: element for ref-x, ref-y + transform: 'translate(' + (IMAGE_W/2) + ',' + (IMAGE_H/2) + ')', + fill: 'black', + 'font-size': 24 + }, + '.shape': { + }, + '.image': { + width: IMAGE_W, + height: IMAGE_H + } + } + }, joint.shapes.basic.Generic.prototype.defaults) + }); + + joint.shapes.si.ServiceActivator = joint.shapes.basic.Generic.extend({ + markup: + ''+ + '' + + '' + + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + , + + + defaults: joint.util.deepSupplement({ + + type: 'node',//joint.shapes.flo.NODE_TYPE, + position: {x: 0, y: 0}, + size: { width: IMAGE_W, height: IMAGE_H }, + attrs: { + '.': { magnet: false }, + // rounded edges around image + '.border': { + width: IMAGE_W, + height: IMAGE_H, + rx: 3, + ry: 3, + 'fill-opacity':0, // see through + stroke: '#eeeeee', + 'stroke-width': 0 + }, + '.arrowGray': { + 'stroke':'#aaaaaa', + 'stroke-width':'2', + 'fill': '#aaaaaa' + }, + '.arrowBlack': { + 'stroke':'black', + 'stroke-width':'2', + 'fill': 'black' + }, + '.blockSolid': { + 'stroke':'#000000', + 'stroke-width':'2', + 'fill': 'black' + }, + '.blockEmpty': { + 'stroke':'#000000', + 'stroke-width':'2', + 'fill': 'white' + }, + '.box': { + width: IMAGE_W, + height: IMAGE_H, + rx: 3, + ry: 3, + //'fill-opacity':0, // see through + stroke: '#6db33f', + fill: '#eeeeee', + 'stroke-width': 1 + }, + '.input-port': { + type: 'input', + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + -2 + ',' + ((IMAGE_H/2)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.output-port': { + type: 'output', + height: 4, width: 4, + magnet: true, + fill: '#eeeeee', + transform: 'translate(' + (IMAGE_W-2) + ',' + ((IMAGE_H/2)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.error-port': { + type: 'output', + height: 4, width: 4, + magnet: true, + fill: '#ff0000', + transform: 'translate(' + (IMAGE_W/2-2) + ',' + ((IMAGE_H)-2) + ')', + stroke: '#34302d', + 'stroke-width': 1 + }, + '.label': { + 'text-anchor': 'middle', + 'ref-x': 0.5, // jointjs specific: relative position to ref'd element +// 'ref-y': -12, // jointjs specific: relative position to ref'd element + 'ref-y': 0.3, + ref: '.border', // jointjs specific: element for ref-x, ref-y + fill: 'black', + 'font-size': 14 + }, + '.label2': { + 'text': '\u21d2', + 'text-anchor': 'middle', + 'ref-x': 0.15, // jointjs specific: relative position to ref'd element + 'ref-y': 0.15, // jointjs specific: relative position to ref'd element + ref: '.border', // jointjs specific: element for ref-x, ref-y + transform: 'translate(' + (IMAGE_W/2) + ',' + (IMAGE_H/2) + ')', + fill: 'black', + 'font-size': 24 + }, + '.shape': { + }, + '.image': { + width: IMAGE_W, + height: IMAGE_H + } + } + }, joint.shapes.basic.Generic.prototype.defaults) + }); + + + return ['$log', function($log) { + + function createHandle(kind) { + return new joint.shapes.flo.ErrorDecoration({ + size: {width: 10, height: 10}, + attrs: { + 'image': { + 'xlink:href': HANDLE_ICON_MAP[kind] + } + } + }); + } + + function createDecoration(kind) { + return new joint.shapes.flo.ErrorDecoration({ + size: {width: 16, height: 16}, + attrs: { + 'image': { + 'xlink:href': DECORATION_ICON_MAP[kind] + } + } + }); + } + + function createNode(metadata, props) { + if (metadata.name === 'channel' || metadata.name === 'publish-subscribe-channel') { + return new joint.shapes.si.Channel(); + } else if (metadata.name === 'service-activator') { + return new joint.shapes.si.ServiceActivator(); + } else { + return new joint.shapes.si.Node(); + } + } + + function initializeNewNode(node, context) { + var metadata = node.attr('metadata'); + if (metadata) { + node.attr('.label/text', node.attr('metadata/name')); + if (node.attr('metadata/constraints/maxIncomingLinksNumber') === 0) { + node.attr('.input-port/display','none'); + } + if (node.attr('metadata/constraints/maxOutgoingLinksNumber') === 0) { + node.attr('.output-port/display','none'); + } + + var type = node.attr('metadata/name'); + if (type === 'tap') { + if (!node.attr('props/channel')) { + node.attr('props/channel', 'tap:stream:STREAM'); + } + refreshVisuals(node, 'props/channel', context.paper); + } else if (type === 'named-channel') { + // Default channel for named channel is 'queue:default' + if (!node.attr('props/channel')) { + node.attr('props/channel', 'queue:default'); + } + refreshVisuals(node, 'props/channel', context.paper); + } + } + node.attr('.label2/text',''); + + } + + function validateNode(flo, node) { + return []; + } + + function fitLabel(paper, node, labelPath) { + var label = node.attr(labelPath); + if (label && label.length<9) { + return; + } + var view = paper.findViewByModel(node); + if (view && label) { + var textView = view.findBySelector(labelPath.substr(0, labelPath.indexOf('/')))[0]; + var offset = 0; + if (node.attr('.label2/text')) { + var label2View = view.findBySelector('.label2')[0]; + if (label2View) { + var box = joint.V(label2View).bbox(false, paper.viewport); + offset = HORIZONTAL_PADDING + box.width; + } + } + var width = joint.V(textView).bbox(false, paper.viewport).width; + var threshold = IMAGE_W - HORIZONTAL_PADDING - HORIZONTAL_PADDING - offset; + if (offset) { + node.attr('.label1/ref-x', Math.max((offset + HORIZONTAL_PADDING + width / 2) / IMAGE_W, 0.5), { silent: true }); + } + // Trim package prefix + + if (!label.endsWith('?')) { +// console.log("modifying label "+label); + // Sample name: com.foo.method(a.b.c.Order) + var openParen = label.indexOf('('); + if (openParen !== -1) { + label = label.substring(0,openParen); + } + width = joint.V(textView).bbox(false, paper.viewport).width; + if (width > threshold) { + var lastDot = label.lastIndexOf('.'); + if (lastDot !== -1) { + label = label.substring(lastDot+1); + } + console.log('driving label change'); + node.attr(labelPath, label, { silent: true }); + view.update(); + width = joint.V(textView).bbox(false, paper.viewport).width; + for (var i = 1; i < label.length && width > threshold; i++) { + node.attr(labelPath, label.substr(0, label.length - i) + '\u2026', { silent: true }); + view.update(); + width = joint.V(textView).bbox(false, paper.viewport).width; + if (offset) { + node.attr('.label1/ref-x', Math.max((offset + HORIZONTAL_PADDING + width / 2) / IMAGE_W, 0.5), { silent: true }); + } + } + } + } +// view.update(); + } + } + + function createLink() { + var link = new joint.shapes.flo.Link(joint.util.deepSupplement({ + router: { name: 'floforintegration', args: {elementPadding: 20/*, metro: true*/} }, + connector: { name: 'smooth' }, + attrs: { + '.': { + //filter: { name: 'dropShadow', args: { dx: 1, dy: 1, blur: 2 } } + }, + '.connection': { 'stroke-width': 3, 'stroke': 'black', 'stroke-linecap': 'round' }, + '.marker-arrowheads': { display: 'none' }, + '.tool-options': { display: 'none' }, + 'stroke':'red' // TODO necessary? + }, + }, joint.shapes.flo.Link.prototype.defaults)); + return link; + } + + function isSemanticProperty(propertyPath) { + return propertyPath === '.label/text'; + } + + function refreshVisuals(element, changedPropertyPath, paper) { + fitLabel(paper, element, '.label/text'); + } + + function layout(paper) { + var graph = paper.model; + var i; + var g = new dagre.graphlib.Graph(); + g.setGraph({}); + g.setDefaultEdgeLabel(function() {return{};}); + + var nodes = graph.getElements(); + for (i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (node.get('type') === joint.shapes.flo.NODE_TYPE) { + g.setNode(node.id, node.get('size')); + } + } + + var links = graph.getLinks(); + for (i = 0; i < links.length; i++) { + var link = links[i]; + if (link.get('type') === joint.shapes.flo.LINK_TYPE) { + var options = { + minlen: 1.5 + }; +// if (link.get('labels') && link.get('labels').length > 0) { +// options.minlen = 1 + link.get('labels').length * 0.5; +// } + g.setEdge(link.get('source').id, link.get('target').id, options); + link.set('vertices', []); + } + } + + g.graph().rankdir = 'LR'; + dagre.layout(g); + g.nodes().forEach(function(v) { + var node = graph.getCell(v); + if (node) { + var bbox = node.getBBox(); + node.translate(g.node(v).x - bbox.x, g.node(v).y - bbox.y); + } + }); + } + + function getLinkAnchorPoint(linkView, view, magnet, reference) { + if (magnet) { + var cssClass = magnet.getAttribute('class'); + var bbox = joint.V(magnet).bbox(false, linkView.paper.viewport); + var rect = joint.g.rect(bbox); + if (cssClass.indexOf('input-port') !== -1) { + return joint.g.point(rect.x, rect.y + rect.height / 2); + } else if (cssClass.indexOf('error-port') !== -1) { + return joint.g.point(rect.x + rect.width / 2, rect.y + rect.height); + } else { + return joint.g.point(rect.x + rect.width, rect.y + rect.height / 2); + } + } else { + $log.debug('No magnet!'); + return reference; + } + } + + return { + 'createHandle': createHandle, + 'createDecoration': createDecoration, + 'createNode': createNode, + 'createLink': createLink, + 'initializeNewNode': initializeNewNode, + 'isSemanticProperty': isSemanticProperty, + 'refreshVisuals': refreshVisuals, + 'layout': layout, + 'getLinkAnchorPoint': getLinkAnchorPoint + }; + + }]; + +}); diff --git a/samples/spring-flo-si/src/main/resources/static/js/text-to-graph.js b/samples/spring-flo-si/src/main/resources/static/js/text-to-graph.js new file mode 100644 index 0000000..8a7bf91 --- /dev/null +++ b/samples/spring-flo-si/src/main/resources/static/js/text-to-graph.js @@ -0,0 +1,273 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Convert a text representation to a graph. + * + * @author Alex Boyko + * @author Andy Clement + */ +define(function(require) { + 'use strict'; + var joint = require('joint'); + + function collapseOneLevel(prefix, obj, collector) { + var type = typeof obj; + if (obj == null) { + collector[prefix] = null; + return; + } + if (type === 'object') { + Object.keys(obj).forEach(function(key) { + collapseOneLevel(prefix.length==0?key:prefix+'.'+key,obj[key],collector); + }); + } else if (type === 'array') { + for (var i=0;i0.975) p = 0; + setTimeout(function() {animate(link,p)},25); + } + } + + + return function(input, flo, metamodel, metamodelUtils) { + // input is a string like this (3 nodes: foo, goo and hoo): foo --a=b --c=d > goo --d=e --f=g>hoo + var trimmed = input.trim(); + if (trimmed.length===0) { + return; + } + var getMetadata = function(type) { + var group = metamodelUtils.matchGroup(metamodel, type, 1, 1); + var md = metamodelUtils.getMetadata(metamodel, type, group); + if (!md || md.unresolved) { + var secondAttempt; + // Examples: mail:outbound-channel-adapter or file:inbound-channel-adapter + if (type.indexOf("inbound-channel-adapter")!=-1) { + type = "inbound-channel-adapter"; + group = metamodelUtils.matchGroup(metamodel, type, 1, 1); + secondAttempt = metamodelUtils.getMetadata(metamodel, type, group); + if (secondAttempt && !secondAttempt.unresolved) { + md = secondAttempt; + } + } else if (type.indexOf("outbound-channel-adapter")!=-1) { + type = "outbound-channel-adapter"; + group = metamodelUtils.matchGroup(metamodel, type, 1, 1); + secondAttempt = metamodelUtils.getMetadata(metamodel, type, group); + if (secondAttempt && !secondAttempt.unresolved) { + md = secondAttempt; + } + } else { + // use the general one - this will ensure validation is OK and tooltips work but + // we aren't really sure what type it is. + type = 'general'; + group = metamodelUtils.matchGroup(metamodel, type, 1, 1); + secondAttempt = metamodelUtils.getMetadata(metamodel, type, group); + if (secondAttempt && !secondAttempt.unresolved) { + md = secondAttempt; + } + } + } + return md; + } + var integrationGraph = JSON.parse(input); + var nodes = integrationGraph.nodes; + var nodesMap = {}; + for (var i=0;i goo --d=e --f=g>hoo + var trimmed = input.trim(); + if (trimmed.length===0) { + return; + } + var integrationGraph = JSON.parse(input); + var nodes = integrationGraph.nodes; + var graphNodes = graph.getElements(); + var map = {}; + var linksToVisit = graph.getLinks(); + graphNodes.forEach(function(element) { + if (element.attr('metadata/name')) { // is it a node? +// if (!element.get('source')) { + map[element.attr('props/id')] = element; + } else { + linksToVisit.push(element); + } + }); + function toLabel(text) { + var string = text.toString(); + if (string.length>5) { + string = string.substring(0,5); + if (string.endsWith('.')) { + string = string.substring(0,4); + } + return string; + } + return text; + } + // Go through nodes, updating properties + for (var i=0;i