Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian de Alwis2016-05-11 15:20:14 +0000
committerBrian de Alwis2016-05-17 17:17:36 +0000
commit78b6ea727ada099e2d46d30ae9ff34f6528f8a19 (patch)
treee5033ba13fa8e77f4b39e8730c58d058b69a3066
parent5aa64a0dece73a7a3176d924dbaac209604c40cb (diff)
downloadeclipse.platform.ui-78b6ea727ada099e2d46d30ae9ff34f6528f8a19.tar.gz
eclipse.platform.ui-78b6ea727ada099e2d46d30ae9ff34f6528f8a19.tar.xz
eclipse.platform.ui-78b6ea727ada099e2d46d30ae9ff34f6528f8a19.zip
Bug 493335 - [WorkingSets] Setting window working set affects all windows
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java19
-rw-r--r--tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java2
-rw-r--r--tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MultipleWindowsTest.java50
3 files changed, 54 insertions, 17 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
index 68f46322912..2c9a500f020 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -4674,14 +4674,10 @@ public class WorkbenchPage implements IWorkbenchPage {
.getWorkingSetManager();
if (aggregateWorkingSetId == null) {
- aggregateWorkingSet = findAggregateWorkingSet(workingSetManager);
- aggregateWorkingSetId = aggregateWorkingSet == null ? getDefaultAggregateWorkingSetId()
- : aggregateWorkingSet.getName();
+ aggregateWorkingSetId = generateAggregateWorkingSetId();
} else {
- aggregateWorkingSet = (AggregateWorkingSet) workingSetManager
- .getWorkingSet(aggregateWorkingSetId);
+ aggregateWorkingSet = (AggregateWorkingSet) workingSetManager.getWorkingSet(aggregateWorkingSetId);
}
-
if (aggregateWorkingSet == null) {
aggregateWorkingSet = (AggregateWorkingSet) workingSetManager
.createAggregateWorkingSet(aggregateWorkingSetId,
@@ -4693,19 +4689,10 @@ public class WorkbenchPage implements IWorkbenchPage {
return aggregateWorkingSet;
}
- private String getDefaultAggregateWorkingSetId() {
+ private String generateAggregateWorkingSetId() {
return "Aggregate for window " + System.currentTimeMillis(); //$NON-NLS-1$
}
- private AggregateWorkingSet findAggregateWorkingSet(IWorkingSetManager workingSetManager) {
- for (IWorkingSet workingSet : workingSetManager.getAllWorkingSets()) {
- if (workingSet instanceof AggregateWorkingSet) {
- return (AggregateWorkingSet) workingSet;
- }
- }
- return null;
- }
-
@Override
public void showEditor(IEditorReference ref) {
// FIXME compat showEditor
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
index 2967910d947..a1db8fe1376 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
@@ -68,7 +68,7 @@ import org.junit.runners.Suite;
//IWorkbenchPartTestableTests.class,
ArbitraryPropertyTest.class,
LifecycleViewTest.class,
- Bug407422Test.class
+ Bug407422Test.class, MultipleWindowsTest.class
})
public class ApiTestSuite {
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MultipleWindowsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MultipleWindowsTest.java
new file mode 100644
index 00000000000..66d757728e8
--- /dev/null
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MultipleWindowsTest.java
@@ -0,0 +1,50 @@
+package org.eclipse.ui.tests.api;
+
+import static org.junit.Assert.assertNotSame;
+
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.WorkbenchException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * A set of tests for multiple monitor situations that ensures interactions are
+ * isolated to the respective window.
+ */
+public class MultipleWindowsTest {
+ IWorkbench wb;
+ IWorkbenchWindow win1;
+ IWorkbenchWindow win2;
+
+ @Before
+ public void setUp() throws WorkbenchException {
+ IWorkbench wb = PlatformUI.getWorkbench();
+ win1 = wb.openWorkbenchWindow(null);
+ win2 = wb.openWorkbenchWindow(null);
+ assertNotSame(win1, win2);
+ }
+
+ @After
+ public void tearDown() {
+ if (win1 != null) {
+ win1.close();
+ win1 = null;
+ }
+ if (win2 != null) {
+ win2.close();
+ win2 = null;
+ }
+ }
+
+ /**
+ * {@link http://eclip.se/493335 Bug 493335 - [WorkingSets] Setting window
+ * working set affects all windows}
+ */
+ @Test
+ public void testIndependentWorkingSets() {
+ assertNotSame(win1.getActivePage().getAggregateWorkingSet(), win2.getActivePage().getAggregateWorkingSet());
+ }
+}

Back to the top