Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 217633 Details for
Bug 378298
[EditorMgmt] [Split editor] Allow nesting of Sash/Stack in a Stack
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Enhancement
patch.txt (text/plain), 5.87 KB, created by
Nobody - feel free to take it
on 2012-06-20 10:35:30 EDT
(
hide
)
Description:
Enhancement
Filename:
MIME Type:
Creator:
Nobody - feel free to take it
Created:
2012-06-20 10:35:30 EDT
Size:
5.87 KB
patch
obsolete
>diff --git a/examples/org.eclipse.e4.demo.split.renderer.swt/META-INF/MANIFEST.MF b/examples/org.eclipse.e4.demo.split.renderer.swt/META-INF/MANIFEST.MF >index bfed0fb..f5c2b91 100644 >--- a/examples/org.eclipse.e4.demo.split.renderer.swt/META-INF/MANIFEST.MF >+++ b/examples/org.eclipse.e4.demo.split.renderer.swt/META-INF/MANIFEST.MF >@@ -13,6 +13,7 @@ > org.eclipse.e4.ui.services;bundle-version="0.10.0", > org.eclipse.e4.ui.workbench.swt;bundle-version="0.10.0", > org.eclipse.jface;bundle-version="3.8.0", >- org.eclipse.osgi.services;bundle-version="3.3.0" >+ org.eclipse.osgi.services;bundle-version="3.3.0", >+ org.eclipse.e4.demo.split.model;bundle-version="1.0.0" > Bundle-ActivationPolicy: lazy > Bundle-RequiredExecutionEnvironment: JavaSE-1.6 >diff --git a/examples/org.eclipse.e4.demo.split.renderer.swt/src/org/eclipse/e4/demo/split/renderer/swt/SplitStackRenderer.java b/examples/org.eclipse.e4.demo.split.renderer.swt/src/org/eclipse/e4/demo/split/renderer/swt/SplitStackRenderer.java >index 616a483..5d92cbf 100644 >--- a/examples/org.eclipse.e4.demo.split.renderer.swt/src/org/eclipse/e4/demo/split/renderer/swt/SplitStackRenderer.java >+++ b/examples/org.eclipse.e4.demo.split.renderer.swt/src/org/eclipse/e4/demo/split/renderer/swt/SplitStackRenderer.java >@@ -17,6 +17,7 @@ > import javax.inject.Inject; > import org.eclipse.e4.core.contexts.IEclipseContext; > import org.eclipse.e4.core.services.events.IEventBroker; >+import org.eclipse.e4.demo.split.model.split.MStackSashContainer; > import org.eclipse.e4.ui.internal.workbench.renderers.swt.BasicPartList; > import org.eclipse.e4.ui.internal.workbench.renderers.swt.SWTRenderersMessages; > import org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer; >@@ -28,6 +29,7 @@ > import org.eclipse.e4.ui.model.application.ui.MUILabel; > import org.eclipse.e4.ui.model.application.ui.advanced.MPlaceholder; > import org.eclipse.e4.ui.model.application.ui.basic.MPart; >+import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement; > import org.eclipse.e4.ui.model.application.ui.basic.MPartStack; > import org.eclipse.e4.ui.model.application.ui.basic.MStackElement; > import org.eclipse.e4.ui.model.application.ui.basic.MWindow; >@@ -201,14 +203,14 @@ > MUIElement selElement = stackToActivate.getSelectedElement(); > if (!isValid(selElement)) > return; >- >- //TODO Change for 8009 >+ >+ // TODO Change for 8009 > activate(getPart(selElement)); > } > } > } >- >- //TODO Change for 8009 >+ >+ // TODO Change for 8009 > private MPart getPart(MUIElement element) { > if (element instanceof MPart) { > return (MPart) element; >@@ -348,15 +350,15 @@ > > // Is the part directly under the stack? > MElementContainer<MUIElement> parent = part.getParent(); >- >- //TODO Change for 8009 >+ >+ // TODO Change for 8009 > if (parent != null) { > if (parent.getRenderer() != SplitStackRenderer.this) { > objElement = parent; > parent = parent.getParent(); > } > } >- >+ > if (parent != null > && parent.getRenderer() == SplitStackRenderer.this) { > CTabItem cti = findItemForPart(part, parent); >@@ -734,9 +736,9 @@ > > protected void createTab(MElementContainer<MUIElement> stack, > MUIElement element) { >- //TODO Change for 8009 >+ // TODO Change for 8009 > MPart part = getPart(element); >- >+ > if (element instanceof MPlaceholder) { > part = (MPart) ((MPlaceholder) element).getRef(); > part.setCurSharedRef((MPlaceholder) element); >@@ -893,7 +895,7 @@ > > // If the user middle clicks on a tab, close it > if (item != null && e.button == 2) { >- closePart(item, false); >+ closePart(item, false, true); > } > > // If the user clicks on the tab or empty stack space, call >@@ -923,7 +925,7 @@ > > CTabFolder2Adapter closeListener = new CTabFolder2Adapter() { > public void close(CTabFolderEvent event) { >- event.doit = closePart(event.item, true); >+ event.doit = closePart(event.item, true, true); > } > > @Override >@@ -964,7 +966,7 @@ > MUIElement uiElement = (MUIElement) eventTabItem > .getData(AbstractPartRenderer.OWNING_ME); > MPart tabPart = (MPart) ((uiElement instanceof MPart) ? uiElement >- : ((MPlaceholder) uiElement).getRef()); >+ : ((MStackSashContainer) uiElement).getChildren().get(0)); > openMenuFor(tabPart, ctf, absolutePoint); > } > } >@@ -1030,12 +1032,24 @@ > * if this check should not be performed > * @return <tt>true</tt> if the part was closed, <tt>false</tt> otherwise > */ >- private boolean closePart(Widget widget, boolean check) { >+ private boolean closePart(Widget widget, boolean check, boolean needToSave) { > MUIElement uiElement = (MUIElement) widget > .getData(AbstractPartRenderer.OWNING_ME); >+ MPart part = null; >+ if (uiElement instanceof MStackSashContainer) { >+ List<MPartSashContainerElement> children = ((MStackSashContainer) uiElement) >+ .getChildren(); >+ part = (MPart) children.get(0); >+ closePart((Widget) part.getWidget(), check, false); >+ } > >- MPart part = (MPart) ((uiElement instanceof MPart) ? uiElement >- : ((MPlaceholder) uiElement).getRef()); >+ if (uiElement instanceof MPart) >+ part = (MPart) uiElement; >+ else { >+ >+ part = (MPart) ((MStackSashContainer) uiElement).getChildren().get(0); >+ } >+ > if (!check && !isClosable(part)) { > return false; > } >@@ -1048,10 +1062,16 @@ > // Allow closes to be 'canceled' > EPartService partService = (EPartService) context > .get(EPartService.class.getName()); >- if (partService.savePart(part, true)) { >+ if (needToSave) { >+ if (partService.savePart(part, true)) { >+ partService.hidePart(part); >+ return true; >+ } >+ } else { > partService.hidePart(part); > return true; > } >+ > // the user has canceled out of the save operation, so don't close the > // part > return false;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 378298
:
214947
|
214959
|
217550
| 217633 |
217654
|
236938
|
238285