diff options
author | Lvbo163 <lv.bo163@zte.com.cn> | 2017-08-30 17:17:11 +0800 |
---|---|---|
committer | Lvbo163 <lv.bo163@zte.com.cn> | 2017-08-30 17:22:30 +0800 |
commit | 97e19323bd1e9ee44a02173a5ba05d13219c4082 (patch) | |
tree | a2c809787cf8f0b1109b6ca652a0f58d7d8915de /sdc-workflow-designer-ui/src/app/services | |
parent | aa77d17e3f68d8236b4fa07904fec054b07aa23b (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.ts | 50 | ||||
-rw-r--r-- | sdc-workflow-designer-ui/src/app/services/jsplumb.service.ts | 11 |
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 => {
|