*** empty log message ***
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/BaseTreeView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/BaseTreeView.java
index 07f4051..71861b3 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/BaseTreeView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/BaseTreeView.java
@@ -10,6 +10,8 @@
import org.eclipse.jface.action.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
+import org.eclipse.update.internal.ui.UpdateUIPlugin;
+import org.eclipse.ui.*;
/**
* Insert the type's description here.
@@ -17,6 +19,7 @@
*/
public abstract class BaseTreeView extends ViewPart {
protected TreeViewer viewer;
+private Action showDetailsAction;
/**
* The constructor.
*/
@@ -84,15 +87,30 @@
}
protected void fillContextMenu(IMenuManager manager) {
+ manager.add(showDetailsAction);
}
protected void makeActions() {
+ showDetailsAction = new Action() {
+ public void run() {
+ IWorkbenchPage page = UpdateUIPlugin.getActivePage();
+ try {
+ IViewPart part = page.showView(UpdatePerspective.ID_DETAILS);
+ ((DetailsView)part).selectionChanged(BaseTreeView.this, viewer.getSelection());
+ }
+ catch (PartInitException e) {
+ UpdateUIPlugin.logException(e);
+ }
+ }
+ };
+ showDetailsAction.setText("Show Details");
}
protected void handleSelectionChanged(SelectionChangedEvent e) {
}
protected void handleDoubleClick(DoubleClickEvent e) {
+ showDetailsAction.run();
}
protected void handleKeyPressed(KeyEvent e) {
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/ChecklistView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/ChecklistView.java
index ba76c75..d721e97 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/ChecklistView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/ChecklistView.java
Binary files differ
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/HistoryView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/HistoryView.java
index 8ac9c6a..bf90bc5 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/HistoryView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/HistoryView.java
@@ -18,11 +18,13 @@
import org.eclipse.update.internal.ui.*;
import org.eclipse.swt.custom.*;
import org.eclipse.update.core.*;
-
+import org.eclipse.jface.action.Action;
import org.eclipse.update.core.IInstallConfiguration;
import java.util.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.action.*;
/**
* Insert the type's description here.
@@ -33,6 +35,7 @@
private Image featureImage;
private Image siteImage;
private Image currentConfigImage;
+private Action revertAction;
class HistoryProvider extends DefaultContentProvider
implements ITreeContentProvider {
@@ -165,6 +168,42 @@
super.dispose();
}
+private IInstallConfiguration getSelectedConfiguration() {
+ ISelection selection = viewer.getSelection();
+
+ if (selection instanceof IStructuredSelection &&
+ !selection.isEmpty()) {
+ IStructuredSelection ssel = (IStructuredSelection)selection;
+ if (ssel.size()==1) {
+ Object obj = ssel.getFirstElement();
+ if (obj instanceof IInstallConfiguration)
+ return (IInstallConfiguration)obj;
+ }
+ }
+ return null;
+}
+
+protected void makeActions() {
+ super.makeActions();
+ revertAction = new Action() {
+ public void run() {
+ IInstallConfiguration target = getSelectedConfiguration();
+ if (target!=null)
+ RevertSection.performRevert(target);
+ }
+ };
+ revertAction.setText("Restore");
+}
+
+protected void fillContextMenu(IMenuManager manager) {
+ IInstallConfiguration config = getSelectedConfiguration();
+ if (config!=null && !config.isCurrent()) {
+ manager.add(revertAction);
+ manager.add(new Separator());
+ }
+ super.fillContextMenu(manager);
+}
+
public void currentInstallConfigurationChanged(IInstallConfiguration configuration) {
viewer.refresh();
}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/RevertSection.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/RevertSection.java
index a4c48b2..1849fd0 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/RevertSection.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/RevertSection.java
@@ -90,39 +90,43 @@
}
}
- public void performRevert() {
+ private void performRevert() {
try {
- final ILocalSite localSite = SiteManager.getLocalSite();
+ ILocalSite localSite = SiteManager.getLocalSite();
IInstallConfiguration target = config;
if (config.isCurrent()) {
// take the previous one
IInstallConfiguration [] history = localSite.getConfigurationHistory();
target = history[history.length - 2];
}
- final IInstallConfiguration ftarget = target;
- IRunnableWithProgress operation = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
- try {
- localSite.revertTo(ftarget, monitor);
- } catch (CoreException e) {
- UpdateUIPlugin.logException(e);
- } finally {
- monitor.done();
- }
- }
- };
- try {
- ProgressMonitorDialog dialog = new ProgressMonitorDialog(container.getShell());
- dialog.run(false, true, operation);
- }
- catch (InvocationTargetException e) {
- UpdateUIPlugin.logException(e);
- }
- catch (InterruptedException e) {
- }
+ performRevert(target);
}
catch (CoreException e) {
UpdateUIPlugin.logException(e);
}
}
+
+ public static void performRevert(final IInstallConfiguration target) {
+ IRunnableWithProgress operation = new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) {
+ try {
+ ILocalSite localSite = SiteManager.getLocalSite();
+ localSite.revertTo(target, monitor);
+ } catch (CoreException e) {
+ UpdateUIPlugin.logException(e);
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ ProgressMonitorDialog dialog = new ProgressMonitorDialog(UpdateUIPlugin.getActiveWorkbenchShell().getShell());
+ dialog.run(false, true, operation);
+ }
+ catch (InvocationTargetException e) {
+ UpdateUIPlugin.logException(e);
+ }
+ catch (InterruptedException e) {
+ }
+ }
}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/SiteView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/SiteView.java
index ef60476..dea6480 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/SiteView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/manager/SiteView.java
Binary files differ