From 18b2330786d193afd150bf20e4054d965259de3a Mon Sep 17 00:00:00 2001 From: Lvbo163 Date: Fri, 8 Sep 2017 09:40:56 +0800 Subject: 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 --- sdc-workflow-designer-ui/src/app/app.module.ts | 2 + .../intermediate-catch-event.component.html | 45 ++++++++++++++++++++++ .../intermediate-catch-event.component.ts | 31 +++++++++++++++ .../components/property/properties.component.html | 1 + .../app/model/workflow/intermediate-catch-event.ts | 18 +++++++++ .../app/model/workflow/timer-event-definition.ts | 27 +++++++++++++ .../src/app/services/workflow-process.service.ts | 4 ++ 7 files changed, 128 insertions(+) create mode 100644 sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.html create mode 100644 sdc-workflow-designer-ui/src/app/components/property/intermediate-catch-event/intermediate-catch-event.component.ts create mode 100644 sdc-workflow-designer-ui/src/app/model/workflow/intermediate-catch-event.ts create mode 100644 sdc-workflow-designer-ui/src/app/model/workflow/timer-event-definition.ts (limited to 'sdc-workflow-designer-ui/src/app') 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 @@ + + +
+ +
+ Duration + Date + Cycle +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ +
+
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 @@ + 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, // 10/10/2099 00:00:00 + 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; -- cgit 1.2.3-korg