Bug 393812 - find dialog gives error when select non-top level items from the dialog for variables/expressions/registers views.
Conflicts:
org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java
org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java
index bc8dd76..afb1eae 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java
@@ -25,16 +25,13 @@
import org.eclipse.debug.internal.ui.actions.ActionMessages;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IVirtualItemListener;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IVirtualItemValidator;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
import org.eclipse.debug.internal.ui.viewers.model.provisional.VirtualItem;
import org.eclipse.debug.internal.ui.viewers.model.provisional.VirtualItem.Index;
import org.eclipse.debug.internal.ui.viewers.model.provisional.VirtualTreeModelViewer;
-import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.debug.ui.IDebugView;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -149,36 +146,6 @@
}
}
- private IPresentationContext makeVirtualPresentationContext(final IPresentationContext clientViewerContext) {
- return new PresentationContext(clientViewerContext.getId()) {
- {
- String[] clientProperties = clientViewerContext.getProperties();
- for (int i = 0; i < clientProperties.length; i++) {
- setProperty(clientProperties[i], clientViewerContext.getProperty(clientProperties[i]));
- }
-
- }
-
- public String[] getColumns() {
- String[] clientColumns = super.getColumns();
-
- if (clientColumns == null || clientColumns.length == 0) {
- // No columns are used.
- return null;
- }
-
- // Try to find the name column.
- for (int i = 0; i < clientColumns.length; i++) {
- if (IDebugUIConstants.COLUMN_ID_VARIABLE_NAME.equals(clientColumns[i])) {
- return new String[] { IDebugUIConstants.COLUMN_ID_VARIABLE_NAME };
- }
- }
-
- return new String[] { clientColumns[0] };
- }
- };
- }
-
private class ItemsToCopyVirtualItemValidator implements IVirtualItemValidator {
Set fItemsToCopy = Collections.EMPTY_SET;
@@ -211,12 +178,17 @@
VirtualTreeModelViewer virtualViewer = new VirtualTreeModelViewer(
clientViewer.getDisplay(),
SWT.VIRTUAL,
- makeVirtualPresentationContext(clientViewer.getPresentationContext()),
+ clientViewer.getPresentationContext(),
validator);
virtualViewer.setFilters(clientViewer.getFilters());
virtualViewer.addLabelUpdateListener(listener);
virtualViewer.getTree().addItemListener(listener);
+ String[] columns = clientViewer.getPresentationContext().getColumns();
virtualViewer.setInput(input);
+ if (virtualViewer.canToggleColumns()) {
+ virtualViewer.setShowColumns(clientViewer.isShowColumns());
+ virtualViewer.setVisibleColumns(columns);
+ }
virtualViewer.updateViewer(stateDelta);
// Parse selected items from client viewer and add them to the virtual viewer selection.
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
index a7f0007..4306ee6 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualFindAction.java
@@ -29,15 +29,12 @@
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
import org.eclipse.debug.internal.ui.viewers.model.provisional.VirtualItem;
import org.eclipse.debug.internal.ui.viewers.model.provisional.VirtualTreeModelViewer;
-import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -158,49 +155,20 @@
VirtualTreeModelViewer fVirtualViewer = new VirtualTreeModelViewer(
clientViewer.getDisplay(),
SWT.NONE,
- makeVirtualPresentationContext(clientViewer.getPresentationContext()));
+ clientViewer.getPresentationContext());
fVirtualViewer.setFilters(clientViewer.getFilters());
fVirtualViewer.addViewerUpdateListener(listener);
fVirtualViewer.addLabelUpdateListener(listener);
+ String[] columns = clientViewer.getPresentationContext().getColumns();
fVirtualViewer.setInput(input);
if (fVirtualViewer.canToggleColumns()) {
fVirtualViewer.setShowColumns(clientViewer.isShowColumns());
+ fVirtualViewer.setVisibleColumns(columns);
}
fVirtualViewer.updateViewer(stateDelta);
return fVirtualViewer;
}
- private IPresentationContext makeVirtualPresentationContext(final IPresentationContext clientViewerContext) {
- return new PresentationContext(clientViewerContext.getId()) {
-
- {
- String[] clientProperties = clientViewerContext.getProperties();
- for (int i = 0; i < clientProperties.length; i++) {
- setProperty(clientProperties[i], clientViewerContext.getProperty(clientProperties[i]));
- }
-
- }
-
- public String[] getColumns() {
- String[] clientColumns = super.getColumns();
-
- if (clientColumns == null || clientColumns.length == 0) {
- // No columns are used.
- return null;
- }
-
- // Try to find the name column.
- for (int i = 0; i < clientColumns.length; i++) {
- if (IDebugUIConstants.COLUMN_ID_VARIABLE_NAME.equals(clientColumns[i])) {
- return new String[] { IDebugUIConstants.COLUMN_ID_VARIABLE_NAME };
- }
- }
-
- return new String[] { clientColumns[0] };
- }
- };
- }
-
public void run() {
final VirtualViewerListener listener = new VirtualViewerListener();
VirtualTreeModelViewer virtualViewer = initVirtualViewer(fClientViewer, listener);