",{id:"palette-floater"}).appendTo(t("body"));var o=new n.dia.Graph;o.attributes.type=n.shapes.flo.FEEDBACK_TYPE;var u=new n.dia.Paper({el:t("#palette-floater"),elementView:l&&i.isFunction(l.getNodeView)?l.getNodeView():n.dia.ElementView,gridSize:10,model:o,height:400,width:200,validateMagnet:function(){return!1},validateConnection:function(){return!1}}),a=r.createNode({renderService:l,paper:u,graph:o,metadata:s}),f=u.findViewByModel(a).getBBox(),c=a.get("size");a.translate(f.width-c.width,f.height-c.height),v=u.findViewByModel(a),t("#palette-floater").offset({left:e.pageX+5,top:e.pageY+5})}else t("#palette-floater").offset({left:e.pageX+5,top:e.pageY+5}),m("drag",{dragged:v,evt:e})}function y(e){return e.extend({pointerdown:function(){t(".node-tooltip").remove(),d=this.model,d.attr("metadata")&&t(document).on("mousemove",g)},pointermove:function(){},events:{mouseenter:function(e){if(e.buttons)return;var t=this.model,n=t.attr("metadata");if(!n)return;this.showTooltip(e.pageX,e.pageY)},mouseleave:function(){this.hideTooltip()},mousemove:function(e){this.moveTooltip(e.pageX,e.pageY)}},showTooltip:function(e,n){var r=this.model,i=r.attr("metadata"),s=document.createElement("div");t(s).addClass("node-tooltip"),t(s).appendTo(t("body")).fadeIn("fast");var u=document.createElement("div");t(s).addClass("tooltip-description"),t(s).append(u),i.get("description").then(function(e){t(u).text(e?e:r.attr("metadata/name"))},function(){t(u).text(r.attr("metadata/name"))}),(!i.metadata||!i.metadata["hide-tooltip-options"])&&i.get("properties").then(function(e){e&&Object.keys(e).sort().forEach(function(n){var r=document.createElement("div"),i=document.createElement("span"),o=document.createElement("span");t(i).addClass("node-tooltip-option-name"),t(o).addClass("node-tooltip-option-description"),t(i).text(e[n].name),t(o).text(e[n].description),t(r).append(i),t(r).append(o),t(s).append(r)})},function(e){e&&o.error(e)});var a=e+10,f=n+10;t(".node-tooltip").css({top:f,left:a})},hideTooltip:function(){t(".node-tooltip").remove()},moveTooltip:function(e,n){var r=e+10,i=n+10;t(".node-tooltip").css({top:i,left:r})}})}function b(e,t){var r=new n.shapes.flo.PaletteGroupHeader({attrs:{text:{text:e}}});return r.set("header",e),t||(r.attr({path:{transform:"rotate(-90,15,13)"}}),r.set("isOpen",!1)),c.addCell(r),r}function w(e,t){return r.createNode({renderService:l,paper:h,metadata:t})}function E(n){var r=(new Date).getTime();c.clear();var s=e.filterText;s&&(s=s.toLowerCase());var u=[],l={},d=t(a.parentNode).width(),v=f.groups&&i.isFunction(f.groups)?f.groups():Object.keys(n);v.forEach(function(e){n[e]&&Object.keys(n[e]).sort().forEach(function(t){var r=n[e][t],i=!r.noPaletteEntry;i&&s&&(i=!1,t.toLowerCase().indexOf(s)!==-1?i=!0:e.toLowerCase().indexOf(s)!==-1?i=!0:r.description&&r.description.toLowerCase().indexOf(s)!==-1?i=!0:r.properties&&Object.keys(r.properties).sort().forEach(function(e){if(e.toLowerCase().indexOf(s)!==-1||r.properties[e].description&&r.properties[e].description.toLowerCase().indexOf(s)!==-1)i=!0}));if(i){if(!l[e]){var o=b(e,!_.contains(p,e));o.set("size",{width:d,height:30}),u.push(o),l[e]=!0}_.contains(p,e)||u.push(w(t,r))}})});var m=0,g=0;u.forEach(function(e){if(e.attr("metadata/name")){var t={width:e.get("size").width,height:e.get("size").height};m
=m?(d-Math.floor(d/m)*m)/2:0,E=y,S=0,x;u.forEach(function(e){var t={width:e.get("size").width,height:e.get("size").height};e.get("header")?(E=y,e.set("position",{x:0,y:S}),S+=t.height+5):(E+m>d?(E=y,e.set("position",{x:E+(m-t.width)/2,y:S+(g-t.height)/2})):(x.attr("metadata/name")&&(S-=g),e.set("position",{x:E+(m-t.width)/2,y:S+(g-t.height)/2})),E+=m,S+=g),x=e}),h.setDimensions(d,S),o.info("buildPalette took "+((new Date).getTime()-r)+"ms")}function x(e){var t=90,n=function(){t-=10,e.attr({path:{transform:"rotate(-"+t+",15,13)"}});if(t<=0){e.set("isOpen",!0),p=_.without(p,e.get("header")),f.load().then(E);return}s(n,10)};s(n)}function T(e){var t=0,n=function(){t+=10,e.attr({path:{transform:"rotate(-"+t+",15,13)"}});if(t>=90){e.set("isOpen",!1),p.push(e.get("header")),f.load().then(E);return}s(n,10)};s(n)}function N(){t(document).off("mousemove",g)}function C(){f&&i.isFunction(f.unsubscribe)&&f.unsubscribe(S),t(document).off("mouseup",N)}function k(){f.load().then(E)}function L(r){a=r,f=u.get(e.metamodelServiceName),e.renderServiceName&&(l=u.get(e.renderServiceName)),h=new n.dia.Paper({el:t("#palette-paper",a),gridSize:1,model:c,height:t(a.parentNode).height(),width:t(a.parentNode).width(),elementView:y(l&&i.isFunction(l.getNodeView)?l.getNodeView():n.dia.ElementView)}),h.on("cell:pointerup",function(e,n){o.debug("pointerup"),v&&(m("drop",{dragged:v,evt:n}),v=null),d=null,t("#palette-floater").remove()}),h.on("cell:pointerclick",function(e){var t=e.model;e.model.attributes.header&&(t.get("isOpen")?T(t):x(t))}),t(document).on("mouseup",N),f?f.load().then(function(e){E(e),f&&i.isFunction(f.subscribe)&&f.subscribe(S)}):o.error("No Metamodel service specified for palette!"),e.flo&&(e.flo.paletteSize=e.flo.paletteSize||t(a.parentNode).width())}var a,f,l,c=new n.dia.Graph;c.attributes.type=n.shapes.flo.PALETTE_TYPE;var h,p=[],d,v=null,S={metadataError:function(e){o.error(JSON.stringify(e))},metadataRefresh:function(){},metadataChanged:function(e){E(e.newData)}};e.$on("$destroy",C),e.init=L,e.filterTextUpdated=k,e.flo&&(e.flo._paletteGraph=function(){return c},e.flo.paletteEntryPadding=e.flo.paletteEntryPadding||{x:12,y:12}),e.$watch(function(){return e.flo.paletteSize},function(e,t){t!==e&&f.load().then(E)})}]}),define("directives/palette",["controllers/palette"],function(){"use strict";return[function(){return{restrict:"E",scope:!0,link:function(e,t,n){n.metamodelServiceName&&(e.metamodelServiceName=n.metamodelServiceName),e.init(t[0],n)},controller:require("controllers/palette"),controllerAs:"floPalette",template:''}}]}),define("common/properties-manager",["require","underscore","codemirror","codemirror/addon/mode/loadmode","codemirror/addon/edit/matchbrackets","codemirror/addon/edit/closebrackets","codemirror/mode/groovy/groovy","codemirror/mode/javascript/javascript","codemirror/mode/python/python","codemirror/mode/clike/clike"],function(e){"use strict";var t=e("underscore"),n=e("codemirror");return e("codemirror/addon/mode/loadmode"),e("codemirror/addon/edit/matchbrackets"),e("codemirror/addon/edit/closebrackets"),e("codemirror/mode/groovy/groovy"),e("codemirror/mode/javascript/javascript"),e("codemirror/mode/python/python"),e("codemirror/mode/clike/clike"),n.modeURL="codemirror/mode/%N/%N",function(e,r){function i(e,t){var n=e.attr("metadata/metadata/titleProperty")?e.attr("metadata/metadata/titleProperty"):".label/text";if(t===undefined)return e.attr(n);e.attr(n,t)}function o(e,t){var n=s[e];n||(n=[],s[e]=n),n.push(t)}function u(e){var t=s[e];if(t)for(var n=0;n=0&&r.splice(i)}}function r(t,n){var r=e[t];r&&Array.isArray(r)&&r.forEach(function(e){e(n)})}var e={};return{on:t,off:n,fireEvent:r}}}),define("controllers/graph-editor",["require","angular","joint","jquery","common/shapes-factory","common/properties-manager","common/event-manager"],function(e){"use strict";var t=!!window.chrome,n=typeof InstallTrigger!="undefined",r=e("angular"),i=e("joint"),s=e("jquery"),o=e("common/shapes-factory"),u=e("common/properties-manager"),a=e("common/event-manager");return["$q","$scope","$timeout","$http","$log","$injector",function(e,f,l,c,h,p){function P(e,t,n,r){if(!r){var i=e.getBBox();r=i.origin().offset(i.width/2,i.height/2)}var s=o.createHandle({renderService:v,paper:y,parent:e,kind:t,position:r}),u=y.findViewByModel(s);return u.on("cell:pointerdown",function(){n&&n.call&&n()}),u.on("cell:mouseover",function(){s.attr("image/filter",{name:"dropShadow",args:{dx:1,dy:1,blur:1,color:"black"}})}),u.on("cell:mouseout",function(){s.removeAttr("image/filter")}),u.options.interactive=!1,s}function H(e,t){var n=e.getEmbeddedCells();for(var r=0;r=0||t&&t===n[r].get("type")||!t)&&n[r].remove()}function B(e){e&&(e.model.get("type")===i.shapes.flo.DECORATION_TYPE||e.model.get("type")===i.shapes.flo.HANDLE_TYPE)&&(e=y.findViewByModel(g.getCell(e.model.get("parent")))),e&&(!e.model.attr("metadata")||e.model.attr("metadata/metadata/unselectable"))&&(e=null);if(e===E||!e&&!E)E&&w&&w.togglePropertiesView(E);else{if(E){var t=y.findViewByModel(E.model);t&&(H(t.model,i.shapes.flo.HANDLE_TYPE),t.unhighlight())}e&&(e.highlight(),m&&r.isFunction(m.createHandles)&&m.createHandles(f.flo,P,e.model)),E=e,$("#properties",b).css("display","block"),w&&w.updatePropertiesView(e)}}function j(e){return e!==undefined&&e!==null&&M!==e&&(e&&B(),g&&g.getLinks().forEach(function(t){e?(t.attr(".link-tools/display","none"),t.attr(".marker-vertices/display","none"),t.attr(".connection-wrap/display","none")):(t.removeAttr(".link-tools/display"),m&&m.allowLinkVertexEdit&&t.removeAttr(".marker-vertices/display"),t.removeAttr(".connection-wrap/display"))}),M=e),M}function F(e,t){return t&&r.isString(t)&&t.startsWith(".")&&(t=t.substr(1)),e.$("[magnet]").toArray().find(function(e){return e.getAttribute("class").split(/\s+/).indexOf(t)>=0})}function I(e){if(m&&r.isFunction(m.showDragFeedback))m.showDragFeedback(f.flo,e);else{var t;e.source&&e.source.view&&(i.V(e.source.view.el).addClass("dnd-source-feedback"),e.source.selector&&(t=F(e.source.view,e.source.selector),t&&i.V(t).addClass("dnd-source-feedback"))),e.target&&e.target.view&&(i.V(e.target.view.el).addClass("dnd-target-feedback"),e.target.selector&&(t=F(e.target.view,e.target.selector),t&&i.V(t).addClass("dnd-target-feedback")))}}function q(e){if(m&&r.isFunction(m.hideDragFeedback))m.hideDragFeedback(f.flo,e);else{var t;e.source&&e.source.view&&(i.V(e.source.view.el).removeClass("dnd-source-feedback"),e.source.selector&&(t=F(e.source.view,e.source.selector),t&&i.V(t).removeClass("dnd-source-feedback"))),e.target&&e.target.view&&(i.V(e.target.view.el).removeClass("dnd-target-feedback"),e.target.selector&&(t=F(e.target.view,e.target.selector),t&&i.V(t).removeClass("dnd-target-feedback")))}}function R(e){if(k===e)return;if(k&&e&&_.isEqual(k.context,e.context)){if(k.source===e.source&&k.target===e.target)return;if(k.source&&e.source&&k.target&&e.target&&k.source.cell===e.source.cell&&k.source.selector===e.source.selector&&k.target.cell===e.target.cell&&k.target.selector===e.target.selector)return}k&&q(k),k=e,k&&I(k)}function U(e,t,n,s,o){m&&r.isFunction(m.calculateDragDescriptor)&&R(m.calculateDragDescriptor(f.flo,e,t,i.g.point(n,s),o))}function z(){k&&m&&r.isFunction(m.handleNodeDropping)&&m.handleNodeDropping(f.flo,k),R()}function W(e){var t={visibility:e.style?e.style.display:undefined,children:[]};for(var n=0;n=tt()?e=tt():e<=0&&(e=1e-5),y.scale(e/100,e/100))}function st(e){return e&&!isNaN(e)&&e>=1&&(D=e,y&&y.setGridSize(e)),D}function ot(){return E}function ut(e,t,n,r){return o.createLink({renderService:v,paper:y,source:e,target:t,metadata:n,props:r})}function at(e){return g.getCell(e)}function ft(e){if(!e)return;if(m&&r.isFunction(m.validateNode)){var t=m.validateNode(f.flo,e);h.info("Validated "+e.id+" Errors: "+t),t=t||[];var n=[];t.forEach(function(e){typeof e=="string"?n.push(e):typeof e.message=="string"&&(e.range&&(f.definition.parseError||(f.definition.parseError=[]),f.definition.parseError.push(e)),n.push(e.message))});var i=e.getEmbeddedCells(),s=!1;for(var u=0;u0){var a=o.createDecoration({renderService:v,paper:y,parent:e,kind:"error",messages:n}),l=e.getBBox().topRight().offset(-a.get("size").width,0);a.set("position",l);var c=y.findViewByModel(a);c.options.interactive=!1}}}function lt(e){if(e){T&&l.cancel(T);if(typeof e=="string")x[e]=!0;else if(e.length)for(var t=0;t0){$(s).addClass("error-tooltip"),$(s).appendTo($("body")).fadeIn("fast");var p=document.createElement("p");$(p).text("Errors:"),$(s).append(p);for(var d=0;d'}}]}),define("directives/generic-dsl-editor",["underscore","angular","codemirror","codemirror/addon/lint/lint","codemirror/addon/hint/show-hint","codemirror/addon/display/placeholder","codemirror/addon/scroll/annotatescrollbar","codemirror/addon/scroll/simplescrollbars"],function(){"use strict";var e=require("underscore"),t=require("angular");return[function(){var n=require("codemirror"),r,i;return require("codemirror/addon/lint/lint"),require("codemirror/addon/hint/show-hint"),require("codemirror/addon/display/placeholder"),require("codemirror/addon/scroll/annotatescrollbar"),require("codemirror/addon/scroll/simplescrollbars"),{restrict:"A",scope:{dsl:"=",hint:"=",lint:"=",placeholder:"@",scrollbarStyle:"@"},link:function(s,o,u){u.debounce&&(i=parseInt(u.debounce));var a={value:s.dsl,gutters:["CodeMirror-lint-markers"],extraKeys:{"Ctrl-Space":"autocomplete"},lineNumbers:u.lineNumbers&&u.lineNumbers.toLowerCase()==="true",lineWrapping:u.lineWrapping&&u.lineWrapping.toLowerCase()==="true",electricChars:!1,smartIndent:!1};s.scrollbarStyle&&(a.scrollbarStyle=s.scrollbarStyle),s.lint&&(a.lint=s.lint),s.hint&&(a.hintOptions=s.hint),r=n.fromTextArea(o[0],a),t.isString(s.placeholder)&&r.setOption("placeholder",s.placeholder);var f=function(){s.$apply(function(){s.dsl=r.getValue()})};r.on("change",i?e.debounce(f,i):f),s.$watch("dsl",function(e){if(e!==r.getValue()){var t=r.getCursor();r.setValue(e?e:""),r.setCursor(t)}}),s.$watch("hint",function(e){r.setOption("hintOptions",e)}),s.$watch("lint",function(e){r.setOption("lint",e)})}}}]}),define("floDirectives",["require","angular","directives/resizer","directives/dsl-editor","directives/code-editor","directives/palette","directives/graph-editor","directives/generic-dsl-editor"],function(e){"use strict";var t=e("angular");return t.module("flo.directives",[]).directive("resizer",e("directives/resizer")).directive("dslEditor",e("directives/dsl-editor")).directive("codeEditor",e("directives/code-editor")).directive("floPalette",e("directives/palette")).directive("floEditor",e("directives/graph-editor")).directive("genericDslEditor",e("directives/generic-dsl-editor"))}),define("floServices",["angular"],function(e){"use strict";return e.module("flo.services",[]).factory("MetamodelUtils",["$q",function(e){return{getMetadata:function(t,n,r){return n&&r&&t[r][n]?t[r][n]:{name:n,group:r,unresolved:!0,get:function(){var t=e.defer();return t.resolve(),t.promise}}},matchGroup:function(e,t,n,r){n=typeof n=="number"?n:0,r=typeof r=="number"?r:0;var i=[],s;if(t)for(s in e)e[s][t]&&i.push(e[s][t]);var o,u=Number.MIN_VALUE;for(s=0;sr&&f++,typeof a.maxIncomingLinksNumber=="number"&&a.maxIncomingLinksNumbern&&f++;if(f===0)return i[s].group;f>u&&(u=f,o=i[s].group)}return o}}}])}),define("flo",["require","angular","floDirectives","floServices"],function(e){"use strict";return e("angular"),e("floDirectives"),e("floServices"),angular.module("spring.flo",["flo.services","flo.directives"])}),require(["flo"]),define("app",function(){});
\ No newline at end of file
diff --git a/karma.conf.js b/karma.conf.js
index dc083c7..e7210f8 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -1,5 +1,5 @@
// Karma configuration
-// http://karma-runner.github.io/0.10/config/configuration-file.html
+// https://karma-runner.github.io/0.10/config/configuration-file.html
module.exports = function (config) {
'use strict';
diff --git a/package.json b/package.json
index ef4e277..1afa192 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"files": [ "dist/*" ],
"repository": {
"type": "git",
- "url": "http://github.com/spring-projects/spring-flo.git"
+ "url": "https://github.com/spring-projects/spring-flo.git"
},
"dependencies": {
"requirejs": "2.1.22",
diff --git a/samples/spring-flo-sample/src/main/resources/static/index.html b/samples/spring-flo-sample/src/main/resources/static/index.html
index f1a4ef4..e00d8cb 100755
--- a/samples/spring-flo-sample/src/main/resources/static/index.html
+++ b/samples/spring-flo-sample/src/main/resources/static/index.html
@@ -1,8 +1,8 @@
-
+
Spring Flo Sample
-
+
diff --git a/samples/spring-flo-si/src/main/resources/static/index.html b/samples/spring-flo-si/src/main/resources/static/index.html
index 2f3f8a7..d0dd97b 100755
--- a/samples/spring-flo-si/src/main/resources/static/index.html
+++ b/samples/spring-flo-si/src/main/resources/static/index.html
@@ -1,10 +1,10 @@
-
+
Spring Integration Viewer
-
-
-
+
+
+
diff --git a/src/controllers/graph-editor.js b/src/controllers/graph-editor.js
index 81d171a..d3e4c97 100755
--- a/src/controllers/graph-editor.js
+++ b/src/controllers/graph-editor.js
@@ -1464,7 +1464,7 @@ define(function(require) {
}
function initPaperListeners() {
- // http://stackoverflow.com/questions/20463533/how-to-add-an-onclick-event-to-a-joint-js-element
+ // https://stackoverflow.com/questions/20463533/how-to-add-an-onclick-event-to-a-joint-js-element
paper.on('cell:pointerclick',
function(cellView, evt, x, y) { // jshint ignore:line
if (!readOnlyCanvas()) {
@@ -1506,7 +1506,7 @@ define(function(require) {
function initPaper() {
// The paper is what will represent the graph on the screen
- paper = new PaperExtended({ // http://www.jointjs.com/api#joint.dia.Paper
+ paper = new PaperExtended({ // https://www.jointjs.com/api#joint.dia.Paper
el: $('#paper', domContext),
gridSize: _gridSize,
drawGrid: true,
@@ -1514,7 +1514,7 @@ define(function(require) {
elementView: renderService && angular.isFunction(renderService.getNodeView) ? renderService.getNodeView() : mainElementView,
linkView: renderService && angular.isFunction(renderService.getLinkView) ? renderService.getLinkView() : joint.dia.LinkView,
// Enable link snapping within 25px lookup radius
- snapLinks: { radius: 25 }, // http://www.jointjs.com/tutorial/ports
+ snapLinks: { radius: 25 },
defaultLink: renderService && angular.isFunction(renderService.createLink) ? renderService.createLink() : new joint.shapes.flo.Link(),
// decide whether to create a link if the user clicks a magnet
diff --git a/src/controllers/palette.js b/src/controllers/palette.js
index 580eb9a..62c27fb 100755
--- a/src/controllers/palette.js
+++ b/src/controllers/palette.js
@@ -27,7 +27,7 @@ define(function(require) {
joint.shapes.flo = {};
}
- // http://stackoverflow.com/questions/23960312/can-i-add-new-attributes-in-jointjs-element
+ // https://stackoverflow.com/questions/23960312/can-i-add-new-attributes-in-jointjs-element
joint.shapes.flo.PaletteGroupHeader = joint.shapes.basic.Generic.extend({
// The path is the open/close arrow, defaults to vertical (open)
markup: '',