Editparts, Figures and children [message #158146] |
Tue, 16 November 2004 16:55 |
Eclipse User |
|
|
|
Originally posted by: spam.nospam.com
Hi all,
I've designed a GEF editor to edit bean properties. I have a
BeanEditPart and a PropertyEditPart. The BeanEditPart will have a child
PropertyEditPart for every property (as defined via commons Attributes
xdoclet markup).
I have all this working, but would like a sanity check on my use of
Figures and EditParts.
My BeanEditPart has a EditPolicy.COMPONENT_ROLE as it is not strictly a
container in the GEF sense of the word. I.e. It has children but this is
a fixed number of PropertyEditParts. You cannot add/delete or move these
children so it is not a GEF container.
The PropertyEditPart is a container which allows a single child - the
value that will set the property of the bean. When a value is set, this
in turn will cause a BeanEditPart to be created etc, etc.
Now, when I created my figures, the PropertyEditPart simply returns a
Figure with a FlowLayout; no problem there. I want the BeanEditPart to
construct a Figure containing both labels and PropertyEditPart figures.
Ultimately I want to achieve something like this:
------------ ------------
| property | is greater than | property |
------------ ------------
I.e. Parts of the figure are just non-editable layout and information to
describe the interrelation of the properties.
And finally the question:
Is it safe to override addChildVisual and removeChildVisual to do
nothing. I can then take the responsibility for adding child
PropertyEditPart figures in the createFigure() method. I have so far
added placeholders for the child figures and replaced them by overridden
add/removeChildVisual() methods.
Thanks for your help. Looking forward to a response.
Pat
p.s. Appreciated all of the mails in the newsgroup. This is certainly a
valuable resource to understanding GEF.
|
|
|
Re: Editparts, Figures and children [message #158236 is a reply to message #158146] |
Wed, 17 November 2004 03:19 |
Pratik Shah Messages: 1077 Registered: July 2009 |
Senior Member |
|
|
"Pat" <spam@nospam.com> wrote in message
news:cndbj7$scg$1@www.eclipse.org...
> Hi all,
>
> I've designed a GEF editor to edit bean properties. I have a
> BeanEditPart and a PropertyEditPart. The BeanEditPart will have a child
> PropertyEditPart for every property (as defined via commons Attributes
> xdoclet markup).
>
> I have all this working, but would like a sanity check on my use of
> Figures and EditParts.
>
> My BeanEditPart has a EditPolicy.COMPONENT_ROLE as it is not strictly a
> container in the GEF sense of the word. I.e. It has children but this is
> a fixed number of PropertyEditParts. You cannot add/delete or move these
> children so it is not a GEF container.
####
Doesn't matter. It's still a container. Containment is defined by ability
to have children. The constraints on the children are irrelevant.
>
> The PropertyEditPart is a container which allows a single child - the
> value that will set the property of the bean. When a value is set, this
> in turn will cause a BeanEditPart to be created etc, etc.
>
> Now, when I created my figures, the PropertyEditPart simply returns a
> Figure with a FlowLayout; no problem there. I want the BeanEditPart to
> construct a Figure containing both labels and PropertyEditPart figures.
> Ultimately I want to achieve something like this:
>
> ------------ ------------
> | property | is greater than | property |
> ------------ ------------
>
> I.e. Parts of the figure are just non-editable layout and information to
> describe the interrelation of the properties.
>
> And finally the question:
> Is it safe to override addChildVisual and removeChildVisual to do
> nothing. I can then take the responsibility for adding child
> PropertyEditPart figures in the createFigure() method. I have so far
> added placeholders for the child figures and replaced them by overridden
> add/removeChildVisual() methods.
####
Okay, I'm not familiar with the xdoclet markup and hence it's not entirely
clear to me what you're trying to do. But it seems that you have a case
where two distinct model entities are to be shown as having a parent/child
relationship on the screen. While their relationship may not be as such in
the model, it's perfectly fine to have the BeanEditPart be the parent of the
PropertyEditParts (if that's how you want to represent them).
To answer your actual question, there's nothing stopping you from overriding
those methods. If you're not ever going to have children editparts, it
shouldn't create any problems. However, I wouldn't recommend it; moreso
because it seems you don't need to. It's easy to end up with some ugly code
if you don't know what you're doing or don't understand the framework
entirely.
>
> Thanks for your help. Looking forward to a response.
>
> Pat
>
> p.s. Appreciated all of the mails in the newsgroup. This is certainly a
> valuable resource to understanding GEF.
|
|
|
Re: Editparts, Figures and children [message #158291 is a reply to message #158236] |
Wed, 17 November 2004 08:28 |
Eclipse User |
|
|
|
Originally posted by: spam.nospam.com
Pratik Shah wrote:
> ####
> Doesn't matter. It's still a container. Containment is defined by ability
> to have children. The constraints on the children are irrelevant.
Agreed. Only to all intents it isn't a container to GEF as it isn't
possible to add or remove the children. They are a fixed number, and so
to GEF it only has a component role.
> ####
> Okay, I'm not familiar with the xdoclet markup and hence it's not entirely
> clear to me what you're trying to do. But it seems that you have a case
> where two distinct model entities are to be shown as having a parent/child
> relationship on the screen. While their relationship may not be as such in
> the model, it's perfectly fine to have the BeanEditPart be the parent of the
> PropertyEditParts (if that's how you want to represent them).
Yep, I know this. This bit is working fine :-)
> To answer your actual question, there's nothing stopping you from overriding
> those methods. If you're not ever going to have children editparts, it
> shouldn't create any problems. However, I wouldn't recommend it; moreso
> because it seems you don't need to. It's easy to end up with some ugly code
> if you don't know what you're doing or don't understand the framework
> entirely.
That's all I need to know. I was concerned that I shouldn't be adding
child figures in the createFigure method, and effectively disabling the
GEF from getting them added and removed in add/removeChildVisual(). Just
being cautious.
Thanks
Pat
|
|
|
Re: Editparts, Figures and children [message #158341 is a reply to message #158146] |
Wed, 17 November 2004 18:18 |
Eclipse User |
|
|
|
Originally posted by: none.us.ibm.com
It sounds like you want 2 children figures to be at figure indexes 0 and 2.
Why not just extend the method and correct the indexed? In other words, if
index==1, set index := 2.
"Pat" <spam@nospam.com> wrote in message
news:cndbj7$scg$1@www.eclipse.org...
> Hi all,
>
> I've designed a GEF editor to edit bean properties. I have a
> BeanEditPart and a PropertyEditPart. The BeanEditPart will have a child
> PropertyEditPart for every property (as defined via commons Attributes
> xdoclet markup).
>
> I have all this working, but would like a sanity check on my use of
> Figures and EditParts.
>
> My BeanEditPart has a EditPolicy.COMPONENT_ROLE as it is not strictly a
> container in the GEF sense of the word. I.e. It has children but this is
> a fixed number of PropertyEditParts. You cannot add/delete or move these
> children so it is not a GEF container.
>
> The PropertyEditPart is a container which allows a single child - the
> value that will set the property of the bean. When a value is set, this
> in turn will cause a BeanEditPart to be created etc, etc.
>
> Now, when I created my figures, the PropertyEditPart simply returns a
> Figure with a FlowLayout; no problem there. I want the BeanEditPart to
> construct a Figure containing both labels and PropertyEditPart figures.
> Ultimately I want to achieve something like this:
>
> ------------ ------------
> | property | is greater than | property |
> ------------ ------------
>
> I.e. Parts of the figure are just non-editable layout and information to
> describe the interrelation of the properties.
>
> And finally the question:
> Is it safe to override addChildVisual and removeChildVisual to do
> nothing. I can then take the responsibility for adding child
> PropertyEditPart figures in the createFigure() method. I have so far
> added placeholders for the child figures and replaced them by overridden
> add/removeChildVisual() methods.
>
> Thanks for your help. Looking forward to a response.
>
> Pat
>
> p.s. Appreciated all of the mails in the newsgroup. This is certainly a
> valuable resource to understanding GEF.
|
|
|
Re: Editparts, Figures and children [message #158441 is a reply to message #158341] |
Thu, 18 November 2004 09:28 |
Eclipse User |
|
|
|
Originally posted by: spam.nospam.com
Hi Randy,
this would be fine for the simple example I cited. However, sometimes I
need to build up more complex figures for layout reasons. I.e. one
editpart has a figure with any number of nested figures to lay out the
EditPart. In this case I might not actually be adding to the EditPart's
top level figure, but to one of its children. It also isn't necessarily
a case of having a 'content pane' to which child visuals are added. They
can be placed anywhere in the figure hierarchy.
I've worked round the problem by having a superclass EditPart which
allows 'placeholders' to be added to a figure by subclasses. The
placeholders are stored in a List for retrieval later. The signature for
the method is
protected void addPlaceholder(Figure container)
This allows the subclass to determine where the child EditPart's figure
will ultimately be placed. The superclass overrides
addChildVisual/removeChildVisual to look up the placeholder by index and
replaces it with the child editpart's figure. Seems to work well.
BTW as I'm sure you know, overriding add/removeChildVisual to do nothing
was not a solution. When createFigure() is called, the parent EditPart
doesn't have any child EditParts so it can't add them at that point.
Thanks for the help.
Pat
Randy Hudson wrote:
> It sounds like you want 2 children figures to be at figure indexes 0 and 2.
> Why not just extend the method and correct the indexed? In other words, if
> index==1, set index := 2.
|
|
|
|
Powered by
FUDForum. Page generated in 0.03413 seconds