From 97e19323bd1e9ee44a02173a5ba05d13219c4082 Mon Sep 17 00:00:00 2001 From: Lvbo163 Date: Wed, 30 Aug 2017 17:17:11 +0800 Subject: 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 --- .../src/app/services/broadcast.service.ts | 50 ++++++++++++++++++++++ .../src/app/services/jsplumb.service.ts | 11 +++-- 2 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 sdc-workflow-designer-ui/src/app/services/broadcast.service.ts (limited to 'sdc-workflow-designer-ui/src/app/services') 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(); + public jsPlumbInstance$ = this.jsPlumbInstance.asObservable(); + + public showProperty = new Subject(); + public showProperty$ = this.showProperty.asObservable(); + + public saveEvent = new Subject(); + public saveEvent$ = this.saveEvent.asObservable(); + + public nodeProperty = new Subject(); + 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, 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 => { -- cgit 1.2.3-korg