Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawel Piech2011-12-07 18:32:18 +0000
committerPawel Piech2011-12-07 18:32:18 +0000
commit0c06515f0b531fad6e5f05e4f2806468f1bb7eb6 (patch)
tree3c9dea4c7a4183c56d3b4c063b909914ac9c37f0
parent2fa6da3812db64bde078514caedb025a0a6d5a6a (diff)
downloadeclipse.platform.debug-0c06515f0b531fad6e5f05e4f2806468f1bb7eb6.tar.gz
eclipse.platform.debug-0c06515f0b531fad6e5f05e4f2806468f1bb7eb6.tar.xz
eclipse.platform.debug-0c06515f0b531fad6e5f05e4f2806468f1bb7eb6.zip
Bug 365825 - [flex] Copying the stack trace in Debug view neverv20111207-1832
completes
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/VirtualCopyToClipboardActionDelegate.java20
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/DefaultWatchExpressionModelProxy.java5
2 files changed, 21 insertions, 4 deletions
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 bc41949c5..34b7ca92d 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,6 +15,7 @@ package org.eclipse.debug.internal.ui.viewers.model;
import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -213,13 +214,26 @@ public class VirtualCopyToClipboardActionDelegate extends AbstractDebugActionDel
private class ItemsToCopyVirtualItemValidator implements IVirtualItemValidator {
Set fItemsToCopy = Collections.EMPTY_SET;
+ Set fItemsToValidate = Collections.EMPTY_SET;
public boolean isItemVisible(VirtualItem item) {
- return fItemsToCopy.contains(item);
+ return fItemsToValidate.contains(item);
}
public void showItem(VirtualItem item) {
}
+
+ void setItemsToCopy(Set itemsToCopy) {
+ fItemsToCopy = itemsToCopy;
+ fItemsToValidate = new HashSet();
+ for (Iterator itr = itemsToCopy.iterator(); itr.hasNext();) {
+ VirtualItem itemToCopy = (VirtualItem)itr.next();
+ while (itemToCopy != null) {
+ fItemsToValidate.add(itemToCopy);
+ itemToCopy = itemToCopy.getParent();
+ }
+ }
+ }
}
private VirtualTreeModelViewer initVirtualViewer(TreeModelViewer clientViewer, VirtualViewerListener listener, ItemsToCopyVirtualItemValidator validator) {
@@ -260,7 +274,7 @@ public class VirtualCopyToClipboardActionDelegate extends AbstractDebugActionDel
}
}
}
- validator.fItemsToCopy = vSelection;
+ validator.setItemsToCopy(vSelection);
virtualViewer.getTree().validate();
return virtualViewer;
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/DefaultWatchExpressionModelProxy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/DefaultWatchExpressionModelProxy.java
index 63fe474ee..47d0f9e96 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/DefaultWatchExpressionModelProxy.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/update/DefaultWatchExpressionModelProxy.java
@@ -25,6 +25,7 @@ import org.eclipse.debug.ui.contexts.IDebugContextService;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.progress.UIJob;
@@ -57,7 +58,9 @@ public class DefaultWatchExpressionModelProxy extends DefaultExpressionModelProx
IWorkbenchWindow[] workbenchWindows = PlatformUI.getWorkbench().getWorkbenchWindows();
for (int i = 0; i < workbenchWindows.length; i++) {
IWorkbenchWindow window = workbenchWindows[i];
- if (viewer.getControl().getShell().equals(window.getShell())) {
+ // Virtual viewer may have a null control.
+ Control control = viewer.getControl();
+ if (control != null && control.getShell().equals(window.getShell())) {
fWindow = window;
break;
}

Back to the top