Esempio n. 1
0
 /* (non-Javadoc)
  * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
  */
 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
   if (this.viewer == null) {
     MakeCorePlugin.getDefault().getTargetManager().addListener(this);
   }
   this.viewer = (StructuredViewer) viewer;
   IWorkspace oldWorkspace = null;
   IWorkspace newWorkspace = null;
   if (oldInput instanceof IWorkspace) {
     oldWorkspace = (IWorkspace) oldInput;
   } else if (oldInput instanceof IContainer) {
     oldWorkspace = ((IContainer) oldInput).getWorkspace();
   } else if (oldInput instanceof TargetSourceContainer) {
     oldWorkspace = ((TargetSourceContainer) oldInput).getContainer().getWorkspace();
   }
   if (newInput instanceof IWorkspace) {
     newWorkspace = (IWorkspace) newInput;
   } else if (newInput instanceof IContainer) {
     newWorkspace = ((IContainer) newInput).getWorkspace();
   } else if (newInput instanceof TargetSourceContainer) {
     newWorkspace = ((TargetSourceContainer) newInput).getContainer().getWorkspace();
   }
   if (oldWorkspace != newWorkspace) {
     ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
     if (oldWorkspace != null) {
       InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).removePreferenceChangeListener(this);
       mngr.removeCProjectDescriptionListener(this);
       oldWorkspace.removeResourceChangeListener(this);
     }
     if (newWorkspace != null) {
       newWorkspace.addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
       mngr.addCProjectDescriptionListener(this, CProjectDescriptionEvent.APPLIED);
       InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).addPreferenceChangeListener(this);
     }
   }
 }
 @Override
 public void start(BundleContext context) throws Exception {
   super.start(context);
   overlayresourceChangeListener = new OverlayResourceChangeListener();
   IWorkspace workspace = ResourcesPlugin.getWorkspace();
   workspace.addResourceChangeListener(overlayresourceChangeListener);
 }
  /* (non-Javadoc)
   * @see org.lamport.tla.toolbox.lifecycle.ToolboxLifecycleParticipant#postWorkbenchWindowOpen()
   */
  public void postWorkbenchWindowOpen() {
    // Check if there have been any markers set already
    showOrHideProblemView();

    // ...and listen for new markers
    final IWorkspace workspace = ResourcesPlugin.getWorkspace();
    workspace.addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
  }
  public ExternalSettingProvider() {
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    SdrRoot sdrroot = SdrUiPlugin.getDefault().getTargetSdrRoot();

    // We add two listeners, one to the workspace and one to the SDRROOT.
    // The workspace listener will be ignored if it already exists but we check for the sdrroot
    // eAdapter
    if (sdrroot != null && !sdrroot.eAdapters().contains(sdrrootlistener)) {
      sdrroot.eAdapters().add(sdrrootlistener);
    }

    workspace.addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
  }
  private void createWorkspaceListener() {
    IWorkspace workspace = ResourcesPlugin.getWorkspace();

    IResourceChangeListener listener =
        new IResourceChangeListener() {
          public void resourceChanged(IResourceChangeEvent event) {
            IResourceDelta projectDelta;
            if (isServerAdded) {
              IResourceDelta resourceDelta = event.getDelta();
              for (IResourceDelta modifideResourceDelta : resourceDelta.getAffectedChildren()) {
                rootProject = (IProject) modifideResourceDelta.getResource();
                projectDelta = modifideResourceDelta;
                IResourceDeltaVisitor visitor =
                    new IResourceDeltaVisitor() {
                      public boolean visit(IResourceDelta delta) throws CoreException {
                        IResource resource = delta.getResource();
                        resourceChngeKind = delta.getKind();
                        if (resource.getType() == IResource.FILE
                            || resource.getType() == IResource.FOLDER) {
                          IServer[] serversForProject = getServersForProject(rootProject);
                          for (IServer server : serversForProject) {
                            if (!CARBON_SERVER_TYPE_REMOTE.equalsIgnoreCase(
                                server.getServerType().getId())) {
                              CarbonServerInformation serverInformation =
                                  getAppServerInformation().get(server);
                              if (!serverInformation.getChangedProjects().contains(rootProject)) {
                                serverInformation.getChangedProjects().add(rootProject);
                                hotUpdateWebApp(server.getId(), resource, rootProject.getName());
                              }
                            }
                          }
                        }
                        return true;
                      }
                    };
                try {
                  projectDelta.accept(visitor);
                } catch (CoreException e) {
                  log.error(" adding IResourceDeltaVisitor to projectDelta was failed " + e);
                }
              }
            }
          }
        };
    workspace.addResourceChangeListener(listener, IResourceChangeEvent.POST_BUILD);
  }
  /**
   * {@inheritDoc}
   *
   * @see org.eclipse.mylyn.docs.intent.collab.repository.Repository#getOrCreateSession()
   */
  public synchronized Object getOrCreateSession() throws RepositoryConnectionException {

    // We first initialize the resource set if needed
    if (!isResourceSetLoaded) {
      try {
        initializeResourceSet();
      } catch (CoreException e) {
        throw new RepositoryConnectionException(e.getMessage());
      }
    }
    if (this.session == null) {
      // Creation of a Workspace session that will send notifications when the workspace's resources
      // corresponding to repository resources change
      this.session = new WorkspaceSession(this);
      IWorkspace workspace = ResourcesPlugin.getWorkspace();
      workspace.addResourceChangeListener(session);
    }
    return this.session;
  }
  private static void rebuildGoogleProjectsIfPluginVersionChanged() {
    boolean closedProjectsInWorkspace = false;

    // Rebuild all (open) Google projects in the workspace
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    for (IProject project : workspace.getRoot().getProjects()) {
      if (project.isOpen()) {
        rebuildGoogleProjectIfPluginVersionChanged(project);
      } else {
        closedProjectsInWorkspace = true;
      }
    }

    // Add listeners for all closed projects, so we can rebuild them, too,
    // when they're opened (but only if they are Google projects).
    if (closedProjectsInWorkspace) {
      workspace.addResourceChangeListener(
          new IResourceChangeListener() {
            public void resourceChanged(IResourceChangeEvent event) {
              IResourceDelta delta = event.getDelta();
              if (delta != null) {
                // Find any project-level changes
                IResourceDelta[] projectDeltas =
                    delta.getAffectedChildren(IResourceDelta.CHANGED, IResource.PROJECT);

                // The master delta may include more than one project delta
                for (IResourceDelta projectDelta : projectDeltas) {
                  // Find any deltas for projects being opened/closed
                  if ((projectDelta.getFlags() & IResourceDelta.OPEN) > 0) {
                    IProject project = (IProject) projectDelta.getResource();
                    if (project.isOpen()) {
                      rebuildGoogleProjectIfPluginVersionChanged(project);
                    }
                  }
                }
              }
            }
          });
    }
  }
