Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » Help with EditorPart Layout
Help with EditorPart Layout [message #309237] Thu, 19 October 2006 12:14 Go to next message
Eclipse User
Originally posted by: chlache.talita.org

This code works fine with a ViewPart:

public void createPartControl(Composite parent) {

GridData gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.grabExcessVerticalSpace = true;

parent.setLayout(new GridLayout());

imageCanvas=new ImageCanvas(parent);
imageCanvas.setLayoutData(gridData);
}

But in an EditorPart imageCanvas(extends Canvas).getSize is always==0;
NOT painting anything!
If I call imageCanvas.setSize(300,300) it paints fine within the
specified bounds.
Of course i have tried FillLayout with no success.

Can please someone tell me what i am missing!
Re: Help with EditorPart Layout [message #309238 is a reply to message #309237] Thu, 19 October 2006 12:38 Go to previous messageGo to next message
Eclipse User
Originally posted by: chlache.talita.org

Ok found it.
Kind of.
loading the image in init() solves the problem.

Andreas Chlache wrote:
> This code works fine with a ViewPart:
>
> public void createPartControl(Composite parent) {
>
> GridData gridData = new GridData();
> gridData.grabExcessHorizontalSpace = true;
> gridData.horizontalAlignment = GridData.FILL;
> gridData.verticalAlignment = GridData.FILL;
> gridData.grabExcessVerticalSpace = true;
>
> parent.setLayout(new GridLayout());
>
> imageCanvas=new ImageCanvas(parent);
> imageCanvas.setLayoutData(gridData);
> }
>
> But in an EditorPart imageCanvas(extends Canvas).getSize is always==0;
> NOT painting anything!
> If I call imageCanvas.setSize(300,300) it paints fine within the
> specified bounds.
> Of course i have tried FillLayout with no success.
>
> Can please someone tell me what i am missing!
Re: Help with EditorPart Layout [message #309245 is a reply to message #309237] Thu, 19 October 2006 19:58 Go to previous message
Paul Webster is currently offline Paul Webster
Messages: 6850
Registered: July 2009
Location: Ottawa
Senior Member

Andreas Chlache wrote:
> This code works fine with a ViewPart:
>
> public void createPartControl(Composite parent) {
>
> GridData gridData = new GridData();
> gridData.grabExcessHorizontalSpace = true;
> gridData.horizontalAlignment = GridData.FILL;
> gridData.verticalAlignment = GridData.FILL;
> gridData.grabExcessVerticalSpace = true;
>
> parent.setLayout(new GridLayout());


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Please never do this (there's probably some bad example code out there
that keeps getting propogated forward). The parent composite in
ViewPart and EditorPart is not for clients to reset the layout on.

Always create your own composite to control your part layout.

Composite x = new Composite(parent, SWT.NONE);

//...

x.setLayout(new GridLayout());


Previous Topic:Help with FormText/ScrolledFormText
Next Topic:How to close editor when Project is closed
Goto Forum:
  


Current Time: Wed Apr 16 06:52:59 EDT 2014

Powered by FUDForum. Page generated in 0.01559 seconds