Ejemplo n.º 1
0
    @Override
    protected IStatus run(IProgressMonitor monitor) {
      try {
        ArrayList<String> appli = new ArrayList<String>();
        for (MindPathEntry mpe : _mp.getRawMinpath()) {
          if (mpe.getEntryKind() == MindPathKind.APPLI) {
            String mpename = mpe.getName();
            appli.add(mpename);
          }
        }
        StringBuilder srcVar = new StringBuilder();
        for (String a : appli) {
          srcVar.append(a);
          srcVar.append(" ");
        }
        if (srcVar.length() != 0)
          srcVar.setLength(srcVar.length() - 2); // remove last collon if length > 0

        // TODO: enable multi-target + robustness
        MindProperties mp = new MindProperties(_mp.getProject());
        if (!appli.isEmpty()) {
          // Nowadays since our properties file format only can define ONE target/binary
          // combination, we take field 0 only
          // and skip the other ones
          String appli0 = appli.get(0);
          String[] appli0Split = appli0.split(":");
          mp.setVarAndSave(
              Messages.CDTUtil_TargetComponent, appli0Split[0] != null ? appli0Split[0] : "");
          mp.setVarAndSave(
              Messages.CDTUtil_BinaryName, appli0Split[1] != null ? appli0Split[1] : "");
        } else {
          mp.setVarAndSave(Messages.CDTUtil_TargetComponent, "");
          mp.setVarAndSave(Messages.CDTUtil_BinaryName, "");
        }

        MindIdeCore.rebuild(_mp);
      } catch (CoreException e) {
        MindActivator.log(new Status(Status.ERROR, MindActivator.ID, getName(), e));
      }
      return Status.OK_STATUS;
    }