diff options
| author | Pawel Piech | 2012-11-13 20:57:35 +0000 |
|---|---|---|
| committer | Pawel Piech | 2012-11-28 22:44:44 +0000 |
| commit | bc35d7647eebcbe21119d2187f8891d6485a47cb (patch) | |
| tree | 27b4b111d772aa7bd92aa221f765f4e554558fb9 | |
| parent | 7ad420e29d2f28d377ef89caf68f88bfa4dbf490 (diff) | |
| download | eclipse.platform.debug-bc35d7647eebcbe21119d2187f8891d6485a47cb.tar.gz eclipse.platform.debug-bc35d7647eebcbe21119d2187f8891d6485a47cb.tar.xz eclipse.platform.debug-bc35d7647eebcbe21119d2187f8891d6485a47cb.zip | |
Bug 393812 - find dialog gives error when select non-top level items from the dialog for variables/expressions/registers views.v20121128-224444M20130116-1800M20130116-1715M20130116-1200M20130116-1030M20130116-1000M20130109-1200M20130109-1000M20130104-1300M20130102-1200M20130102-1000M20121226-1200M20121226-1000M20121219-1200M20121219-1000M20121212-1800M20121212-1600M20121212-1200M20121212-1000M20121205-1200M20121205-1000
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
2 files changed, 9 insertions, 69 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 bc8dd76ad..afb1eae67 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.AbstractDebugActionDelegate; 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 @@ public class VirtualCopyToClipboardActionDelegate extends AbstractDebugActionDel } } - 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 @@ public class VirtualCopyToClipboardActionDelegate extends AbstractDebugActionDel 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 a7f0007bf..4306ee64c 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.IChildrenUpdate; 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 @@ public class VirtualFindAction extends Action implements IUpdate { 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); |
