private void invokeRun() {
   actionsEnabled = false;
   FileObject[] buildFiles = properties.getProjectFiles(ExecutionLevel.BUILD);
   if (!executedBuildFiles.isEmpty()) {
     Set<FileObject> files = new HashSet<FileObject>(Arrays.asList(buildFiles));
     files.removeAll(executedBuildFiles);
     buildFiles = files.toArray(EMPTY_FILES);
   }
   FileObject[] runFiles = properties.getProjectFiles(ExecutionLevel.RUN);
   FileHandlerIterator itr = new FileHandlerIterator(buildFiles, runFiles);
   itr.start();
 }
  DefaultPraxisProject(FileObject directory, FileObject projectFile, ProjectState state)
      throws IOException {
    this.directory = directory;
    this.projectFile = projectFile;
    this.state = state;
    properties = parseProjectFile(projectFile);
    propsListener = new PropertiesListener();
    properties.addPropertyChangeListener(propsListener);

    Lookup base =
        Lookups.fixed(
            new Object[] {
              this,
              properties,
              new Info(),
              new ActionImpl(),
              state,
              new PraxisCustomizerProvider(this),
              new PraxisLogicalViewProvider(this),
              new BaseTemplates(),
              UILookupMergerSupport.createPrivilegedTemplatesMerger()
            });

    this.lookup = LookupProviderSupport.createCompositeLookup(base, LOOKUP_PATH);
    helperListener = new HelperListener();
    ProjectHelper.getDefault()
        .addPropertyChangeListener(
            WeakListeners.propertyChange(helperListener, ProjectHelper.getDefault()));
  }
 private void invokeBuild() {
   actionsEnabled = false;
   executedBuildFiles.clear();
   FileObject[] buildFiles = properties.getProjectFiles(ExecutionLevel.BUILD);
   FileHandlerIterator itr = new FileHandlerIterator(buildFiles, EMPTY_FILES);
   itr.start();
 }