`

jbpm4.0流程设计器中文乱码解决方案

    博客分类:
  • jbpm
阅读更多
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经典实例

    【JBPM4.0经典实例】是一个以JBPM4.0为核心技术的毕业设计管理系统,该系统涵盖了两个关键的工作流程,即毕业设计选题出题流程和毕业设计提交流程。JBPM(Java Business Process Management)是一款开源的工作流管理...

    jbpm4.0工作流引擎中文版

    jbpm4.0工作流引擎中文版 新的出来了 悄悄的 悄悄的

    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_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差异(一).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差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...

    jbpm4.0三个例子

    jbpm(Java Business Process Management)是一个开源的工作流和业务流程管理平台,它提供了一套完整的工具链,用于设计、执行和管理工作流。在本示例中,用户可以了解如何在Java环境中集成并应用jbpm4进行流程定义...

    jBPM 4.0开发手册

    jBPM 4.0开发手册 J2EE企业级应用开发必备

    jbpm4.0 中文手册-开发者指南

    jbpm4.0是Business Process Management (BPM)框架的一个早期版本,专为开发者提供了一套全面的工具和API来设计、执行和管理业务流程。本手册作为开发者指南,将深入探讨jbpm4.0的核心功能和使用方法,帮助开发者理解...

    jbpm4.0 介绍与应用 第一课

    jbpm4.0是Jboss企业级业务流程管理(Business Process Management)系统的一个重要版本,它为开发者提供了全面的工作流解决方案。本课程旨在深入浅出地介绍jbpm4.0的核心概念、优势以及如何在实际项目中应用。 首先...

    JBPM4.0用户指南(中文)

    4. **图形化设计工具**:JBPM提供了图形化的流程设计器,使得非技术背景的用户也能轻松创建复杂的业务流程。 5. **强大的API**:JBPM提供了一套丰富的API,便于开发者通过编程方式操作流程实例。 #### 三、JBPM4.0...

    Myeclipse优化JBPM4.0配置.docx

    MyEclipse是一个流行的集成开发环境(IDE),它可以与JBPM4.0集成,以实现业务流程管理。JBPM4.0是一个基于Java的开源工作流引擎,它提供了强大的业务流程管理功能。本文将介绍如何在MyEclipse中优化JBPM4.0的配置。...

    JBPM4.0用户指南

    **JBPM4.0用户指南**是一份详细阐述如何使用JBPM(Java Business Process Management)4.0版本的文档,旨在帮助用户理解并有效利用这一流程管理工具。JBPM是一款开源的工作流管理系统,用于设计、执行和管理业务流程...

    jBPM4.0.rar_jbpm

    在Java开发环境中,jbPM 4.0可以无缝集成到Spring、EJB等架构中,为企业应用提供灵活的工作流解决方案。开发者可以通过API、DSL(Domain Specific Language)或者可视化工具来设计和管理流程。jbPM的灵活性和强大...

    JBPM4.0源码以及分析

    JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的业务流程管理解决方案。在JBPM4.0版本中,系统的核心是Process Virtual Machine(PVM)和Job Process Definition ...

    jbpm4.0 中文手册-用户指南

    jbpm4.0是Business Process Management(业务流程管理)框架的一个早期版本,它提供了一整套工具和服务,用于设计、部署和执行业务流程。这个中文手册-用户指南旨在帮助中国用户更好地理解和使用jbpm4.0系统,尤其...

    Myeclipse优化JBPM4.0配置

    JBPM4.0是基于Java的开源工作流引擎,它提供了丰富的API和图形界面工具,用于设计、执行和管理业务流程。在Myeclipse环境下进行JBPM4.0的配置,涉及到多个组件的协同工作,包括但不限于JDK、Tomcat、MyEclipse、JBPM...

    jBPM4.0中文文档.pdf

    **jbPM 4.0 中文文档概览** jbPM(Java Business Process Management)是一款开源的工作流管理系统,专为业务流程自动化和管理设计。jbPM 4.0 是该系统的第四个主要版本,它提供了丰富的功能,包括流程建模、执行、...

Global site tag (gtag.js) - Google Analytics