|
From: <caw...@us...> - 2007-06-07 23:53:10
|
Revision: 2592
http://svn.sourceforge.net/rubyeclipse/?rev=2592&view=rev
Author: cawilliams
Date: 2007-06-07 16:53:09 -0700 (Thu, 07 Jun 2007)
Log Message:
-----------
do a better job of listening for ruby-debug gem
Modified Paths:
--------------
trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-06-07 23:06:54 UTC (rev 2591)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-06-07 23:53:09 UTC (rev 2592)
@@ -3,7 +3,6 @@
import java.io.File;
import java.io.IOException;
import java.net.URL;
-import java.util.Set;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
@@ -218,16 +217,18 @@
super.start(context);
context.registerService(IGemManager.class.getName(), GemManager.getInstance(), null);
- Set<Gem> gems = GemManager.getInstance().getGems(); // FIXME What if user has explicity disabled using ruby-debug?!
- if (gems.isEmpty()) {
+ boolean rubyDebugInstalled = GemManager.getInstance().gemInstalled("ruby-debug-ide");
+ // FIXME What if user has explicity disabled using ruby-debug?!
+ if (rubyDebugInstalled) {
+ setRubyDebugAsDefault();
+ } else {
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();
- }
+ if (GemManager.getInstance().gemInstalled("ruby-debug-ide")) {
+ setRubyDebugUp();
+ }
+ }
public void gemRemoved(Gem gem) {
// ignore
@@ -235,14 +236,26 @@
public void gemAdded(Gem gem) {
// ignore
+ if(gem.getName().equals("ruby-debug-ide"))
+ setRubyDebugUp();
}
-
+
+ private void setRubyDebugUp() {
+ setRubyDebugAsDefault();
+ removeListener(this);
+ }
});
- } else {
- boolean rubyDebugInstalled = GemManager.getInstance().gemInstalled("ruby-debug-ide");
- LaunchingPlugin.getDefault().getPluginPreferences().setValue(org.rubypeople.rdt.internal.launching.PreferenceConstants.USE_RUBY_DEBUG, rubyDebugInstalled);
}
}
+
+ protected void setRubyDebugAsDefault() {
+ LaunchingPlugin.getDefault().getPluginPreferences().setValue(org.rubypeople.rdt.internal.launching.PreferenceConstants.USE_RUBY_DEBUG, true);
+ }
+
+ protected void removeListener(GemListener listener) {
+ Job job = new RubyDebugGemListener(listener);
+ job.schedule();
+ }
/*
* (non-Javadoc)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|