Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMarkus Schorn2011-04-20 08:03:45 +0000
committerMarkus Schorn2011-04-20 08:03:45 +0000
commit579a0fdfa8d925280bfa7ec15110479bb15bfbb4 (patch)
tree937f88a359aafbc8b168ebb2cb5adffe7ba0ffd2 /core
parent3ed57b3aa3f5019129ed35d81f0ec753df957e1a (diff)
downloadorg.eclipse.cdt-579a0fdfa8d925280bfa7ec15110479bb15bfbb4.tar.gz
org.eclipse.cdt-579a0fdfa8d925280bfa7ec15110479bb15bfbb4.tar.xz
org.eclipse.cdt-579a0fdfa8d925280bfa7ec15110479bb15bfbb4.zip
Bug 342840: Clipboard is not disposed.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CopyTreeAction.java28
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java12
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THViewPart.java12
3 files changed, 18 insertions, 34 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CopyTreeAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CopyTreeAction.java
index 3bb71402e26..641004585f6 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CopyTreeAction.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CopyTreeAction.java
@@ -17,8 +17,12 @@ import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.osgi.util.TextProcessor;
-
import org.eclipse.swt.SWTError;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.DND;
@@ -27,14 +31,6 @@ import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.part.ViewPart;
-import org.eclipse.core.runtime.Assert;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-
import org.eclipse.cdt.internal.ui.util.SelectionUtil;
/**
@@ -45,13 +41,10 @@ public class CopyTreeAction extends Action {
private ViewPart fView;
private TreeViewer fViewer;
- private final Clipboard fClipboard;
- public CopyTreeAction(String label, ViewPart view, Clipboard clipboard, TreeViewer viewer) {
+ public CopyTreeAction(String label, ViewPart view, TreeViewer viewer) {
super(label);
- Assert.isNotNull(clipboard);
fView= view;
- fClipboard= clipboard;
fViewer= viewer;
}
@@ -79,8 +72,9 @@ public class CopyTreeAction extends Action {
addChildren(fViewer.getTree().getSelection()[0], 0, buf);
TextTransfer plainTextTransfer= TextTransfer.getInstance();
+ Clipboard clipboard= new Clipboard(fView.getSite().getShell().getDisplay());
try {
- fClipboard.setContents(
+ clipboard.setContents(
new String[] { convertLineTerminators(buf.toString()) },
new Transfer[] { plainTextTransfer });
} catch (SWTError e) {
@@ -90,6 +84,8 @@ public class CopyTreeAction extends Action {
ActionMessages.CopyTreeAction_problem, ActionMessages.CopyTreeAction_clipboard_busy)) {
run();
}
+ } finally {
+ clipboard.dispose();
}
}
@@ -110,8 +106,8 @@ public class CopyTreeAction extends Action {
if (item.getExpanded()) {
TreeItem[] items= item.getItems();
- for (int i= 0; i < items.length; i++) {
- addChildren(items[i], indent + 1, buf);
+ for (TreeItem item2 : items) {
+ addChildren(item2, indent + 1, buf);
}
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java
index 3042732a4ea..ccda5704583 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java
@@ -34,7 +34,6 @@ import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.Transfer;
@@ -105,8 +104,6 @@ public class CHViewPart extends ViewPart {
private ArrayList<ICElement> fHistoryEntries= new ArrayList<ICElement>(MAX_HISTORY_SIZE);
- private Clipboard fClipboard;
-
// widgets
private PageBook fPagebook;
private Composite fViewerPage;
@@ -208,8 +205,6 @@ public class CHViewPart extends ViewPart {
getSite().setSelectionProvider(new AdaptingSelectionProvider(ICElement.class, fTreeViewer));
- fClipboard = new Clipboard(parent.getDisplay());
-
initDragAndDrop();
createActions();
createContextMenu();
@@ -489,7 +484,7 @@ public class CHViewPart extends ViewPart {
fHistoryAction = new CHHistoryDropDownAction(this);
- fCopyAction= new CopyCallHierarchyAction(this, fClipboard, fTreeViewer);
+ fCopyAction= new CopyCallHierarchyAction(this, fTreeViewer);
// setup action bar
// global action hooks
@@ -811,9 +806,8 @@ public class CHViewPart extends ViewPart {
}
private static class CopyCallHierarchyAction extends CopyTreeAction {
- public CopyCallHierarchyAction(ViewPart view, Clipboard clipboard, TreeViewer viewer) {
- super(CHMessages.CHViewPart_CopyCallHierarchy_label, view, clipboard, viewer);
-// PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.CALL_HIERARCHY_COPY_ACTION);
+ public CopyCallHierarchyAction(ViewPart view, TreeViewer viewer) {
+ super(CHMessages.CHViewPart_CopyCallHierarchy_label, view, viewer);
}
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THViewPart.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THViewPart.java
index d13cee18982..7fcc1fae784 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THViewPart.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/typehierarchy/THViewPart.java
@@ -45,7 +45,6 @@ import org.eclipse.swt.accessibility.AccessibleEvent;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.Transfer;
@@ -142,8 +141,6 @@ public class THViewPart extends ViewPart implements ITHModelPresenter {
private ArrayList<ICElement> fHistoryEntries= new ArrayList<ICElement>(MAX_HISTORY_SIZE);
private int fIgnoreSelectionChanges= 0;
- private Clipboard fClipboard;
-
// widgets
private PageBook fPagebook;
private Label fInfoText;
@@ -235,8 +232,6 @@ public class THViewPart extends ViewPart implements ITHModelPresenter {
initSelectionProvider();
- fClipboard = new Clipboard(parent.getDisplay());
-
initDragAndDrop();
createActions();
createContextMenu();
@@ -785,7 +780,7 @@ public class THViewPart extends ViewPart implements ITHModelPresenter {
fHistoryAction = new THHistoryDropDownAction(this);
- fCopyAction= new CopyTypeHierarchyAction(this, fClipboard, fHierarchyTreeViewer);
+ fCopyAction= new CopyTypeHierarchyAction(this, fHierarchyTreeViewer);
// setup action bar
// global action hooks
@@ -1132,9 +1127,8 @@ public class THViewPart extends ViewPart implements ITHModelPresenter {
}
private static class CopyTypeHierarchyAction extends CopyTreeAction {
- public CopyTypeHierarchyAction(ViewPart view, Clipboard clipboard, TreeViewer viewer) {
- super(Messages.THViewPart_CopyTypeHierarchy, view, clipboard, viewer);
-// PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.TYPE_HIERARCHY_COPY_ACTION);
+ public CopyTypeHierarchyAction(ViewPart view, TreeViewer viewer) {
+ super(Messages.THViewPart_CopyTypeHierarchy, view, viewer);
}
}
}

Back to the top