@Override
    public IStatus runInUIThread(IProgressMonitor monitor) {
      // BPMNDefineModel define = new BPMNDefineModel();
      // define.setCurrent_version_flag("Y");
      // define.setDescription("XX");
      // define.setName("Hello");
      // define.setProcess_code("007");
      // define.setProcess_version("001");
      define.setDefine(InputStreamUtil.stream2String(TestBPMN.getStream()));

      BPMService service = new BPMService(model);
      service.setServiceType(Endpoints.T_CREATE_BPM);
      // service.setBPMNDefineModel(define);
      service.setParas(makeParas(define));
      BPMServiceRunner runner = new BPMServiceRunner(service);
      BPMServiceResponse list = runner.saveBPM();
      int status = list.getStatus();
      if (BPMServiceResponse.sucess == status && list.getDefines().size() > 0) {
        List<BPMNDefineModel> defines = list.getDefines();
        BPMNDefineModel repDefine = defines.get(0);
        if (repDefine != null) {

          BPMNDefineCategory bpmnDefineCategory =
              model.getBPMNDefineCategory(repDefine.getCategory_id());
          if (bpmnDefineCategory != null) {
            bpmnDefineCategory.addDefine(repDefine);
            viewer.getTreeViewer().refresh(bpmnDefineCategory);
            viewer.getTreeViewer().expandToLevel(bpmnDefineCategory, 1);
          } else {
            model.addDefine(repDefine);
            viewer.getTreeViewer().refresh(model);
            viewer.getTreeViewer().expandToLevel(model, 1);
          }
          try {
            ByteArrayInputStream is =
                new ByteArrayInputStream(repDefine.getDefines().getBytes("UTF-8"));
            IEditorPart openEditor =
                viewer
                    .getSite()
                    .getPage()
                    .openEditor(
                        new BPMServiceInputStreamEditorInput(is), AuroraBpmnEditor.ID, true);
            if (openEditor instanceof AuroraBpmnEditor) {
              ((AuroraBpmnEditor) openEditor).setDefine(repDefine);
            }
          } catch (PartInitException e) {
            e.printStackTrace();
          } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
          }
        }

      } else {
        String serviceL = Endpoints.getSaveService(model.getHost(), "").getUrl();
        MessageDialog.openError(
            this.getDisplay().getActiveShell(), "Error", "服务" + serviceL + "未响应");
        return Status.CANCEL_STATUS;
      }
      return Status.OK_STATUS;
    }