Esempio n. 8
0
  void controlJSPIndexing(boolean enable) {
    if (fgJSPIndexingIsEnabled != enable) {
      fgJSPIndexingIsEnabled = enable;
      IWorkspace workspace = ResourcesPlugin.getWorkspace();
      if (enable) {

        IResourceProxyVisitor visitor =
            new IResourceProxyVisitor() {
              public boolean visit(IResourceProxy proxy) throws CoreException {
                String name = proxy.getName();
                int pos = name.lastIndexOf('.');
                if (pos >= 0) {
                  String extension = name.substring(pos + 1);
                  if (JSP_TYPE.equalsIgnoreCase(extension)) {
                    IResource r = proxy.requestResource();
                    if (r instanceof IFile) jspAdded((IFile) r);
                  }
                }
                return true;
              }
            };
        try {
          workspace.getRoot().accept(visitor, 0);
        } catch (CoreException e) {
          log("visiting jsp files", e); // $NON-NLS-1$
        }

        workspace.addResourceChangeListener(
            this,
            //					IResourceChangeEvent.PRE_AUTO_BUILD |
            //					IResourceChangeEvent.POST_AUTO_BUILD |
            IResourceChangeEvent.POST_CHANGE
                | IResourceChangeEvent.PRE_DELETE
                | IResourceChangeEvent.PRE_CLOSE);
      } else {
        workspace.removeResourceChangeListener(this);
      }
    }
  }
  /**
   * Provides instantiation of SensorProperties, which has information in the sensor.properties
   * file, and executes <code>doCommand</code> to activate sensor. Note that the Eclipse instance is
   * lazily instantiated when static <code>getInstance()</code> was called.
   *
   * @throws SensorShellException If error in getting sensorshell.
   */
  private EclipseSensor() throws SensorShellException {
    this.timer = new Timer();
    this.stateChangeTimerTask = new StateChangeTimerTask();
    this.buffTransTimerTask = new BuffTransTimertask();

    // Load sensor's setting.
    this.hotDeploySensorShell();

    // Adds this EclipseSensorPlugin instance to IResourceChangeListener
    // so that project event and file save event is notified.
    IWorkspace workspace = ResourcesPlugin.getWorkspace();

    // Adds IResourceChangeListener-implemented ResourceChangeAdapter before checking isEnabled
    // for piemontese sensor because this listener is used in piemontese sensor even though
    // the main sensor.properties does not exist in the <hackystat_home>.
    workspace.addResourceChangeListener(
        new ResourceChangeAdapter(), IResourceChangeEvent.POST_CHANGE);

    // Adds element changed listener to get the corresponding change of refactoring.
    JavaCore.addElementChangedListener(new JavaStructureChangeDetector(this));

    initialize();
  }
