Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » getChildren() for itemProviders
getChildren() for itemProviders [message #417389] Fri, 07 March 2008 11:55 Go to next message
Martin Tauber is currently offline Martin TauberFriend
Messages: 122
Registered: July 2009
Senior Member
I decided to convert my views using EMF.Edit. I have a tree view, where
I would now like to add my model to be displayed. So created the .edit
code and changed the view to:

viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
getSite().setSelectionProvider(viewer);


ModelItemProviderAdapterFactory adapterFactory = new
ModelItemProviderAdapterFactory();
AdapterFactoryContentProvider contentProvider = new
AdapterFactoryContentProvider(adapterFactory);
AdapterFactoryLabelProvider labelProvider = new
AdapterFactoryLabelProvider(adapterFactory);

viewer.setContentProvider(contentProvider);
viewer.setLabelProvider(labelProvider);


//viewer.setContentProvider(new ExplorerViewContentProvider());
//viewer.setLabelProvider(new ExplorerViewLabelProvider());

Now when I run my application, the view is empty. There is data in my
model. I have changed the attribute of my references in the model to
containment="true".

When I look at the generated classes I don't find the method
getChildren() and getElements() in the .edit package. I would have
expected that these methods would have been generated ...

Any ideas?
Thanks
Martin
Re: getChildren() for itemProviders [message #417392 is a reply to message #417389] Fri, 07 March 2008 13:23 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33141
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------040908080700010500000207
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Martin,

Comments below.

Martin Tauber wrote:
> I decided to convert my views using EMF.Edit. I have a tree view,
> where I would now like to add my model to be displayed. So created the
> .edit code and changed the view to:
>
> viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
> getSite().setSelectionProvider(viewer);
>
>
> ModelItemProviderAdapterFactory adapterFactory = new
> ModelItemProviderAdapterFactory();
> AdapterFactoryContentProvider contentProvider = new
> AdapterFactoryContentProvider(adapterFactory);
> AdapterFactoryLabelProvider labelProvider = new
> AdapterFactoryLabelProvider(adapterFactory);
>
> viewer.setContentProvider(contentProvider);
> viewer.setLabelProvider(labelProvider);
>
>
> //viewer.setContentProvider(new ExplorerViewContentProvider());
> //viewer.setLabelProvider(new ExplorerViewLabelProvider());
>
> Now when I run my application, the view is empty. There is data in my
> model. I have changed the attribute of my references in the model to
> containment="true".
>
> When I look at the generated classes I don't find the method
> getChildren() and getElements() in the .edit package. I would have
> expected that these methods would have been generated ...
You'd have to look at the base class ItemProviderAdapter to see how this
gets implemented. This would reveal that the generated override of
getChildrenFeatures is what drives the logic for the objects that are
displayed as children. What's the input object to your viewer? Note
that the generated editor includes an item provider for show the
children of a resource or resource set as well as a reflective
fallback. Depending on your input object the support for Resource and
ResourceSet might be important to get your tree started...

| adapterFactory = *new *ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Re gistry.INSTANCE);

adapterFactory.addAdapterFactory(*new *ResourceItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(*new *LibraryItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(*new *ReflectiveItemProviderAdapterFactory());|



> Any ideas?
> Thanks
> Martin


--------------040908080700010500000207
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Martin,<br>
<br>
Comments below.<br>
<br>
Martin Tauber wrote:
<blockquote cite="mid:fqrag0$kdd$1@build.eclipse.org" type="cite">I
decided to convert my views using EMF.Edit. I have a tree view, where I
would now like to add my model to be displayed. So created the .edit
code and changed the view to:
<br>
<br>
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL |
SWT.V_SCROLL);
<br>
getSite().setSelectionProvider(viewer);&nbsp;&nbsp;& amp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br>
ModelItemProviderAdapterFactory adapterFactory = new
ModelItemProviderAdapterFactory();
<br>
AdapterFactoryContentProvider contentProvider = new
AdapterFactoryContentProvider(adapterFactory);
<br>
AdapterFactoryLabelProvider labelProvider = new
AdapterFactoryLabelProvider(adapterFactory);
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br>
viewer.setContentProvider(contentProvider);
<br>
viewer.setLabelProvider(labelProvider);
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br>
//viewer.setContentProvider(new ExplorerViewContentProvider());
<br>
//viewer.setLabelProvider(new ExplorerViewLabelProvider());
<br>
<br>
Now when I run my application, the view is empty. There is data in my
model. I have changed the attribute of my references in the model to
containment="true".
<br>
<br>
When I look at the generated classes I don't find the method
getChildren() and getElements() in the .edit package. I would have
expected that these methods would have been generated ...
<br>
</blockquote>
You'd have to look at the base class ItemProviderAdapter to see how
this gets implemented.&nbsp; This would reveal that the generated override
of getChildrenFeatures is what drives the logic for the objects that
are displayed as children.&nbsp; What's the input object to your viewer?
Note that the generated editor includes an item provider for show the
children of a resource or resource set as well as a reflective
fallback.&nbsp; Depending on your input object the support for Resource and
ResourceSet might be important to get your tree started...<br>
<blockquote>
<title></title>
<style type="text/css">
<!--code { font-family: Courier New, Courier; font-size: 10pt; margin: 0px; }-->
</style>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<!-- ======================================================== --><!-- = Java Sourcecode to HTML automatically converted code = --><!-- = Java2Html Converter 5.0 [2006-02-26] by Markus Gebhard markus@jave.de = -->
<!-- = Further information: http://www.java2html.de = -->
<div class="java" align="left">
<table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<!-- start source code --> <td align="left" nowrap="nowrap"
valign="top"> <code><font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font ><font
color="#000000">adapterFactory&nbsp;=&nbsp;</font ><font color="#7f0055"><b>new&nbsp;</b></font><font
color="#000000">ComposedAdapterFactory</font><font color="#000000">(</font><font
color="#000000">ComposedAdapterFactory.Descriptor.Registry.INSTANCE </font><font
color="#000000">)</font><font color="#000000">;</font><br>
<font color="#ffffff"></font><br>
<font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font ><font color="#000000">adapterFactory.addAdapterFactory</font><font
color="#000000">(</font><font color="#7f0055"><b>new&nbsp;</b></font><font
color="#000000">ResourceItemProviderAdapterFactory</font> <font
color="#000000">())</font><font color="#000000">;</font><br>
<font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font ><font color="#000000">adapterFactory.addAdapterFactory</font><font
color="#000000">(</font><font color="#7f0055"><b>new&nbsp;</b></font><font
color="#000000">LibraryItemProviderAdapterFactory</font><font
color="#000000">())</font><font color="#000000">;</font><br>
<font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font ><font color="#000000">adapterFactory.addAdapterFactory</font><font
color="#000000">(</font><font color="#7f0055"><b>new&nbsp;</b></font><font
color="#000000">ReflectiveItemProviderAdapterFactory</font ><font
color="#000000">())</font><font color="#000000">;</font></code> </td>
<!-- end source code --> </tr>
</tbody>
</table>
</div>
<!-- = END of automatically generated HTML code = -->
<!-- ======================================================== --></blockquote>
<br>
<blockquote cite="mid:fqrag0$kdd$1@build.eclipse.org" type="cite">Any
ideas?
<br>
Thanks
<br>
Martin
<br>
</blockquote>
<br>
</body>
</html>

--------------040908080700010500000207--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: getChildren() for itemProviders [message #417415 is a reply to message #417389] Sun, 09 March 2008 23:06 Go to previous message
Jim Steel is currently offline Jim SteelFriend
Messages: 54
Registered: July 2009
Member
I'd have a look at the setInput() method.

Jim.


Martin Tauber wrote:
> I decided to convert my views using EMF.Edit. I have a tree view, where
> I would now like to add my model to be displayed. So created the .edit
> code and changed the view to:
>
> viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
> getSite().setSelectionProvider(viewer);
>
>
> ModelItemProviderAdapterFactory adapterFactory = new
> ModelItemProviderAdapterFactory();
> AdapterFactoryContentProvider contentProvider = new
> AdapterFactoryContentProvider(adapterFactory);
> AdapterFactoryLabelProvider labelProvider = new
> AdapterFactoryLabelProvider(adapterFactory);
>
> viewer.setContentProvider(contentProvider);
> viewer.setLabelProvider(labelProvider);
>
>
> //viewer.setContentProvider(new ExplorerViewContentProvider());
> //viewer.setLabelProvider(new ExplorerViewLabelProvider());
>
> Now when I run my application, the view is empty. There is data in my
> model. I have changed the attribute of my references in the model to
> containment="true".
>
> When I look at the generated classes I don't find the method
> getChildren() and getElements() in the .edit package. I would have
> expected that these methods would have been generated ...
>
> Any ideas?
> Thanks
> Martin
Previous Topic:Looking for antlr+emf samples
Next Topic:One ecore:EPackage per .ecore file ?
Goto Forum:
  


Current Time: Thu Apr 25 16:18:05 GMT 2024

Powered by FUDForum. Page generated in 0.03017 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top