|
From: <caw...@us...> - 2007-05-15 16:33:12
|
Revision: 2475
http://svn.sourceforge.net/rubyeclipse/?rev=2475&view=rev
Author: cawilliams
Date: 2007-05-15 09:33:08 -0700 (Tue, 15 May 2007)
Log Message:
-----------
rename addGemObserver to addGemListener, add a removeGemListener method and an installedGem(name) query method.
Use these new methods to add a hook into the start method of plugin to set it to use ruby-debug as our debugger if the gem is installed
Modified Paths:
--------------
trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java
trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-05-14 19:15:03 UTC (rev 2474)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-05-15 16:33:08 UTC (rev 2475)
@@ -6,13 +6,19 @@
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
+import org.rubypeople.rdt.internal.launching.LaunchingPlugin;
import org.rubypeople.rdt.internal.ui.IRubyStatusConstants;
+import com.aptana.rdt.internal.gems.Gem;
+import com.aptana.rdt.internal.gems.GemManager;
+import com.aptana.rdt.internal.gems.GemManager.GemListener;
import com.aptana.rdt.internal.ui.RubyRedMessages;
/**
@@ -184,14 +190,48 @@
super();
plugin = this;
}
+
+ private static class RubyDebugGemListener extends Job {
+ private GemListener listener;
+
+ public RubyDebugGemListener(GemListener listener) {
+ super("Removing temporary gem listener");
+ this.listener = listener;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ GemManager.getInstance().removeGemListener(listener);
+ return Status.OK_STATUS;
+ }
+
+ }
+
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
+ GemManager.getInstance().addGemListener(new GemListener() {
+ public void gemsRefreshed() {
+ boolean rubyDebugInstalled = GemManager.getInstance().gemInstalled("ruby-debug-ide");
+ LaunchingPlugin.getDefault().getPluginPreferences().setValue(org.rubypeople.rdt.internal.launching.PreferenceConstants.USE_RUBY_DEBUG, rubyDebugInstalled);
+ Job job = new RubyDebugGemListener(this);
+ job.schedule();
+ }
+
+ public void gemRemoved(Gem gem) {
+ // ignore
+ }
+
+ public void gemAdded(Gem gem) {
+ // ignore
+ }
+
+ });
}
/*
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java 2007-05-14 19:15:03 UTC (rev 2474)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java 2007-05-15 16:33:08 UTC (rev 2475)
@@ -531,7 +531,7 @@
return false;
}
- public void addGemObserver(GemListener listener) {
+ public void addGemListener(GemListener listener) {
listeners.add(listener);
}
@@ -556,4 +556,16 @@
}
return Collections.unmodifiableSortedSet(logical);
}
+
+ public boolean gemInstalled(String gemName) {
+ Set<Gem> gems = getGems();
+ for (Gem gem : gems) {
+ if (gem.getName().equalsIgnoreCase(gemName)) return true;
+ }
+ return false;
+ }
+
+ public void removeGemListener(GemListener listener) {
+ listeners.remove(listener);
+ }
}
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java 2007-05-14 19:15:03 UTC (rev 2474)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java 2007-05-15 16:33:08 UTC (rev 2475)
@@ -58,7 +58,7 @@
gemViewer.setInput(GemManager.getInstance().getGems());
createPopupMenu();
- GemManager.getInstance().addGemObserver(this);
+ GemManager.getInstance().addGemListener(this);
}
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|