summaryrefslogtreecommitdiffstats
path: root/sdc-workflow-designer-ui/src/app/services
diff options
context:
space:
mode:
authorLvbo163 <lv.bo163@zte.com.cn>2017-08-30 17:17:11 +0800
committerLvbo163 <lv.bo163@zte.com.cn>2017-08-30 17:22:30 +0800
commit97e19323bd1e9ee44a02173a5ba05d13219c4082 (patch)
treea2c809787cf8f0b1109b6ca652a0f58d7d8915de /sdc-workflow-designer-ui/src/app/services
parentaa77d17e3f68d8236b4fa07904fec054b07aa23b (diff)
add property edit panel
add canvas component and add property edit panel, this panel will display while a workflow node is double clicked. Issue-ID: SDC-260 Change-Id: I0f150b0a480f986e0a8ab3bb67cf89f3e2267155 Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
Diffstat (limited to 'sdc-workflow-designer-ui/src/app/services')
-rw-r--r--sdc-workflow-designer-ui/src/app/services/broadcast.service.ts50
-rw-r--r--sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts11
2 files changed, 58 insertions, 3 deletions
diff --git a/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts b/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts
new file mode 100644
index 00000000..82e4cbbb
--- /dev/null
+++ b/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2017 ZTE Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * ZTE - initial API and implementation and/or initial documentation
+ */
+import { Injectable } from '@angular/core';
+import { Subject } from 'rxjs/Subject';
+
+import { WorkflowNode } from '../model/workflow-node';
+
+/**
+ * BroadcastService
+ * All of the observable subject should be registered to this service.
+ * It provider a broadcast method to broadcast data. the broadcast method would catch error while broadcasting.
+ */
+@Injectable()
+export class BroadcastService {
+
+ public jsPlumbInstance = new Subject<any>();
+ public jsPlumbInstance$ = this.jsPlumbInstance.asObservable();
+
+ public showProperty = new Subject<boolean>();
+ public showProperty$ = this.showProperty.asObservable();
+
+ public saveEvent = new Subject<string>();
+ public saveEvent$ = this.saveEvent.asObservable();
+
+ public nodeProperty = new Subject<WorkflowNode>();
+ public nodeProperty$ = this.nodeProperty.asObservable();
+
+ /**
+ * broadcast datas
+ * this method will catch the exceptions for the broadcast
+ * @param subject will broadcast data
+ * @param data will be broadcated
+ */
+ public broadcast(subject: Subject<any>, data: any) {
+ try {
+ subject.next(data);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+}
diff --git a/sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts b/sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts
index 33c88d4f..d192a82d 100644
--- a/sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts
+++ b/sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts
@@ -20,7 +20,7 @@ import { WorkflowService } from "./workflow.service";
*/
@Injectable()
export class JsPlumbService {
- private jsplumbInstance;
+ public jsplumbInstance;
constructor(private workflowService: WorkflowService) {
this.initJsPlumbInstance();
@@ -29,7 +29,7 @@ export class JsPlumbService {
public initJsPlumbInstance() {
this.jsplumbInstance = jsp.jsPlumb.getInstance({
- Container: 'container'
+ Container: 'canvas'
});
this.jsplumbInstance.importDefaults({
@@ -90,6 +90,10 @@ export class JsPlumbService {
}
+ public remove(nodeId: string) {
+ this.jsplumbInstance.remove(nodeId);
+ }
+
public buttonDraggable() {
const selector = this.jsplumbInstance.getSelector('.toolbar .item');
this.jsplumbInstance.draggable(selector,
@@ -100,7 +104,8 @@ export class JsPlumbService {
}
public buttonDroppable() {
- const selector = this.jsplumbInstance.getSelector('.container');
+ console.log('buttonDroppable');
+ const selector = this.jsplumbInstance.getSelector('.canvas');
this.jsplumbInstance.droppable(selector, {
scope: 'btn',
drop: event => {