Esempio n. 10
0
  public void install(ITextViewer textViewer) {
    fViewer = textViewer;

    synchronized (this) {
      if (fThread != null) return;
      fThread = new BackgroundThread(getClass().getName());
    }

    fPartListener = new PartListener();
    IWorkbenchPartSite site = fEditor.getSite();
    IWorkbenchWindow window = site.getWorkbenchWindow();
    window.getPartService().addPartListener(fPartListener);

    fModelListener = new Listener();
    fViewer.addTextInputListener(fModelListener);

    fResourceChangeListener = new ResourceChangeListener();
    IWorkspace workspace = EDTUIPlugin.getWorkspace();
    workspace.addResourceChangeListener(fResourceChangeListener);

    fPropertyListener = new EGLPropertyChangeListener();
    EDTUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fPropertyListener);
  }
 protected final RefactoringStatus performRefactoring(Refactoring ref, boolean providesUndo)
     throws Exception {
   performDummySearch();
   IUndoManager undoManager = getUndoManager();
   if (DESCRIPTOR_TEST) {
     final CreateChangeOperation create =
         new CreateChangeOperation(
             new CheckConditionsOperation(ref, CheckConditionsOperation.ALL_CONDITIONS),
             RefactoringStatus.FATAL);
     create.run(new NullProgressMonitor());
     RefactoringStatus checkingStatus = create.getConditionCheckingStatus();
     if (!checkingStatus.isOK()) return checkingStatus;
     Change change = create.getChange();
     ChangeDescriptor descriptor = change.getDescriptor();
     if (descriptor instanceof RefactoringChangeDescriptor) {
       RefactoringChangeDescriptor rcd = (RefactoringChangeDescriptor) descriptor;
       RefactoringDescriptor refactoringDescriptor = rcd.getRefactoringDescriptor();
       if (refactoringDescriptor instanceof JavaRefactoringDescriptor) {
         JavaRefactoringDescriptor jrd = (JavaRefactoringDescriptor) refactoringDescriptor;
         RefactoringStatus validation = jrd.validateDescriptor();
         if (!validation.isOK()) return validation;
         RefactoringStatus refactoringStatus = new RefactoringStatus();
         Class expected = jrd.getClass();
         RefactoringContribution contribution =
             RefactoringCore.getRefactoringContribution(jrd.getID());
         jrd =
             (JavaRefactoringDescriptor)
                 contribution.createDescriptor(
                     jrd.getID(),
                     jrd.getProject(),
                     jrd.getDescription(),
                     jrd.getComment(),
                     contribution.retrieveArgumentMap(jrd),
                     jrd.getFlags());
         assertEquals(expected, jrd.getClass());
         ref = jrd.createRefactoring(refactoringStatus);
         if (!refactoringStatus.isOK()) return refactoringStatus;
         TestRenameParticipantSingle.reset();
         TestCreateParticipantSingle.reset();
         TestMoveParticipantSingle.reset();
         TestDeleteParticipantSingle.reset();
       }
     }
   }
   final CreateChangeOperation create =
       new CreateChangeOperation(
           new CheckConditionsOperation(ref, CheckConditionsOperation.ALL_CONDITIONS),
           RefactoringStatus.FATAL);
   final PerformChangeOperation perform = new PerformChangeOperation(create);
   perform.setUndoManager(undoManager, ref.getName());
   IWorkspace workspace = ResourcesPlugin.getWorkspace();
   if (fIsPreDeltaTest) {
     IResourceChangeListener listener =
         new IResourceChangeListener() {
           public void resourceChanged(IResourceChangeEvent event) {
             if (create.getConditionCheckingStatus().isOK() && perform.changeExecuted()) {
               TestModelProvider.assertTrue(event.getDelta());
             }
           }
         };
     try {
       TestModelProvider.clearDelta();
       workspace.checkpoint(false);
       workspace.addResourceChangeListener(listener);
       executePerformOperation(perform, workspace);
     } finally {
       workspace.removeResourceChangeListener(listener);
     }
   } else {
     executePerformOperation(perform, workspace);
   }
   RefactoringStatus status = create.getConditionCheckingStatus();
   if (!status.isOK()) return status;
   assertTrue("Change wasn't executed", perform.changeExecuted());
   Change undo = perform.getUndoChange();
   if (providesUndo) {
     assertNotNull("Undo doesn't exist", undo);
     assertTrue("Undo manager is empty", undoManager.anythingToUndo());
   } else {
     assertNull("Undo manager contains undo but shouldn't", undo);
   }
   return null;
 }
