aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLvbo163 <lv.bo163@zte.com.cn>2017-09-08 09:40:56 +0800
committerLvbo163 <lv.bo163@zte.com.cn>2017-09-08 09:43:17 +0800
commit18b2330786d193afd150bf20e4054d965259de3a (patch)
treef5df47b54c7fee6bba4ebf88bedfdcbef5f215ae
parent7f4d1836df509a1a06e4b7635a84a71b79084d6e (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>
-rw-r--r--sdc-workflow-designer-ui/src/app/app.module.ts2
-rw-r--r--sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.html45
-rw-r--r--sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.ts31
-rw-r--r--sdc-workflow-designer-ui/src/app/components/property/properties.component.html1
-rw-r--r--sdc-workflow-designer-ui/src/app/model/workflow/intermediate-catch-event.ts18
-rw-r--r--sdc-workflow-designer-ui/src/app/model/workflow/timer-event-definition.ts27
-rw-r--r--sdc-workflow-designer-ui/src/app/services/workflow-process.service.ts4
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;