Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
6d4ebeba
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6d4ebeba
编写于
3月 21, 2014
作者:
M
Mike Dias
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACT-1739: Added support to Message Boundary Events in Modeler
上级
03c15e5c
变更
8
展开全部
隐藏空白更改
内联
并排
Showing
8 changed file
with
58 addition
and
456 deletion
+58
-456
modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java
.../java/org/activiti/editor/constants/StencilConstants.java
+1
-0
modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java
...r/language/json/converter/BoundaryEventJsonConverter.java
+7
-0
modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java
...iti/editor/language/json/converter/BpmnJsonConverter.java
+1
-0
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java
...a/org/activiti/editor/language/AbstractConverterTest.java
+15
-0
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java
.../activiti/editor/language/BoundaryEventConverterTest.java
+22
-18
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java
...org/activiti/editor/language/CatchEventConverterTest.java
+0
-8
modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json
...converter/src/test/resources/test.boundaryeventmodel.json
+1
-430
modules/activiti-webapp-explorer2/src/main/resources/stencilset.json
...iviti-webapp-explorer2/src/main/resources/stencilset.json
+11
-0
未找到文件。
modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java
浏览文件 @
6d4ebeba
...
...
@@ -51,6 +51,7 @@ public interface StencilConstants {
final
String
STENCIL_EVENT_BOUNDARY_TIMER
=
"BoundaryTimerEvent"
;
final
String
STENCIL_EVENT_BOUNDARY_ERROR
=
"BoundaryErrorEvent"
;
final
String
STENCIL_EVENT_BOUNDARY_SIGNAL
=
"BoundarySignalEvent"
;
final
String
STENCIL_EVENT_BOUNDARY_MESSAGE
=
"BoundaryMessageEvent"
;
final
String
STENCIL_EVENT_CATCH_SIGNAL
=
"CatchSignalEvent"
;
final
String
STENCIL_EVENT_CATCH_TIMER
=
"CatchTimerEvent"
;
...
...
modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java
浏览文件 @
6d4ebeba
...
...
@@ -21,6 +21,7 @@ import org.activiti.bpmn.model.ErrorEventDefinition;
import
org.activiti.bpmn.model.EventDefinition
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.GraphicInfo
;
import
org.activiti.bpmn.model.MessageEventDefinition
;
import
org.activiti.bpmn.model.SignalEventDefinition
;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.node.ArrayNode
;
...
...
@@ -42,6 +43,7 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
convertersToBpmnMap
.
put
(
STENCIL_EVENT_BOUNDARY_TIMER
,
BoundaryEventJsonConverter
.
class
);
convertersToBpmnMap
.
put
(
STENCIL_EVENT_BOUNDARY_ERROR
,
BoundaryEventJsonConverter
.
class
);
convertersToBpmnMap
.
put
(
STENCIL_EVENT_BOUNDARY_SIGNAL
,
BoundaryEventJsonConverter
.
class
);
convertersToBpmnMap
.
put
(
STENCIL_EVENT_BOUNDARY_MESSAGE
,
BoundaryEventJsonConverter
.
class
);
}
public
static
void
fillBpmnTypes
(
Map
<
Class
<?
extends
BaseElement
>,
Class
<?
extends
BaseBpmnJsonConverter
>>
convertersToJsonMap
)
{
...
...
@@ -61,6 +63,8 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
return
STENCIL_EVENT_BOUNDARY_ERROR
;
}
else
if
(
eventDefinition
instanceof
SignalEventDefinition
)
{
return
STENCIL_EVENT_BOUNDARY_SIGNAL
;
}
else
if
(
eventDefinition
instanceof
MessageEventDefinition
)
{
return
STENCIL_EVENT_BOUNDARY_MESSAGE
;
}
else
{
return
STENCIL_EVENT_BOUNDARY_TIMER
;
}
...
...
@@ -95,6 +99,9 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
}
else
if
(
STENCIL_EVENT_BOUNDARY_SIGNAL
.
equals
(
stencilId
))
{
boundaryEvent
.
setCancelActivity
(
getPropertyValueAsBoolean
(
PROPERTY_CANCEL_ACTIVITY
,
elementNode
));
convertJsonToSignalDefinition
(
elementNode
,
boundaryEvent
);
}
else
if
(
STENCIL_EVENT_BOUNDARY_MESSAGE
.
equals
(
stencilId
))
{
boundaryEvent
.
setCancelActivity
(
getPropertyValueAsBoolean
(
PROPERTY_CANCEL_ACTIVITY
,
elementNode
));
convertJsonToMessageDefinition
(
elementNode
,
boundaryEvent
);
}
boundaryEvent
.
setAttachedToRefId
(
lookForAttachedRef
(
elementNode
.
get
(
EDITOR_SHAPE_ID
).
asText
(),
modelNode
.
get
(
EDITOR_CHILD_SHAPES
)));
return
boundaryEvent
;
...
...
modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java
浏览文件 @
6d4ebeba
...
...
@@ -117,6 +117,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants,
DI_CIRCLES
.
add
(
STENCIL_EVENT_BOUNDARY_ERROR
);
DI_CIRCLES
.
add
(
STENCIL_EVENT_BOUNDARY_SIGNAL
);
DI_CIRCLES
.
add
(
STENCIL_EVENT_BOUNDARY_TIMER
);
DI_CIRCLES
.
add
(
STENCIL_EVENT_BOUNDARY_MESSAGE
);
DI_CIRCLES
.
add
(
STENCIL_EVENT_CATCH_MESSAGE
);
DI_CIRCLES
.
add
(
STENCIL_EVENT_CATCH_SIGNAL
);
...
...
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java
浏览文件 @
6d4ebeba
package
org.activiti.editor.language
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
java.io.InputStream
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.Event
;
import
org.activiti.bpmn.model.EventDefinition
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.editor.language.json.converter.BpmnJsonConverter
;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.map.ObjectMapper
;
...
...
@@ -24,5 +31,13 @@ public abstract class AbstractConverterTest {
return
bpmnModel
;
}
protected
EventDefinition
extractEventDefinition
(
FlowElement
flowElement
)
{
assertNotNull
(
flowElement
);
assertTrue
(
flowElement
instanceof
Event
);
Event
event
=
(
Event
)
flowElement
;
assertFalse
(
event
.
getEventDefinitions
().
isEmpty
());
return
event
.
getEventDefinitions
().
get
(
0
);
}
protected
abstract
String
getResource
();
}
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java
浏览文件 @
6d4ebeba
package
org.activiti.editor.language
;
import
static
org
.
junit
.
Assert
.
assert
True
;
import
static
org
.
junit
.
Assert
.
assert
Equals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
org.activiti.bpmn.converter.BpmnXMLConverter
;
import
org.activiti.bpmn.model.BoundaryEvent
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.ErrorEventDefinition
;
import
org.activiti.bpmn.model.MessageEventDefinition
;
import
org.activiti.bpmn.model.SignalEventDefinition
;
import
org.activiti.bpmn.model.TimerEventDefinition
;
import
org.junit.Test
;
...
...
@@ -22,7 +25,6 @@ public class BoundaryEventConverterTest extends AbstractConverterTest {
public
void
doubleConversionValidation
()
throws
Exception
{
BpmnModel
bpmnModel
=
readJsonFile
();
bpmnModel
=
convertToJsonAndBack
(
bpmnModel
);
System
.
out
.
println
(
"xml "
+
new
String
(
new
BpmnXMLConverter
().
convertToXML
(
bpmnModel
),
"utf-8"
));
validateModel
(
bpmnModel
);
}
...
...
@@ -33,24 +35,26 @@ public class BoundaryEventConverterTest extends AbstractConverterTest {
private
void
validateModel
(
BpmnModel
model
)
{
FlowElement
errorElement
=
model
.
getMainProcess
().
getFlowElement
(
"errorEvent"
);
assertTrue
(
errorElement
instanceof
BoundaryEvent
);
BoundaryEvent
errorElement
=
(
BoundaryEvent
)
model
.
getMainProcess
().
getFlowElement
(
"errorEvent"
);
ErrorEventDefinition
errorEvent
=
(
ErrorEventDefinition
)
extractEventDefinition
(
errorElement
);
assertTrue
(
errorElement
.
isCancelActivity
());
//always true
assertEquals
(
"errorRef"
,
errorEvent
.
getErrorCode
());
FlowElement
signalElement
=
model
.
getMainProcess
().
getFlowElement
(
"signalEvent"
);
assertTrue
(
signalElement
instanceof
BoundaryEvent
);
BoundaryEvent
signalElement
=
(
BoundaryEvent
)
model
.
getMainProcess
().
getFlowElement
(
"signalEvent"
);
SignalEventDefinition
signalEvent
=
(
SignalEventDefinition
)
extractEventDefinition
(
signalElement
);
assertFalse
(
signalElement
.
isCancelActivity
());
assertEquals
(
"signalRef"
,
signalEvent
.
getSignalRef
());
FlowElement
timerElement
=
model
.
getMainProcess
().
getFlowElement
(
"timerEvent"
);
assertTrue
(
timerElement
instanceof
BoundaryEvent
);
BoundaryEvent
messageElement
=
(
BoundaryEvent
)
model
.
getMainProcess
().
getFlowElement
(
"messageEvent"
);
MessageEventDefinition
messageEvent
=
(
MessageEventDefinition
)
extractEventDefinition
(
messageElement
);
assertFalse
(
messageElement
.
isCancelActivity
());
assertEquals
(
"messageRef"
,
messageEvent
.
getMessageRef
());
BoundaryEvent
errorEvent
=
(
BoundaryEvent
)
errorElement
;
assertTrue
(
errorEvent
.
isCancelActivity
());
//always true
BoundaryEvent
timerElement
=
(
BoundaryEvent
)
model
.
getMainProcess
().
getFlowElement
(
"timerEvent"
);
TimerEventDefinition
timerEvent
=
(
TimerEventDefinition
)
extractEventDefinition
(
timerElement
);
assertFalse
(
timerElement
.
isCancelActivity
());
assertEquals
(
"PT5M"
,
timerEvent
.
getTimeDuration
());
BoundaryEvent
signalEvent
=
(
BoundaryEvent
)
signalElement
;
assertFalse
(
signalEvent
.
isCancelActivity
());
BoundaryEvent
timerEvent
=
(
BoundaryEvent
)
timerElement
;
assertFalse
(
timerEvent
.
isCancelActivity
());
}
}
modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java
浏览文件 @
6d4ebeba
package
org.activiti.editor.language
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.EventDefinition
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.IntermediateCatchEvent
;
import
org.activiti.bpmn.model.MessageEventDefinition
;
import
org.activiti.bpmn.model.SignalEventDefinition
;
import
org.activiti.bpmn.model.TimerEventDefinition
;
...
...
@@ -55,10 +53,4 @@ public class CatchEventConverterTest extends AbstractConverterTest {
}
private
EventDefinition
extractEventDefinition
(
FlowElement
messageElement
)
{
assertNotNull
(
messageElement
);
assertTrue
(
messageElement
instanceof
IntermediateCatchEvent
);
IntermediateCatchEvent
messageEvent
=
(
IntermediateCatchEvent
)
messageElement
;
return
messageEvent
.
getEventDefinitions
().
get
(
0
);
}
}
modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json
浏览文件 @
6d4ebeba
此差异已折叠。
点击以展开。
modules/activiti-webapp-explorer2/src/main/resources/stencilset.json
浏览文件 @
6d4ebeba
...
...
@@ -1409,6 +1409,17 @@
"propertyPackages"
:
[
"elementbase"
,
"baseattributes"
,
"cancelactivityattribute"
,
"signalrefdefinition"
],
"roles"
:
[
"sequence_start"
,
"BoundaryEventsMorph"
,
"IntermediateEventOnActivityBoundary"
]
},
{
"type"
:
"node"
,
"id"
:
"BoundaryMessageEvent"
,
"title"
:
"Boundary message event"
,
"description"
:
"A boundary event with a message trigger"
,
"view"
:
"intermediateevent/message.catching.svg"
,
"icon"
:
"catching/message.png"
,
"groups"
:
[
"Boundary Events"
],
"propertyPackages"
:
[
"elementbase"
,
"baseattributes"
,
"cancelactivityattribute"
,
"messagerefdefinition"
],
"roles"
:
[
"sequence_start"
,
"BoundaryEventsMorph"
,
"IntermediateEventOnActivityBoundary"
]
},
{
"type"
:
"node"
,
"id"
:
"CatchTimerEvent"
,
"title"
:
"Intermediate timer catching event"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录