Esempio n. 12
0
  /** Constructor */
  public WorkspaceSpecManager() {
    // initialize the spec life cycle manager
    lifecycleManager = new SpecLifecycleManager();

    IProgressMonitor monitor = null;

    IWorkspace ws = ResourcesPlugin.getWorkspace();

    String specLoadedName =
        PreferenceStoreHelper.getInstancePreferenceStore()
            .getString(IPreferenceConstants.I_SPEC_LOADED);

    IProject[] projects = ws.getRoot().getProjects();
    try {

      Spec spec = null;
      for (int i = 0; i < projects.length; i++) {
        // changed from projects[i].isAccessible()
        if (projects[i].isOpen()) {
          if (projects[i].hasNature(TLANature.ID)) {
            spec = new Spec(projects[i]);
            // Added by LL on 12 Apr 2011
            // If spec.rootFile = null, then this is a bad spec. So
            // we should report it and not perform addSpec(spec).  It
            // would be nice if we could report it to the user, but
            // it seems to be impossible to popup a window at this point
            // in the code.
            if (spec.getRootFile() == null) {
              Activator.getDefault()
                  .logError("The bad spec is: `" + projects[i].getName() + "'", null);
            } else {
              // This to threw a null pointer exception for Tom, probably causing the abortion
              // of the Toolbox start. But it started on the next attempt.  Should we catch the
              // and perhaps report the bad spec?
              addSpec(spec);
            }

            // load the spec if found
            if (spec.getName().equals(specLoadedName)) {
              this.setSpecLoaded(spec);
            }
          }
        } else {
          // DELETE closed projects
          projects[i].delete(IResource.FORCE | IResource.ALWAYS_DELETE_PROJECT_CONTENT, monitor);
        }
      }

      if (specLoadedName != null && !specLoadedName.equals("") && this.loadedSpec == null) {
        // there was a spec loaded but it was not found
        // explicit un-set it
        setSpecLoaded(null);
      }

    } catch (CoreException e) {
      Activator.getDefault().logError("Error initializing specification workspace", e);
    }

    ws.addResourceChangeListener(this);

    Platform.getAdapterManager().registerAdapters(this, IProject.class);
  }