|
From: <caw...@us...> - 2007-08-13 20:57:43
|
Revision: 2965
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=2965&view=rev
Author: cawilliams
Date: 2007-08-13 13:57:16 -0700 (Mon, 13 Aug 2007)
Log Message:
-----------
fix #5385 - Make install gem button enabled as soon as remote listing is loaded
Modified Paths:
--------------
trunk/com.aptana.rdt.ui/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java
Modified: trunk/com.aptana.rdt.ui/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java
===================================================================
--- trunk/com.aptana.rdt.ui/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java 2007-08-13 20:15:21 UTC (rev 2964)
+++ trunk/com.aptana.rdt.ui/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java 2007-08-13 20:57:16 UTC (rev 2965)
@@ -19,6 +19,7 @@
import com.aptana.rdt.AptanaRDTPlugin;
import com.aptana.rdt.core.gems.Gem;
+import com.aptana.rdt.core.gems.GemListener;
import com.aptana.rdt.ui.gems.InstallGemDialog;
/**
@@ -26,14 +27,20 @@
*
* @author cwilliams
*/
-public class InstallGemActionDelegate implements IObjectActionDelegate, IViewActionDelegate {
+public class InstallGemActionDelegate implements IObjectActionDelegate, IViewActionDelegate, GemListener {
+ private IAction action;
+
+ public InstallGemActionDelegate() {
+ AptanaRDTPlugin.getDefault().getGemManager().addGemListener(this);
+ }
+
/**
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction,
* org.eclipse.ui.IWorkbenchPart)
*/
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-
+ this.action = action;
}
/**
@@ -56,14 +63,34 @@
* org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IAction action, ISelection selection) {
- action.setEnabled(!AptanaRDTPlugin.getDefault().getGemManager().getRemoteGems().isEmpty());
+ this.action = action;
+ action.setEnabled(isEnabled());
}
+ private boolean isEnabled() {
+ if (!AptanaRDTPlugin.getDefault().getGemManager().isInitialized()) return false;
+ return !AptanaRDTPlugin.getDefault().getGemManager().getRemoteGems().isEmpty();
+ }
+
/**
* @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
*/
public void init(IViewPart view) {
}
+
+ public void gemAdded(Gem gem) {
+ }
+
+ public void gemRemoved(Gem gem) {
+ }
+
+ public void gemsRefreshed() {
+ }
+
+ public void managerInitialized() {
+ if (action == null) return;
+ action.setEnabled(isEnabled());
+ }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|