コード例 #1
0
  protected void addDefinitionIcons(
      List<IResource> resourcesToExport, final IRepositoryStore store, ConnectorDefinition def) {
    if (def.getIcon() != null) {
      IFile iconFile = store.getResource().getFile(Path.fromOSString(def.getIcon()));
      if (iconFile != null && iconFile.exists()) {
        resourcesToExport.add(iconFile);
      } else {
        URL url =
            ConnectorPlugin.getDefault()
                .getBundle()
                .getResource(ConnectorDefRepositoryStore.STORE_NAME + "/" + def.getIcon());
        if (url != null) {
          try {
            IFile f = store.getResource().getFile(def.getIcon());
            if (!f.exists()) {
              InputStream is = url.openStream();
              f.create(is, true, Repository.NULL_PROGRESS_MONITOR);
              if (!resourcesToExport.contains(f)) {
                resourcesToExport.add(f);
              }
              cleanAfterExport.add(f);
              is.close();
            }

          } catch (Exception e) {
            BonitaStudioLog.error(e);
          }
        }
      }
    }

    for (Category c : def.getCategory()) {
      if (c.getIcon() != null) {
        IFile iconFile = store.getResource().getFile(Path.fromOSString(c.getIcon()));
        if (iconFile != null && iconFile.exists()) {
          if (!resourcesToExport.contains(iconFile)) {
            resourcesToExport.add(iconFile);
          }
        } else {
          URL url =
              ConnectorPlugin.getDefault()
                  .getBundle()
                  .getResource(ConnectorDefRepositoryStore.STORE_NAME + "/" + c.getIcon());
          if (url != null) {
            try {
              IFile f = store.getResource().getFile(c.getIcon());
              if (!f.exists()) {
                InputStream is = url.openStream();
                f.create(is, true, Repository.NULL_PROGRESS_MONITOR);
                if (!resourcesToExport.contains(f)) {
                  resourcesToExport.add(f);
                }
                cleanAfterExport.add(f);
                is.close();
              }
            } catch (Exception e) {
              BonitaStudioLog.error(e);
            }
          }
        }
      }
    }
  }