jbpm4的流程设计器对中文的支持还是不理想,在研究了插件源码后,做了如下下修改解决中文乱码问题
1.在jbpm设置界面增加一个编码属性设置修改org.jboss.tools.jbpm.common插件中的JbpmLocationsPage类添加一个Text encode用来设置编码方式
添加的代码内容如下
private Text encode;
protected Control createContents(Composite parent) {
Composite clientArea = createClientArea(parent);
createLabels(clientArea);
createJbpmHomeListTable(clientArea);
createButtons(clientArea);
//加入下面代码
createEncodeContent(parent);
return null;
}
private void createEncodeContent(Composite parent) {
Composite clientArea = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
clientArea.setLayout(layout);
Label encodeLabel = new Label(clientArea, SWT.NONE);
encodeLabel.setText("encode:");
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
encode = new Text(clientArea, SWT.SINGLE | SWT.BORDER);
encode.setLayoutData(gridData);
initEncode();
}
private void initEncode(){
String encodeValue = plugin.getPreferenceStore().getString("encode");
if(encodeValue == null || encodeValue == "") encodeValue = "UTF-8";
encode.setText(encodeValue);
}
public boolean performOk() {
String name = "";
PreferencesManager inputManager = (PreferencesManager) tableViewer
.getInput();
inputManager.saveInstallations();
TableItem item = getCheckedItem(tableViewer);
if (item != null) {
name = item.getText(0);
}
plugin.getPreferenceStore().setValue(Constants.JBPM_NAME, name);
//加入下面代码
plugin.getPreferenceStore().setValue("encode", encode.getText());
return true;
}
public void performDefaults() {
plugin.getPreferenceStore().setToDefault(Constants.JBPM_NAME);
PreferencesManager inputManager = (PreferencesManager) tableViewer
.getInput();
inputManager.getJbpmInstallationMap().clear();
tableViewer.setInput(inputManager);
checkItemToCheck(tableViewer);
setMessage("");
updateButtons();
setValid(true);
//加入下面代码
initEncode();
}
2.修改org.jboss.tools.flow.jpdl4插件中JpdlSerializer,ProcessSerializer,NewJpdl4FileWizardPage 3个类中有关设置文件编码的地方
JpdlSerializer类中serialize方法修改后代码为
public static void serialize(Wrapper wrapper, OutputStream os) throws IOException {
String encodeValue = Activator.getDefault().getPreferenceStore().getString("encode");
if(encodeValue == null || encodeValue == "") encodeValue = "UTF-8";
StringBuffer buffer = new StringBuffer();
serialize(wrapper, buffer, 0);
Writer writer = new OutputStreamWriter(os, encodeValue);
writer.write(buffer.toString());
writer.close();
}
根据1.中的配置编码来设置文件内容编码,默认编码为UTF-8
ProcessSerializer中appendOpening方法修改后代码为
public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
String encodeValue = Activator.getDefault().getPreferenceStore().getString("encode");
if(encodeValue == null || encodeValue == "") encodeValue = "UTF-8";
buffer.append("<?xml version=\"1.0\" encoding=\"").append(encodeValue).append("\"?>\n\n");
buffer.append("<" + Registry.getXmlNodeName(wrapper.getElement()));
appendAttributes(buffer, wrapper, level);
}
NewJpdl4FileWizardPage中getInitialContentsAsString方法修改后代码为
private String getInitialContentsAsString() {
String encodeValue = Activator.getDefault().getPreferenceStore().getString("encode");
if(encodeValue == null || encodeValue == "") encodeValue = "UTF-8";
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version=\"1.0\" encoding=\"").append(encodeValue).append("\"?>\n\n");
buffer.append("<process xmlns=\"http://jbpm.org/4.0/jpdl\" name=\"");
buffer.append(getFileName().substring(0, getFileName().lastIndexOf(getFileExtension()) - 1));
buffer.append("\">\n</process>");
return buffer.toString();
}
分享到:
相关推荐
通过阅读这份中文用户指南,读者可以了解如何使用jbPM4.0进行流程设计、部署流程定义、启动流程实例、管理任务、监控流程执行以及进行系统配置。指南中通常会包含丰富的示例、图解和代码片段,以帮助用户快速上手。...
【JBPM4.0经典实例】是一个以JBPM4.0为核心技术的毕业设计管理系统,该系统涵盖了两个关键的工作流程,即毕业设计选题出题流程和毕业设计提交流程。JBPM(Java Business Process Management)是一款开源的工作流管理...
jbpm4.0工作流引擎中文版 新的出来了 悄悄的 悄悄的
jBPM4.0是一款先进的业务流程管理(Business Process Management,简称BPM)框架,它基于Java语言,提供了一套完整的解决方案,用于设计、执行和监控业务流程。作为一款开源工具,jBPM4.0因其灵活性、可扩展性和易用...
JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_...
JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一)...
JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...
jbpm(Java Business Process Management)是一个开源的工作流和业务流程管理平台,它提供了一套完整的工具链,用于设计、执行和管理工作流。在本示例中,用户可以了解如何在Java环境中集成并应用jbpm4进行流程定义...
jBPM 4.0开发手册 J2EE企业级应用开发必备
jbpm4.0是Business Process Management (BPM)框架的一个早期版本,专为开发者提供了一套全面的工具和API来设计、执行和管理业务流程。本手册作为开发者指南,将深入探讨jbpm4.0的核心功能和使用方法,帮助开发者理解...
jbpm4.0是Jboss企业级业务流程管理(Business Process Management)系统的一个重要版本,它为开发者提供了全面的工作流解决方案。本课程旨在深入浅出地介绍jbpm4.0的核心概念、优势以及如何在实际项目中应用。 首先...
4. **图形化设计工具**:JBPM提供了图形化的流程设计器,使得非技术背景的用户也能轻松创建复杂的业务流程。 5. **强大的API**:JBPM提供了一套丰富的API,便于开发者通过编程方式操作流程实例。 #### 三、JBPM4.0...
MyEclipse是一个流行的集成开发环境(IDE),它可以与JBPM4.0集成,以实现业务流程管理。JBPM4.0是一个基于Java的开源工作流引擎,它提供了强大的业务流程管理功能。本文将介绍如何在MyEclipse中优化JBPM4.0的配置。...
**JBPM4.0用户指南**是一份详细阐述如何使用JBPM(Java Business Process Management)4.0版本的文档,旨在帮助用户理解并有效利用这一流程管理工具。JBPM是一款开源的工作流管理系统,用于设计、执行和管理业务流程...
在Java开发环境中,jbPM 4.0可以无缝集成到Spring、EJB等架构中,为企业应用提供灵活的工作流解决方案。开发者可以通过API、DSL(Domain Specific Language)或者可视化工具来设计和管理流程。jbPM的灵活性和强大...
JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的业务流程管理解决方案。在JBPM4.0版本中,系统的核心是Process Virtual Machine(PVM)和Job Process Definition ...
jbpm4.0是Business Process Management(业务流程管理)框架的一个早期版本,它提供了一整套工具和服务,用于设计、部署和执行业务流程。这个中文手册-用户指南旨在帮助中国用户更好地理解和使用jbpm4.0系统,尤其...
JBPM4.0是基于Java的开源工作流引擎,它提供了丰富的API和图形界面工具,用于设计、执行和管理业务流程。在Myeclipse环境下进行JBPM4.0的配置,涉及到多个组件的协同工作,包括但不限于JDK、Tomcat、MyEclipse、JBPM...
**jbPM 4.0 中文文档概览** jbPM(Java Business Process Management)是一款开源的工作流管理系统,专为业务流程自动化和管理设计。jbPM 4.0 是该系统的第四个主要版本,它提供了丰富的功能,包括流程建模、执行、...