/* (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); } } } } } }); } }
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(); }
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; }
/** 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); }