【问题标题】:Rhapsody API reload projectRhapsody API 重载项目
【发布时间】:2018-11-30 02:41:09
【问题描述】:

我正在创建一个 Rhapsody JavaAPI 插件,它将清理当前项目文件并复制到一个新模型中。这是为了给开发人员一个新的工作副本,这样他们就不必手动关闭 rhapsody 并复制干净的模型。

我的困境是当我关闭活动项目时,它会按预期将其从 Rhapsody 视图中删除。当我尝试重新加载新的 rpy 文件时,视图不会改变,模型也不会重新加载。

我将如何重新加载项目?

这是我的插件(注意类调用工作正常。它在方法 clean 中我遇到了问题)。

public class CMMCleaner {
  private Path rootDir;
  private Path rpyFile;
  private IRPApplication rpyApp;

  public CMMCleaner(final Path rootDir, final IRPApplication rpyApp) {
    this.rootDir = rootDir;
    if (!Files.exists(rootDir)) throw new IllegalArgumentException(rootDir + " does not exist");
    this.rpyApp = rpyApp;
    this.rpyFile = Paths.get(this.rpyApp.activeProject().getCurrentDirectory()).resolve(this.rpyApp.activeProject().getFilename());
  }

  public void clean() {
    try {
       rpyApp.activeProject.close();
       Path cleanDir = this.rootDir.resolve("CMM_starting_model");
       Path oldDir = this.rootDir.resolve("CMM_model");

       Files.walk(oldDir)
         .sorted(Comparator.reverseOrder())
         .map(Path::toFile)
         .forEach(File::delete);

      Files.walk(cleanDir)
        .filter(p -> Files.isRegularFile(p))
        .forEach(cleanFile -> {
          Path path = oldDir.resolve(cleanDir.relativize(cleanFile));
          try {
            Files.createDirectories(path.getParent());
            Files.copy(cleanFile, path, StandardCopyOption.REPLACE_EXISTING);
          } catch (Exception ex) {
            ex.printStackTrace();
          }
        });
      rpyApp.openProject(this.rpyFile.toAbsolutePath().toString());
      rpyApp.insertProject(this.rpyFile.toAbsolutePath().toString());
      rpyApp.activeProject();
      rpyApp.refreshAllViews();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

没有抛出异常,但如前所述,项目确实关闭了,我可以直观地看到正在删除和复制的文件,但之后在 rhapsody 中什么也没有发生。

【问题讨论】:

    标签: java rhapsody


    【解决方案1】:

    我能够通过删除以下行来解决问题:

    rpyApp.activeProject.close();rpyApp.insertProject(this.rpyFile.toAbsolutePath().toString());

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多