diff options
author | Lvbo163 <lv.bo163@zte.com.cn> | 2017-09-08 09:40:56 +0800 |
---|---|---|
committer | Lvbo163 <lv.bo163@zte.com.cn> | 2017-09-08 09:43:17 +0800 |
commit | 18b2330786d193afd150bf20e4054d965259de3a (patch) | |
tree | f5df47b54c7fee6bba4ebf88bedfdcbef5f215ae | |
parent | 7f4d1836df509a1a06e4b7635a84a71b79084d6e (diff) |
support bpmn timer element
support bpmn intermediate-catch-event timer element for duration and date
Issue-ID: SDC-294
Change-Id: I27ba61f7d3ad6e3fa41579a643805f07da78628c
Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
7 files changed, 128 insertions, 0 deletions
diff --git a/sdc-workflow-designer-ui/src/app/app.module.ts b/sdc-workflow-designer-ui/src/app/app.module.ts index 047f4683..6fa65af3 100644 --- a/sdc-workflow-designer-ui/src/app/app.module.ts +++ b/sdc-workflow-designer-ui/src/app/app.module.ts @@ -43,12 +43,14 @@ import { ParameterTreeComponent } from "./components/parameter-tree/parameter-tr import { EditablePropertyComponent } from "./components/editable-property/editable-property.component"; import { SwaggerTreeConverterService } from "./services/swagger-tree-converter.service"; import { WorkflowProcessService } from "./services/workflow-process.service"; +import { IntermediateCatchEventComponent } from "./components/property/intermediate-catch-event/intermediate-catch-event.component"; @NgModule({ declarations: [ AppComponent, CanvasComponent, EditablePropertyComponent, + IntermediateCatchEventComponent, MenuComponent, MicroserviceComponent, MicroserviceDetailComponent, diff --git a/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.html b/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.html new file mode 100644 index 00000000..f615d9f2 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.html @@ -0,0 +1,45 @@ +<!-- +/******************************************************************************* + * 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 + *******************************************************************************/ +--> + +<div class="form-group row"> + <label class="col-md-3 form-control-label text-md-right">Timer Type</label> + <div class="col-md-9"> + <p-radioButton name="timeType" label="Duration" value="timeDuration" [ngModel]="node.timerEventDefinition.type" (ngModelChange)="timerTypeChange($event)">Duration</p-radioButton> + <p-radioButton name="timeType" label="Date" value="timeDate" [(ngModel)]="node.timerEventDefinition.type">Date</p-radioButton> + <p-radioButton name="timeType" label="Cycle" value="timeCycle" [(ngModel)]="node.timerEventDefinition.type">Cycle</p-radioButton> + </div> +</div> + +<div *ngIf="node.timerEventDefinition.type === 'timeDuration'" class="form-group row"> + <label class="col-md-3 form-control-label text-md-right">Duration</label> + <div class="col-md-9"> + <input type="text" class="form-control" [(ngModel)]="node.timerEventDefinition.timeDuration"> + <label>eg: P1Y3M5DT6H7M30S</label> + </div> +</div> + +<div *ngIf="node.timerEventDefinition.type === 'timeDate'" class="form-group row"> + <label class="col-md-3 form-control-label text-md-right">Date</label> + <div class="col-md-9"> + <input type="text" class="form-control" [(ngModel)]="node.timerEventDefinition.timeDate"> + <label>eg: 10/10/2099 00:00:03</label> + </div> +</div> + +<div *ngIf="node.timerEventDefinition.type === 'timeCycle'" class="form-group row"> + <label class="col-md-3 form-control-label text-md-right">Cycle</label> + <div class="col-md-9"> + <input type="text" class="form-control" [(ngModel)]="node.timerEventDefinition.timeCycle"> + </div> +</div> diff --git a/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.ts b/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.ts new file mode 100644 index 00000000..e8e2c780 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.ts @@ -0,0 +1,31 @@ +/******************************************************************************* + * 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 { AfterViewInit, Component, Input } from '@angular/core'; +import { Subscription } from 'rxjs/Subscription'; + +import {IntermediateCatchEvent} from '../../../model/workflow/intermediate-catch-event'; + +@Component({ + selector: 'b4t-intermediate-catch-event', + templateUrl: 'intermediate-catch-event.component.html', +}) +export class IntermediateCatchEventComponent { + @Input() public node: IntermediateCatchEvent; + + public timerTypeChange(type: string) { + const timer = this.node.timerEventDefinition; + timer.type = type; + timer.timeCycle = ''; + timer.timeDate = ''; + timer.timeDuration = ''; + } +} diff --git a/sdc-workflow-designer-ui/src/app/components/property/properties.component.html b/sdc-workflow-designer-ui/src/app/components/property/properties.component.html index bcc63dd0..86a67823 100644 --- a/sdc-workflow-designer-ui/src/app/components/property/properties.component.html +++ b/sdc-workflow-designer-ui/src/app/components/property/properties.component.html @@ -41,4 +41,5 @@ <b4t-start-event-parameters *ngIf="'startEvent' == node.type" [node]="node"></b4t-start-event-parameters> <b4t-rest-task *ngIf="node.type == 'restTask'" [node]="node" [planItems]="planItems"></b4t-rest-task> + <b4t-intermediate-catch-event *ngIf="'intermediateCatchEvent' == node.type" [node]="node"></b4t-intermediate-catch-event> </div> diff --git a/sdc-workflow-designer-ui/src/app/model/workflow/intermediate-catch-event.ts b/sdc-workflow-designer-ui/src/app/model/workflow/intermediate-catch-event.ts new file mode 100644 index 00000000..13a3d1e0 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/model/workflow/intermediate-catch-event.ts @@ -0,0 +1,18 @@ +/** + * 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 { TimerEventDefinition, TimerEventDefinitionType } from './timer-event-definition'; +import { WorkflowNode } from './workflow-node'; + +export class IntermediateCatchEvent extends WorkflowNode { + public timerEventDefinition: TimerEventDefinition = + new TimerEventDefinition(TimerEventDefinitionType[TimerEventDefinitionType.timeDuration]); +} diff --git a/sdc-workflow-designer-ui/src/app/model/workflow/timer-event-definition.ts b/sdc-workflow-designer-ui/src/app/model/workflow/timer-event-definition.ts new file mode 100644 index 00000000..f78d3973 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/model/workflow/timer-event-definition.ts @@ -0,0 +1,27 @@ +/** + * 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 { WorkflowNode } from './workflow-node'; + +export enum TimerEventDefinitionType { + timeDate, + timeDuration, + timeCycle, +} + +export class TimerEventDefinition { + constructor(public type: string, // 'timeDate', 'timeCycle', 'timeDuration' + public timeDate?: string, // <timeDate>10/10/2099 00:00:00</timeDate> + public timeDuration?: string, // ISO 8601 P1Y3M5DT6H7M30S + public timeCycle?: string) { // ISO 8601 P1Y3M5DT6H7M30S + + } +} diff --git a/sdc-workflow-designer-ui/src/app/services/workflow-process.service.ts b/sdc-workflow-designer-ui/src/app/services/workflow-process.service.ts index 4c701ec3..963a10b3 100644 --- a/sdc-workflow-designer-ui/src/app/services/workflow-process.service.ts +++ b/sdc-workflow-designer-ui/src/app/services/workflow-process.service.ts @@ -22,6 +22,7 @@ import { PlanTreeviewItem } from "../model/plan-treeview-item"; import { WorkflowConfigService } from "./workflow-config.service";
import { Swagger, SwaggerModelSimple, SwaggerReferenceObject } from "../model/swagger";
import { WorkflowService } from "./workflow.service";
+import { IntermediateCatchEvent } from "../model/workflow/intermediate-catch-event";
/**
* WorkflowService
@@ -47,6 +48,9 @@ export class WorkflowProcessService { case NodeType[NodeType.restTask]:
node = new RestTask(this.createId(), name, type, new Position(top, left), []);
break;
+ case NodeType[NodeType.intermediateCatchEvent]:
+ node = new IntermediateCatchEvent(this.createId(), name, type, new Position(top, left), []);
+ break;
default:
node = new WorkflowNode(this.createId(), name, type, new Position(top, left), []);
break;
|