|
From: <caw...@us...> - 2007-05-11 17:34:13
|
Revision: 2464
http://svn.sourceforge.net/rubyeclipse/?rev=2464&view=rev
Author: cawilliams
Date: 2007-05-11 10:34:12 -0700 (Fri, 11 May 2007)
Log Message:
-----------
Modified Paths:
--------------
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/RemoveGemActionDelegate.java
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/UpdateGemActionDelegate.java
trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java
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-11 17:26:06 UTC (rev 2463)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/gems/GemManager.java 2007-05-11 17:34:12 UTC (rev 2464)
@@ -104,7 +104,9 @@
@Override
protected IStatus run(IProgressMonitor monitor) {
gems = loadLocalGems();
- informListeners();
+ for (GemListener listener : listeners) {
+ listener.gemsRefreshed();
+ }
return Status.OK_STATUS;
}
@@ -333,9 +335,9 @@
return gems;
}
- public boolean upgrade(String gemName) {
+ public boolean update(Gem gem) {
try {
- String command = UPDATE_COMMAND + " " + gemName;
+ String command = UPDATE_COMMAND + " " + gem.getName();
ILaunchConfiguration config = createGemLaunchConfiguration(command);
config.launch(ILaunchManager.RUN_MODE, null);
} catch (CoreException e) {
@@ -345,10 +347,6 @@
return true;
}
- public boolean installGem(String name) {
- return installGem(name, null);
- }
-
private ILaunchConfigurationType getRubyApplicationConfigType() {
return getLaunchManager().getLaunchConfigurationType(
IRubyLaunchConfigurationConstants.ID_RUBY_APPLICATION);
@@ -405,11 +403,11 @@
return path + File.separator + "bin" + File.separator + "gem";
}
- public boolean installGem(String name, String version) {
+ public boolean installGem(Gem gem) {
try {
- String command = INSTALL_COMMAND + " " + name;
- if (version != null && version.trim().length() > 0) {
- command += " " + VERSION_SWITCH + " " + version;
+ String command = INSTALL_COMMAND + " " + gem.getName();
+ if (gem.getVersion() != null && gem.getVersion().trim().length() > 0) {
+ command += " " + VERSION_SWITCH + " " + gem.getVersion();
}
ILaunchConfiguration config = createGemLaunchConfiguration(command);
ILaunch launch = config.launch(ILaunchManager.RUN_MODE, null);
@@ -484,15 +482,17 @@
AptanaRDTPlugin.log(e);
return false;
}
- refresh();
+ for (GemListener listener : listeners) {
+ listener.gemAdded(gem);
+ }
return true;
}
- public boolean removeGem(String name, String version) {
+ public boolean removeGem(Gem gem) {
try {
- String command = UNINSTALL_COMMAND + " " + name;
- if (version != null && version.trim().length() > 0) {
- command += " " + VERSION_SWITCH + " " + version;
+ String command = UNINSTALL_COMMAND + " " + gem.getName();
+ if (gem.getVersion() != null && gem.getVersion().trim().length() > 0) {
+ command += " " + VERSION_SWITCH + " " + gem.getVersion();
}
ILaunchConfiguration config = createGemLaunchConfiguration(command);
config.launch(ILaunchManager.RUN_MODE, null);
@@ -500,14 +500,12 @@
AptanaRDTPlugin.log(e);
return false;
}
- refresh(); // FIXME Need to wait until uninstall is finished!
+ for (GemListener listener : listeners) {
+ listener.gemRemoved(gem);
+ } // FIXME Need to wait until uninstall is finished!
return true;
}
- public boolean removeGem(String name) {
- return removeGem(name, null);
- }
-
public Set<Gem> getGems() {
return Collections.unmodifiableSortedSet(new TreeSet<Gem>(gems));
}
@@ -523,24 +521,22 @@
if (!newGems.isEmpty()) {
gems.clear();
gems = newGems;
- informListeners();
+ for (GemListener listener : listeners) {
+ listener.gemsRefreshed();
+ }
return true;
}
return false;
}
- private void informListeners() {
- for (GemListener listener : listeners) {
- listener.gemsRefreshed();
- }
- }
-
public void addGemObserver(GemListener listener) {
listeners.add(listener);
}
public interface GemListener {
public void gemsRefreshed();
+ public void gemAdded(Gem gem);
+ public void gemRemoved(Gem gem);
}
public Set<Gem> getRemoteGems() {
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java 2007-05-11 17:26:06 UTC (rev 2463)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/InstallGemActionDelegate.java 2007-05-11 17:34:12 UTC (rev 2464)
@@ -45,7 +45,7 @@
final Gem gem = dialog.getGem();
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- GemManager.getInstance().installGem(gem.getName(), gem.getVersion());
+ GemManager.getInstance().installGem(gem);
}
});
}
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/RemoveGemActionDelegate.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/RemoveGemActionDelegate.java 2007-05-11 17:26:06 UTC (rev 2463)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/RemoveGemActionDelegate.java 2007-05-11 17:34:12 UTC (rev 2464)
@@ -46,7 +46,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- GemManager.getInstance().removeGem(selectedGem.getName());
+ GemManager.getInstance().removeGem(selectedGem);
}
});
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/UpdateGemActionDelegate.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/UpdateGemActionDelegate.java 2007-05-11 17:26:06 UTC (rev 2463)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/ui/actions/UpdateGemActionDelegate.java 2007-05-11 17:34:12 UTC (rev 2464)
@@ -46,7 +46,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- GemManager.getInstance().upgrade(selectedGem.getName());
+ GemManager.getInstance().update(selectedGem);
}
});
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-11 17:26:06 UTC (rev 2463)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/ui/gems/GemsView.java 2007-05-11 17:34:12 UTC (rev 2464)
@@ -19,6 +19,7 @@
import org.eclipse.ui.part.ViewPart;
import org.rubypeople.rdt.ui.TableViewerSorter;
+import com.aptana.rdt.internal.gems.Gem;
import com.aptana.rdt.internal.gems.GemManager;
import com.aptana.rdt.internal.gems.GemManager.GemListener;
@@ -45,18 +46,18 @@
versionColumn.setWidth(75);
TableColumn descriptionColumn = new TableColumn(serverTable, SWT.LEFT);
- descriptionColumn.setText(GemsMessages.GemsView_DescriptionColumn_label);
+ descriptionColumn
+ .setText(GemsMessages.GemsView_DescriptionColumn_label);
descriptionColumn.setWidth(275);
-
gemViewer.setLabelProvider(new GemLabelProvider());
gemViewer.setContentProvider(new GemContentProvider());
TableViewerSorter.bind(gemViewer);
getSite().setSelectionProvider(gemViewer);
-
+
gemViewer.setInput(GemManager.getInstance().getGems());
createPopupMenu();
-
+
GemManager.getInstance().addGemObserver(this);
}
@@ -64,17 +65,18 @@
public void setFocus() {
// do nothing
}
-
+
/**
* Creates and registers the context menu
*/
private void createPopupMenu() {
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
-
+
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
- IContributionItem[] items = getViewSite().getActionBars().getToolBarManager().getItems();
+ IContributionItem[] items = getViewSite().getActionBars()
+ .getToolBarManager().getItems();
for (int i = 0; i < items.length; i++) {
if (items[i] instanceof ActionContributionItem) {
ActionContributionItem aci = (ActionContributionItem) items[i];
@@ -83,7 +85,12 @@
}
}
});
- menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // Allow other plugins to add here
+ menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // Allow
+ // other
+ // plugins
+ // to
+ // add
+ // here
Menu menu = menuMgr.createContextMenu(gemViewer.getControl());
gemViewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, gemViewer);
@@ -91,14 +98,34 @@
public void gemsRefreshed() {
Display.getDefault().asyncExec(new Runnable() {
-
+
public void run() {
gemViewer.setInput(GemManager.getInstance().getGems());
- gemViewer.refresh();
+ gemViewer.refresh();
}
-
+
});
-
+
}
+ public void gemAdded(final Gem gem) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ public void run() {
+ gemViewer.add(gem);
+ }
+
+ });
+ }
+
+ public void gemRemoved(final Gem gem) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ public void run() {
+ gemViewer.remove(gem);
+ }
+
+ });
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|