コード例 #1
0
ファイル: RedProjectEditor.java プロジェクト: nokia/RED
 @Override
 public void doSave(final IProgressMonitor monitor) {
   for (final IEditorPart dirtyEditor : getDirtyEditors()) {
     dirtyEditor.doSave(monitor);
   }
   final RobotProject project = editorInput.getRobotProject();
   project.clearAll();
   new RedEclipseProjectConfigWriter()
       .writeConfiguration(editorInput.getProjectConfiguration(), project);
 }
コード例 #2
0
ファイル: RedProjectEditor.java プロジェクト: nokia/RED
  private void installResourceListener() {
    final IProject project = editorInput.getRobotProject().getProject();
    resourceListener =
        new RedXmlFileChangeListener(
            project,
            new OnRedConfigFileChange() {

              @Override
              public void whenFileWasRemoved() {
                SwtThread.syncExec(
                    new Runnable() {
                      @Override
                      public void run() {
                        getSite().getPage().closeEditor(RedProjectEditor.this, false);
                      }
                    });
              }

              @Override
              public void whenFileChanged() {
                editorInput.refreshProjectConfiguration(
                    ((IFileEditorInput) getEditorInput()).getFile());
                setupEnvironmentLoadingJob();
              }
            });
    ResourcesPlugin.getWorkspace()
        .addResourceChangeListener(resourceListener, IResourceChangeEvent.POST_CHANGE);
  }
コード例 #3
0
ファイル: RedProjectEditor.java プロジェクト: nokia/RED
  private void setupEnvironmentLoadingJob() {
    final RobotProject project = editorInput.getRobotProject();
    final String activeEnv = "activeEnv";
    final String allEnvs = "allEnvs";

    final Job envLoadingJob =
        new Job("Reading available frameworks") {

          @Override
          protected IStatus run(final IProgressMonitor monitor) {
            eventBroker.send(
                RobotProjectConfigEvents.ROBOT_CONFIG_ENV_LOADING_STARTED,
                editorInput.getProjectConfiguration());

            final RobotRuntimeEnvironment activeEnvironment =
                project == null ? null : project.getRuntimeEnvironment();
            if (monitor.isCanceled()) {
              return Status.CANCEL_STATUS;
            }
            final List<RobotRuntimeEnvironment> allRuntimeEnvironments =
                RedPlugin.getDefault().getAllRuntimeEnvironments();
            if (monitor.isCanceled()) {
              return Status.CANCEL_STATUS;
            }
            setProperty(createKey(activeEnv), activeEnvironment);
            setProperty(createKey(allEnvs), allRuntimeEnvironments);
            return Status.OK_STATUS;
          }
        };
    envLoadingJob.addJobChangeListener(
        new JobChangeAdapter() {

          @SuppressWarnings("unchecked")
          @Override
          public void done(final IJobChangeEvent event) {
            final RobotRuntimeEnvironment env =
                (RobotRuntimeEnvironment) envLoadingJob.getProperty(createKey(activeEnv));
            final List<RobotRuntimeEnvironment> allEnvironments =
                (List<RobotRuntimeEnvironment>) envLoadingJob.getProperty(createKey(allEnvs));

            eventBroker.send(
                RobotProjectConfigEvents.ROBOT_CONFIG_ENV_LOADED,
                new Environments(allEnvironments, env));
          }
        });
    envLoadingJob.schedule();
  }