Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemy Suen2011-04-20 16:22:23 +0000
committerRemy Suen2011-04-20 16:22:23 +0000
commitbb22204533a518bad99c2eed0ef1f5217650cbd3 (patch)
tree50520a278ba2793f4e90eddf404775254a847758 /bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
parent2a5c893a5bcc9c15ce657c598bb4108fd7451250 (diff)
downloadeclipse.platform.ui-bb22204533a518bad99c2eed0ef1f5217650cbd3.tar.gz
eclipse.platform.ui-bb22204533a518bad99c2eed0ef1f5217650cbd3.tar.xz
eclipse.platform.ui-bb22204533a518bad99c2eed0ef1f5217650cbd3.zip
Bug 342929 [Compatibility] DBCS4.1: Window->Navigation->Minimize Active View or Editor not working
Diffstat (limited to 'bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java')
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java107
1 files changed, 73 insertions, 34 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 f78c514fa24..2d55f95f109 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
@@ -146,6 +146,11 @@ public class WorkbenchPage extends CompatibleWorkbenchPage implements
static final String SECONDARY_ID_HEADER = "3x-secondary:"; //$NON-NLS-1$
+ // HACK!! Constants are defined in MinMaxAddon
+ private static final String EAMinimizedHack = "Minimized"; //$NON-NLS-1$
+ private static final String EAMaximizedHack = "Maximized"; //$NON-NLS-1$
+ private static final String EAMinimizedByZoomHack = "MinimizedByZoom"; //$NON-NLS-1$
+
class E4PartListener implements org.eclipse.e4.ui.workbench.modeling.IPartListener {
public void partActivated(MPart part) {
@@ -3280,19 +3285,46 @@ public class WorkbenchPage extends CompatibleWorkbenchPage implements
}
}
+ private MUIElement getActiveElement(IWorkbenchPartReference ref) {
+ MUIElement element = null;
+
+ MPerspective curPersp = modelService.getActivePerspective(window);
+ MPlaceholder eaPH = (MPlaceholder) modelService.find(IPageLayout.ID_EDITOR_AREA, curPersp);
+ MPart model = ((WorkbenchPartReference) ref).getModel();
+ MPlaceholder placeholder = model.getCurSharedRef();
+
+ switch (modelService.getElementLocation(placeholder == null ? model : placeholder)) {
+ case EModelService.IN_ACTIVE_PERSPECTIVE:
+ MUIElement parent = placeholder == null ? model.getParent() : placeholder.getParent();
+ if (parent instanceof MPartStack) {
+ element = parent;
+ }
+ break;
+ case EModelService.IN_SHARED_AREA:
+ element = eaPH;
+ break;
+ }
+ return element;
+ }
+
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPage#setPartState(org.eclipse.ui.
* IWorkbenchPartReference, int)
*/
- public void setPartState(IWorkbenchPartReference ref, int state) {
- // FIXME compat setPartState
- E4Util.unsupported("setPartState"); //$NON-NLS-1$
- }
-
-
-
+ public void setPartState(IWorkbenchPartReference ref, int iState) {
+ MUIElement element = getActiveElement(ref);
+ String state = null;
+
+ if (iState == STATE_MINIMIZED) {
+ state = EAMinimizedHack;
+ } else if (iState == STATE_MAXIMIZED) {
+ state = EAMaximizedHack;
+ }
+ setPartState(element, state);
+ }
+
/*
* (non-Javadoc)
*
@@ -3300,10 +3332,36 @@ public class WorkbenchPage extends CompatibleWorkbenchPage implements
* IWorkbenchPartReference)
*/
public int getPartState(IWorkbenchPartReference ref) {
- // FIXME compat getPartState
- return STATE_RESTORED;
+ int state = STATE_RESTORED;
+ MUIElement element = getActiveElement(ref);
+
+ if (element != null) {
+ if (element.getTags().contains(EAMinimizedHack)) {
+ state = STATE_MINIMIZED;
+ } else if (element.getTags().contains(EAMaximizedHack)) {
+ state = STATE_MAXIMIZED;
+ }
+ }
+ return state;
}
+ // if the state is null, then we'll just restore the view
+ private void setPartState(MUIElement element, String state) {
+ if (element != null) {
+ element.getTags().remove(EAMinimizedByZoomHack);
+ if (EAMinimizedHack.equals(state)) {
+ element.getTags().remove(EAMaximizedHack);
+ element.getTags().add(EAMinimizedHack);
+ } else if (EAMaximizedHack.equals(state)) {
+ element.getTags().remove(EAMinimizedHack);
+ element.getTags().add(EAMaximizedHack);
+ } else {
+ element.getTags().remove(EAMinimizedHack);
+ element.getTags().remove(EAMaximizedHack);
+ }
+ }
+ }
+
/**
* updateActionBars method comment.
*/
@@ -3327,32 +3385,13 @@ public class WorkbenchPage extends CompatibleWorkbenchPage implements
* IWorkbenchPartReference)
*/
public void toggleZoom(IWorkbenchPartReference ref) {
- MPerspective curPersp = modelService.getActivePerspective(window);
- MPlaceholder eaPH = (MPlaceholder) modelService.find(IPageLayout.ID_EDITOR_AREA, curPersp);
-
- // HACK!! Constant is defined in MinMaxAddon
- String EAMaximizedHack = "Maximized"; //$NON-NLS-1$
-
- MPart model = ((WorkbenchPartReference) ref).getModel();
- MPlaceholder placeholder = model.getCurSharedRef();
- switch (modelService.getElementLocation(placeholder == null ? model : placeholder)) {
- case EModelService.IN_ACTIVE_PERSPECTIVE:
- MUIElement parent = placeholder == null ? model.getParent() : placeholder.getParent();
- if (parent instanceof MPartStack) {
- if (parent.getTags().contains(EAMaximizedHack)) {
- parent.getTags().remove(EAMaximizedHack);
- } else {
- parent.getTags().add(EAMaximizedHack);
- }
- }
- break;
- case EModelService.IN_SHARED_AREA:
- if (eaPH.getTags().contains(EAMaximizedHack)) {
- eaPH.getTags().remove(EAMaximizedHack);
- } else {
- eaPH.getTags().add(EAMaximizedHack);
+ MUIElement element = getActiveElement(ref);
+ if (element != null) {
+ String state = null;
+ if (!element.getTags().contains(EAMaximizedHack)) {
+ state = EAMaximizedHack;
}
- break;
+ this.setPartState(element, state);
}
}

Back to the top