|
From: David C. <dc...@us...> - 2005-09-04 17:39:23
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19353/src/org/rubypeople/rdt/internal/ui Modified Files: RubyPlugin.java Log Message: Improved auto-upgrade of projects to check for newly opened projects. Index: RubyPlugin.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/RubyPlugin.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** RubyPlugin.java 4 Sep 2005 11:24:05 -0000 1.11 --- RubyPlugin.java 4 Sep 2005 17:39:15 -0000 1.12 *************** *** 1,12 **** --- 1,19 ---- package org.rubypeople.rdt.internal.ui; + import org.eclipse.core.internal.events.ResourceChangeEvent; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; + import org.eclipse.core.resources.IResourceChangeEvent; + import org.eclipse.core.resources.IResourceChangeListener; + import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IWorkspace; + import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; + import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; + import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; *************** *** 72,75 **** --- 79,83 ---- private RubyFoldingStructureProviderRegistry fFoldingStructureProviderRegistry; + private boolean taskViewAlreadyOpened; public RubyPlugin() { *************** *** 118,138 **** }); ! upgradeOldProjects(); } private void upgradeOldProjects() { ! try { ! boolean projectUpgraded = RubyCore.upgradeOldProjects(); ! ! if (projectUpgraded) { ! openTasksView(); ! } ! } catch (CoreException e) { ! log(IStatus.WARNING, "While upgrading RDT projects", e); ! } ! } - // currently a "no-op", as there are no workbench pages when this is called. :( DSC private void openTasksView() { WorkbenchJob job = new WorkbenchJob("Show Task View") { public IStatus runInUIThread(IProgressMonitor monitor) { --- 126,165 ---- }); ! ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() { ! ! public void resourceChanged(IResourceChangeEvent event) { ! int eventType = event.getType(); ! if (eventType == ResourceChangeEvent.POST_CHANGE) { ! IResourceDelta delta = event.getDelta(); ! int deltaKind = delta.getKind(); ! if (deltaKind == IResourceDelta.CHANGED && event.getResource() == null && event.getDelta().getFullPath().equals(new Path("/"))) ! upgradeOldProjects(); ! } ! ! }}); ! upgradeOldProjects(); } private void upgradeOldProjects() { ! Job job = new Job("Upgrade Old Ruby Projects") { ! ! protected IStatus run(IProgressMonitor monitor) { ! try { ! boolean projectUpgraded = RubyCore.upgradeOldProjects(); ! ! if (projectUpgraded) { ! openTasksView(); ! } ! } catch (CoreException e) { ! log(IStatus.WARNING, "While upgrading RDT projects", e); ! } ! return Status.OK_STATUS; ! }}; ! job.schedule(); ! } private void openTasksView() { + if (taskViewAlreadyOpened) + return; WorkbenchJob job = new WorkbenchJob("Show Task View") { public IStatus runInUIThread(IProgressMonitor monitor) { *************** *** 141,146 **** if (dw != null) { IWorkbenchPage page = dw.getActivePage(); ! if (page != null) page.showView(ORG_ECLIPSE_UI_VIEWS_TASK_LIST); } }catch (PartInitException ignored){ --- 168,175 ---- if (dw != null) { IWorkbenchPage page = dw.getActivePage(); ! if (page != null) { page.showView(ORG_ECLIPSE_UI_VIEWS_TASK_LIST); + taskViewAlreadyOpened = true; + } } }catch (PartInitException ignored){ |