Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 333496 - Rendering engine only shows one part for a window with two parts
Summary: Rendering engine only shows one part for a window with two parts
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 4.2 M1   Edit
Assignee: Eric Moffatt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 333869 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-01-04 11:38 EST by Remy Suen CLA
Modified: 2012-01-31 10:42 EST (History)
1 user (show)

See Also:


Attachments
Test Application.e4xmi (2.49 KB, text/plain)
2011-01-04 11:38 EST, Remy Suen CLA
no flags Details
Make the SashLayout handling local to the SashRenderer (11.36 KB, patch)
2011-01-06 09:46 EST, Eric Moffatt CLA
no flags Details | Diff
Handle shared PSC's (1.40 KB, patch)
2011-07-19 10:46 EDT, Eric Moffatt CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Remy Suen CLA 2011-01-04 11:38:25 EST
Created attachment 186023 [details]
Test Application.e4xmi

Please override your local contacts demo's Application.e4xmi file with the one attached to this bug. When you launch you will see only one part despite the fact that the parent window has _two_ children. The workaround is to wrap the two children in an MPartSashContainer.
Comment 1 Eric Moffatt CLA 2011-01-05 13:59:03 EST
This was almost certainly introduced during the implementation for Bug 317849.

Here we replaced the shell's client area's existing layout (FillLayout) with a SashLayout, meaning that multiple children not in a sash container will no longer get 'tiled'.

The current implementation is suspect in that it ties the various renderers (Perspective, Window, Area) to a particular Sash rendering mechanism and should likely be replaced by one that creates a specific Composite for the top level sash container (with a SashLayout) and then reverting the changes to the layout of the other renderers (i.e. they'd go back to FillLayout, fixing this defect).
Comment 2 Eric Moffatt CLA 2011-01-06 09:46:38 EST
Created attachment 186170 [details]
Make the SashLayout handling local to the SashRenderer


This implements the suggestions outlined in the comment above...
Comment 3 Eric Moffatt CLA 2011-01-06 09:55:39 EST
Committed in >20110106. Applied the patch.
Comment 4 Remy Suen CLA 2011-01-06 10:13:13 EST
(In reply to comment #2)
> Created attachment 186170 [details]
> Make the SashLayout handling local to the SashRenderer

PartRenderingEngineTests's testBug317849() now dies with an NPE.
Comment 5 Eric Moffatt CLA 2011-07-19 10:46:55 EDT
Created attachment 199906 [details]
Handle shared PSC's


The renderer wasn't handling the scenario where it was a shared element (i.e. 'getParent() == null').

Also updated the test to add the shared PSC to its window's 'sharedParts' list...
Comment 6 Remy Suen CLA 2011-07-19 13:36:54 EDT
*** Bug 333869 has been marked as a duplicate of this bug. ***
Comment 7 Eric Moffatt CLA 2011-07-19 14:42:31 EDT
Committed in >20110619. Applied the patch.