Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
c35e987d
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,发现更多精彩内容 >>
提交
c35e987d
编写于
10月 23, 2010
作者:
T
tombaeyens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACT-258 form property handling
上级
b4ab7901
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
122 addition
and
42 deletion
+122
-42
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DateFormType.java
...main/java/org/activiti/engine/impl/form/DateFormType.java
+6
-6
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DefaultFormHandler.java
...ava/org/activiti/engine/impl/form/DefaultFormHandler.java
+10
-10
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DefaultStartFormHandler.java
...rg/activiti/engine/impl/form/DefaultStartFormHandler.java
+1
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/FormPropertyHandler.java
...va/org/activiti/engine/impl/form/FormPropertyHandler.java
+15
-14
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/FormTypes.java
...rc/main/java/org/activiti/engine/impl/form/FormTypes.java
+16
-12
modules/activiti-engine/src/test/java/org/activiti/engine/test/forms/FormsTest.java
...c/test/java/org/activiti/engine/test/forms/FormsTest.java
+38
-0
modules/activiti-engine/src/test/resources/org/activiti/engine/test/forms/FormsTest.testFormPropertyDetails.bpmn20.xml
...e/test/forms/FormsTest.testFormPropertyDetails.bpmn20.xml
+36
-0
未找到文件。
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DateFormType.java
浏览文件 @
c35e987d
...
...
@@ -25,12 +25,12 @@ import org.activiti.engine.ActivitiException;
*/
public
class
DateFormType
extends
AbstractFormType
{
protected
String
p
attern
;
protected
String
dateP
attern
;
protected
Format
dateFormat
;
public
DateFormType
(
String
simpleDateFormat
Pattern
)
{
this
.
pattern
=
simpleDateFormat
Pattern
;
this
.
dateFormat
=
new
SimpleDateFormat
(
simpleDateFormat
Pattern
);
public
DateFormType
(
String
date
Pattern
)
{
this
.
datePattern
=
date
Pattern
;
this
.
dateFormat
=
new
SimpleDateFormat
(
date
Pattern
);
}
public
String
getName
()
{
...
...
@@ -38,8 +38,8 @@ public class DateFormType extends AbstractFormType {
}
public
Object
getInformation
(
String
key
)
{
if
(
"
p
attern"
.
equals
(
key
))
{
return
p
attern
;
if
(
"
dateP
attern"
.
equals
(
key
))
{
return
dateP
attern
;
}
return
null
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DefaultFormHandler.java
浏览文件 @
c35e987d
...
...
@@ -55,24 +55,24 @@ public class DefaultFormHandler {
List
<
Element
>
formPropertyElements
=
extensionElement
.
elementsNS
(
BpmnParser
.
BPMN_EXTENSIONS_NS
,
"formProperty"
);
for
(
Element
formPropertyElement
:
formPropertyElements
)
{
FormPropertyHandler
formProperty
=
new
FormPropertyHandler
();
FormPropertyHandler
formProperty
Handler
=
new
FormPropertyHandler
();
String
id
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:id"
);
if
(
id
==
null
)
{
bpmnParse
.
addError
(
"attribute 'id' is required"
,
formPropertyElement
);
}
formProperty
.
setId
(
id
);
formProperty
Handler
.
setId
(
id
);
String
name
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:name"
);
formProperty
.
setName
(
name
);
formProperty
Handler
.
setName
(
name
);
AbstractFormType
type
=
formTypes
.
parseFormPropertyType
(
formPropertyElement
,
bpmnParse
);
formProperty
.
setType
(
type
);
formProperty
Handler
.
setType
(
type
);
String
requiredText
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:required"
,
"false"
);
Boolean
required
=
bpmnParse
.
parseBooleanAttribute
(
requiredText
);
if
(
required
!=
null
)
{
formProperty
.
setRequired
(
required
);
formProperty
Handler
.
setRequired
(
required
);
}
else
{
bpmnParse
.
addError
(
"attribute 'required' must be one of {on|yes|true|enabled|active|off|no|false|disabled|inactive}"
,
formPropertyElement
);
}
...
...
@@ -80,7 +80,7 @@ public class DefaultFormHandler {
String
readableText
=
formPropertyElement
.
attribute
(
"readable"
,
"true"
);
Boolean
readable
=
bpmnParse
.
parseBooleanAttribute
(
readableText
);
if
(
readable
!=
null
)
{
formProperty
.
setReadable
(
readable
);
formProperty
Handler
.
setReadable
(
readable
);
}
else
{
bpmnParse
.
addError
(
"attribute 'readable' must be one of {on|yes|true|enabled|active|off|no|false|disabled|inactive}"
,
formPropertyElement
);
}
...
...
@@ -88,21 +88,21 @@ public class DefaultFormHandler {
String
writableText
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:writable"
,
"true"
);
Boolean
writable
=
bpmnParse
.
parseBooleanAttribute
(
writableText
);
if
(
writable
!=
null
)
{
formProperty
.
setWritable
(
writable
);
formProperty
Handler
.
setWritable
(
writable
);
}
else
{
bpmnParse
.
addError
(
"attribute 'writable' must be one of {on|yes|true|enabled|active|off|no|false|disabled|inactive}"
,
formPropertyElement
);
}
String
variableName
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:variable"
);
formProperty
.
setVariableName
(
variableName
);
formProperty
Handler
.
setVariableName
(
variableName
);
String
valueExpressionText
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:expression"
);
if
(
valueExpressionText
!=
null
)
{
ActivitiValueExpression
valueExpression
=
expressionManager
.
createValueExpression
(
valueExpressionText
);
formProperty
.
setVariableExpression
(
valueExpression
);
formProperty
Handler
.
setVariableExpression
(
valueExpression
);
}
formPropertyHandlers
.
add
(
formProperty
);
formPropertyHandlers
.
add
(
formProperty
Handler
);
}
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/DefaultStartFormHandler.java
浏览文件 @
c35e987d
...
...
@@ -30,6 +30,7 @@ public class DefaultStartFormHandler extends DefaultFormHandler implements Start
startFormData
.
setFormKey
(
formKey
);
startFormData
.
setDeploymentId
(
deploymentId
);
startFormData
.
setProcessDefinition
(
processDefinition
);
initializeFormProperties
(
startFormData
,
null
);
return
startFormData
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/FormPropertyHandler.java
浏览文件 @
c35e987d
...
...
@@ -38,20 +38,21 @@ public class FormPropertyHandler {
public
FormProperty
createFormProperty
(
ExecutionEntity
execution
)
{
FormPropertyImpl
formProperty
=
new
FormPropertyImpl
(
this
);
Object
modelValue
=
null
;
if
(
variableName
!=
null
)
{
modelValue
=
execution
.
getVariable
(
variableName
);
}
else
if
(
variableExpression
!=
null
)
{
modelValue
=
variableExpression
.
getValue
(
execution
);
}
else
{
modelValue
=
execution
.
getVariable
(
id
);
}
if
(
type
!=
null
)
{
String
formValue
=
type
.
convertModelValueToFormValue
(
modelValue
);
formProperty
.
setValue
(
formValue
);
}
else
if
(
modelValue
!=
null
)
{
formProperty
.
setValue
(
modelValue
.
toString
());
if
(
execution
!=
null
)
{
Object
modelValue
=
null
;
if
(
variableName
!=
null
)
{
modelValue
=
execution
.
getVariable
(
variableName
);
}
else
if
(
variableExpression
!=
null
)
{
modelValue
=
variableExpression
.
getValue
(
execution
);
}
else
{
modelValue
=
execution
.
getVariable
(
id
);
}
if
(
type
!=
null
)
{
String
formValue
=
type
.
convertModelValueToFormValue
(
modelValue
);
formProperty
.
setValue
(
formValue
);
}
else
if
(
modelValue
!=
null
)
{
formProperty
.
setValue
(
modelValue
.
toString
());
}
}
return
formProperty
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/form/FormTypes.java
浏览文件 @
c35e987d
...
...
@@ -35,20 +35,24 @@ public class FormTypes {
AbstractFormType
formType
=
null
;
String
typeText
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:type"
);
if
(
typeText
!=
null
)
{
String
datePatternText
=
formPropertyElement
.
attribute
(
"http://activiti.org/bpmn-extensions:datePattern"
);
if
(
"date"
.
equals
(
typeText
)
&&
datePatternText
!=
null
)
{
formType
=
new
DateFormType
(
datePatternText
);
}
else
if
(
"enum"
.
equals
(
typeText
))
{
Map
<
String
,
String
>
values
=
new
HashMap
<
String
,
String
>();
for
(
Element
valueElement:
formPropertyElement
.
elementsNS
(
"http://activiti.org/bpmn-extensions"
,
"value"
))
{
String
valueId
=
valueElement
.
attribute
(
"http://activiti.org/bpmn-extensions:id"
);
String
valueName
=
valueElement
.
attribute
(
"http://activiti.org/bpmn-extensions:name"
);
values
.
put
(
valueId
,
valueName
);
}
formType
=
new
EnumFormType
(
values
);
}
else
if
(
typeText
!=
null
)
{
formType
=
formTypes
.
get
(
typeText
);
if
(
formType
==
null
)
{
if
(
"enum"
.
equals
(
formType
))
{
Map
<
String
,
String
>
values
=
new
HashMap
<
String
,
String
>();
for
(
Element
valueElement:
formPropertyElement
.
elements
(
"value"
))
{
String
valueId
=
valueElement
.
attribute
(
"id"
);
String
valueName
=
valueElement
.
attribute
(
"name"
);
values
.
put
(
valueId
,
valueName
);
}
formType
=
new
EnumFormType
(
values
);
}
else
{
bpmnParse
.
addError
(
"unknown type '"
+
typeText
+
"'"
,
formPropertyElement
);
}
bpmnParse
.
addError
(
"unknown type '"
+
typeText
+
"'"
,
formPropertyElement
);
}
}
return
formType
;
...
...
modules/activiti-engine/src/test/java/org/activiti/engine/test/forms/FormsTest.java
浏览文件 @
c35e987d
...
...
@@ -153,4 +153,42 @@ public class FormsTest extends ActivitiInternalTestCase {
assertEquals
(
"rubensstraat"
,
address
.
getStreet
());
assertEquals
(
expectedVariables
,
variables
);
}
@SuppressWarnings
(
"unchecked"
)
@Deployment
public
void
testFormPropertyDetails
()
{
StartFormData
startFormData
=
formService
.
getStartFormData
(
"FormPropertyDetails:1"
);
FormProperty
property
=
startFormData
.
getFormProperties
().
get
(
0
);
assertEquals
(
"speaker"
,
property
.
getId
());
assertNull
(
property
.
getValue
());
assertTrue
(
property
.
isReadable
());
assertTrue
(
property
.
isWritable
());
assertFalse
(
property
.
isRequired
());
assertEquals
(
"string"
,
property
.
getType
().
getName
());
property
=
startFormData
.
getFormProperties
().
get
(
1
);
assertEquals
(
"start"
,
property
.
getId
());
assertNull
(
property
.
getValue
());
assertTrue
(
property
.
isReadable
());
assertTrue
(
property
.
isWritable
());
assertFalse
(
property
.
isRequired
());
assertEquals
(
"date"
,
property
.
getType
().
getName
());
assertEquals
(
"dd-MMM-yyyy"
,
property
.
getType
().
getInformation
(
"datePattern"
));
property
=
startFormData
.
getFormProperties
().
get
(
2
);
assertEquals
(
"direction"
,
property
.
getId
());
assertNull
(
property
.
getValue
());
assertTrue
(
property
.
isReadable
());
assertTrue
(
property
.
isWritable
());
assertFalse
(
property
.
isRequired
());
assertEquals
(
"enum"
,
property
.
getType
().
getName
());
Map
<
String
,
String
>
values
=
(
Map
)
property
.
getType
().
getInformation
(
"values"
);
Map
<
String
,
String
>
expectedValues
=
new
HashMap
<
String
,
String
>();
expectedValues
.
put
(
"left"
,
"Go Left"
);
expectedValues
.
put
(
"right"
,
"Go Right"
);
expectedValues
.
put
(
"up"
,
"Go Up"
);
expectedValues
.
put
(
"down"
,
"Go Down"
);
assertEquals
(
expectedValues
,
values
);
}
}
modules/activiti-engine/src/test/resources/org/activiti/engine/test/forms/FormsTest.testFormPropertyDetails.bpmn20.xml
0 → 100644
浏览文件 @
c35e987d
<?xml version="1.0" encoding="UTF-8" ?>
<definitions
id=
"definitions"
targetNamespace=
"http://activiti.org/bpmn20"
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:a=
"http://activiti.org/bpmn-extensions"
>
<process
id=
"FormPropertyDetails"
>
<startEvent
id=
"start"
>
<extensionElements>
<a:formProperty
a:id=
"speaker"
a:name=
"Speaker"
a:variable=
"SpeakerName"
a:type=
"string"
/>
<a:formProperty
a:id=
"start"
a:type=
"date"
a:datePattern=
"dd-MMM-yyyy"
/>
<a:formProperty
a:id=
"direction"
a:type=
"enum"
>
<a:value
a:id=
"left"
a:name=
"Go Left"
/>
<a:value
a:id=
"right"
a:name=
"Go Right"
/>
<a:value
a:id=
"up"
a:name=
"Go Up"
/>
<a:value
a:id=
"down"
a:name=
"Go Down"
/>
</a:formProperty>
</extensionElements>
</startEvent>
</process>
</definitions>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录