Skip to main content



      Home
Home » Eclipse Projects » Eclipse 4 » How do i define and use my own renderer?
How do i define and use my own renderer? [message #502716] Wed, 09 December 2009 09:28 Go to next message
Eclipse UserFriend
Hello,

i'm trying to define my own renderer for the indiviual elements of the workbench model.

I looked into the org.eclipse.e4.ui.workbench.renderers.swt package and played a bit with the existing renderers. Like changing the CTabFolder created in the StackRenderer or including the ribbon toolbar (from Hexapixel) in the WBWRenderer and that worked fine. So i thought to change the renderer i can implement my own by extending the SWTPartRenderer and define this one as default.

But how to i define that my own renderer should be used for a specific workbench model element. I saw that a model element has a Factory- & Widget-feature but i don't know how to use it. The same with the org.eclipse.e4.workbench.rendererfactory extension point.

Is this the right way at all or is there a better solution?

Thanks in advance for your help.

Jens Keller
Re: How do i define and use my own renderer? [message #503172 is a reply to message #502716] Fri, 11 December 2009 04:30 Go to previous messageGo to next message
Eclipse UserFriend
I found a way. I'm sure that in future versions of e4 it will be a bit easier to do this
but this feature looks very promising. So first you need the following:

- Eclipse 3.6M3
- e4M2 as target platform

from the cvs (both 20091126-1500):
- org.eclipse.e4.ui.workbench.renderers.swt
- org.eclipse.e4.ui.workbench.swt

Add both plugins to your runtime config.

- org.eclipse.e4.ui.workbench.swt.factories.IRendererFactory
- org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer
- org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine

First you need a renderer.You can define one for every element type in the workbench model.
For this you extend the SWTPartRenderer. You can use a default renderer in
org.eclipse.e4.ui.workbench.renderers.swt as a blueprint (maybe just change the CTabFolder in the StackRenderer).
To define which renderer should be used you must implement a IRendererFactory. Again you can use the default
one in org.eclipse.e4.workbench.ui.renderers.swt as blueprint. To define which IRendererFactory Eclipse should
use you must implement the org.eclipse.e4.workbench.rendererfactory extension point. This ext. point is not
fully implemented yet so you don't get a context menu to help you. After you added the ext.point got to
the xml-view and complete the definition as following (which i only guessed ad the moment):

<extension
id="sample.rendererfactory"
point="org.eclipse.e4.workbench.rendererfactory">
<rendererfactory
id="sample.rendererfactory"
name="SampleRendererFactory"
class="de.sample.renderer.SampleWorkbenchRendererFactory">
</rendererfactory>
</extension>

The last step is to make sure Eclipse uses your IRendererFactory. Go to org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine
(in the cvs plugin) and comment the code in line 186 & 187 (at the moment this code makes sure that no other renderer is used than the default one):

if (!curFactoryId.equals(id))
continue;

Now you should be able to explore the future possibilities of implementing your own renderers and new ways of designing
the UI. For a starting point you can include the swt rippon toolbar which you can find at http://hexapixel.com/projects/ribbon.
Re: How do i define and use my own renderer? [message #505894 is a reply to message #503172] Tue, 05 January 2010 09:12 Go to previous messageGo to next message
Eclipse UserFriend
I have created a bug and make some modification to change the default value
of curFactoryId for subclasses:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=298848

Best regards
Yves YANG
"Jens Keller" <mai00bfi@googlemail.com> wrote in message
news:hft3f9$k0h$1@build.eclipse.org...
>I found a way. I'm sure that in future versions of e4 it will be a bit
>easier to do this but this feature looks very promising. So first you need
>the following:
>
> - Eclipse 3.6M3
> - e4M2 as target platform
>
> from the cvs (both 20091126-1500):
> - org.eclipse.e4.ui.workbench.renderers.swt
> - org.eclipse.e4.ui.workbench.swt
>
> Add both plugins to your runtime config.
>
> - org.eclipse.e4.ui.workbench.swt.factories.IRendererFactory
> - org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer
> - org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine
>
> First you need a renderer.You can define one for every element type in the
> workbench model. For this you extend the SWTPartRenderer. You can use a
> default renderer in org.eclipse.e4.ui.workbench.renderers.swt as a
> blueprint (maybe just change the CTabFolder in the StackRenderer). To
> define which renderer should be used you must implement a
> IRendererFactory. Again you can use the default one in
> org.eclipse.e4.workbench.ui.renderers.swt as blueprint. To define which
> IRendererFactory Eclipse should use you must implement the
> org.eclipse.e4.workbench.rendererfactory extension point. This ext. point
> is not fully implemented yet so you don't get a context menu to help you.
> After you added the ext.point got to the xml-view and complete the
> definition as following (which i only guessed ad the moment):
>
> <extension
> id="sample.rendererfactory"
> point="org.eclipse.e4.workbench.rendererfactory">
> <rendererfactory
> id="sample.rendererfactory"
> name="SampleRendererFactory"
> class="de.sample.renderer.SampleWorkbenchRendererFactory">
> </rendererfactory>
> </extension>
>
> The last step is to make sure Eclipse uses your IRendererFactory. Go to
> org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine (in the cvs
> plugin) and comment the code in line 186 & 187 (at the moment this code
> makes sure that no other renderer is used than the default one):
>
> if (!curFactoryId.equals(id))
> continue;
>
> Now you should be able to explore the future possibilities of implementing
> your own renderers and new ways of designing the UI. For a starting point
> you can include the swt rippon toolbar which you can find at
> http://hexapixel.com/projects/ribbon
Re: How do i define and use my own renderer? [message #506168 is a reply to message #505894] Wed, 06 January 2010 07:44 Go to previous messageGo to next message
Eclipse UserFriend
Thanks for your help.

Jens Keller
Re: How do i define and use my own renderer? [message #506174 is a reply to message #506168] Wed, 06 January 2010 07:52 Go to previous messageGo to next message
Eclipse UserFriend
BTW there are (not up-to-date) renderer implementations available from
my personal repository [1].

Tom

[1] https://svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/

Am 06.01.10 13:44, schrieb Jens Keller:
> Thanks for your help.
>
> Jens Keller
Re: How do i define and use my own renderer? [message #506398 is a reply to message #506174] Thu, 07 January 2010 06:51 Go to previous messageGo to next message
Eclipse UserFriend
Thanks for your example-renderers. I also used the nice swt-ribbon by Emil Crumhorn as a basis for my first renderer.

Jens Keller
Re: How do i define and use my own renderer? [message #566985 is a reply to message #503172] Tue, 05 January 2010 09:12 Go to previous messageGo to next message
Eclipse UserFriend
I have created a bug and make some modification to change the default value
of curFactoryId for subclasses:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=298848

Best regards
Yves YANG
"Jens Keller" <mai00bfi@googlemail.com> wrote in message
news:hft3f9$k0h$1@build.eclipse.org...
>I found a way. I'm sure that in future versions of e4 it will be a bit
>easier to do this but this feature looks very promising. So first you need
>the following:
>
> - Eclipse 3.6M3
> - e4M2 as target platform
>
> from the cvs (both 20091126-1500):
> - org.eclipse.e4.ui.workbench.renderers.swt
> - org.eclipse.e4.ui.workbench.swt
>
> Add both plugins to your runtime config.
>
> - org.eclipse.e4.ui.workbench.swt.factories.IRendererFactory
> - org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer
> - org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine
>
> First you need a renderer.You can define one for every element type in the
> workbench model. For this you extend the SWTPartRenderer. You can use a
> default renderer in org.eclipse.e4.ui.workbench.renderers.swt as a
> blueprint (maybe just change the CTabFolder in the StackRenderer). To
> define which renderer should be used you must implement a
> IRendererFactory. Again you can use the default one in
> org.eclipse.e4.workbench.ui.renderers.swt as blueprint. To define which
> IRendererFactory Eclipse should use you must implement the
> org.eclipse.e4.workbench.rendererfactory extension point. This ext. point
> is not fully implemented yet so you don't get a context menu to help you.
> After you added the ext.point got to the xml-view and complete the
> definition as following (which i only guessed ad the moment):
>
> <extension
> id="sample.rendererfactory"
> point="org.eclipse.e4.workbench.rendererfactory">
> <rendererfactory
> id="sample.rendererfactory"
> name="SampleRendererFactory"
> class="de.sample.renderer.SampleWorkbenchRendererFactory">
> </rendererfactory>
> </extension>
>
> The last step is to make sure Eclipse uses your IRendererFactory. Go to
> org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine (in the cvs
> plugin) and comment the code in line 186 & 187 (at the moment this code
> makes sure that no other renderer is used than the default one):
>
> if (!curFactoryId.equals(id))
> continue;
>
> Now you should be able to explore the future possibilities of implementing
> your own renderers and new ways of designing the UI. For a starting point
> you can include the swt rippon toolbar which you can find at
> http://hexapixel.com/projects/ribbon
Re: How do i define and use my own renderer? [message #567122 is a reply to message #505894] Wed, 06 January 2010 07:44 Go to previous messageGo to next message
Eclipse UserFriend
Thanks for your help.

Jens Keller
Re: How do i define and use my own renderer? [message #567146 is a reply to message #567122] Wed, 06 January 2010 07:52 Go to previous messageGo to next message
Eclipse UserFriend
BTW there are (not up-to-date) renderer implementations available from
my personal repository [1].

Tom

[1] https://svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/

Am 06.01.10 13:44, schrieb Jens Keller:
> Thanks for your help.
>
> Jens Keller
Re: How do i define and use my own renderer? [message #567239 is a reply to message #506174] Thu, 07 January 2010 06:51 Go to previous messageGo to next message
Eclipse UserFriend
Thanks for your example-renderers. I also used the nice swt-ribbon by Emil Crumhorn as a basis for my first renderer.

Jens Keller
Re: How do i define and use my own renderer? [message #842609 is a reply to message #506174] Thu, 12 April 2012 09:04 Go to previous messageGo to next message
Eclipse UserFriend
hi tom,
could you please provide credentials for your svn repository

thanks
Re: How do i define and use my own renderer? [message #842615 is a reply to message #842609] Thu, 12 April 2012 09:08 Go to previous messageGo to next message
Eclipse UserFriend
I'm missing the context a bit from your post because you didn't quote
the original post.

Tom

Am 12.04.12 15:05, schrieb ishara gunathilake:
> hi tom,
> could you please provide credentials for your svn repository
>
> thanks
Re: How do i define and use my own renderer? [message #842631 is a reply to message #842615] Thu, 12 April 2012 09:28 Go to previous messageGo to next message
Eclipse UserFriend
Quote:
BTW there are (not up-to-date) renderer implementations available from
my personal repository [1].

Tom


[1] svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/


this is the original post.I just want credentials for above repository to try out custom renderer.

thanks.
Re: How do i define and use my own renderer? [message #842639 is a reply to message #842615] Thu, 12 April 2012 09:28 Go to previous messageGo to next message
Eclipse UserFriend
Quote:
> BTW there are (not up-to-date) renderer implementations available from
> my personal repository [1].
>
> Tom


[1] svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/


this is the original post.I just want credentials for above repository to try out custom renderer.

thanks.
Re: How do i define and use my own renderer? [message #842664 is a reply to message #842639] Thu, 12 April 2012 09:58 Go to previous messageGo to next message
Eclipse UserFriend
What do you mean with credentials? The repo is available publicly
https://svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/

and the header state that the code is provided under EPL so I really
don't get what you mean.

Please also note that this code is fairly old and you should start with
an implementation from the current codebase and replace stuff.

Tom

Am 12.04.12 15:28, schrieb ishara gunathilake:
> Quote:
>> BTW there are (not up-to-date) renderer implementations available from
>> my personal repository [1].
>>
>> Tom
>
>
> [1] svn.tomsondev.com/svn/ufacekit/desktop/org.ufacekit. ui.e4.renderer/
>
>
> this is the original post.I just want credentials for above repository
> to try out custom renderer.
>
> thanks.
Re: How do i define and use my own renderer? [message #847937 is a reply to message #842664] Tue, 17 April 2012 16:04 Go to previous messageGo to next message
Eclipse UserFriend
My Eclipse 4 Renderer tutorial might also help.
Re: How do i define and use my own renderer? [message #1298843 is a reply to message #847937] Wed, 16 April 2014 10:46 Go to previous messageGo to next message
Eclipse UserFriend
Hi Lars,

I tried to follow your tutorial for registering my own renderer, but it is not called.

Is the extension point "org.eclipse.core.runtime.products" the correct entry point to use just my own StackRender in the eclipse IDE ?

Thanks,
Alain Rapaz
Re: How do i define and use my own renderer? [message #1299952 is a reply to message #1298843] Thu, 17 April 2014 04:13 Go to previous messageGo to next message
Eclipse UserFriend
You need to replace the rendererfactory used.

Tom

On 16.04.14 16:46, Missing name Mising name wrote:
> Hi Lars,
>
> I tried to follow your tutorial for registering my own renderer, but it
> is not called.
>
> Is the extension point "org.eclipse.core.runtime.products" the correct
> entry point to use just my own StackRender in the eclipse IDE ?
>
> Thanks,
> Alain Rapaz
Re: How do i define and use my own renderer? [message #1300323 is a reply to message #1299952] Thu, 17 April 2014 09:48 Go to previous messageGo to next message
Eclipse UserFriend
Thanks Tom,

But what extension point should I use to do that ?
I tried "org.eclipse.e4.workbench.rendererfactory" but it seems not valid anymore...
I use eclipse 4.3.2

Alain Rapaz
Re: How do i define and use my own renderer? [message #1300408 is a reply to message #1300323] Thu, 17 April 2014 10:53 Go to previous messageGo to next message
Eclipse UserFriend
There's not extension point for that but in your use the
property-element of the product-extension point

<property name="rendererFactoryUri" value="bundleclass://.....">

Tom

On 17.04.14 15:48, Missing name Mising name wrote:
> Thanks Tom,
>
> But what extension point should I use to do that ?
> I tried "org.eclipse.e4.workbench.rendererfactory" but it seems not
> valid anymore...
> I use eclipse 4.3.2
>
> Alain Rapaz
Re: How do i define and use my own renderer? [message #1300452 is a reply to message #1300408] Thu, 17 April 2014 11:30 Go to previous messageGo to next message
Eclipse UserFriend
this is what I tried, but my renderer is not used...

<extension
point="org.eclipse.core.runtime.products"
id="wrappedTabs">
<product
application="org.eclipse.e4.ui.workbench.swt.E4Application"
name="wrappedTabs">
<property
name="rendererFactoryUri"
value="bundleclass://WrappedTabs/wrappedTabs.WrappedRendererFactory">
</property>
</product>
</extension>

This is not for an RCP application, I just want to customize the IDE to replace the widget for the editors tabs to show them multiline.

In 3.x of eclipse, I used the "presentation examples" of Lars Vogel (I think) and I would like to implement it on E4.

Alain
Re: How do i define and use my own renderer? [message #1300577 is a reply to message #1300452] Thu, 17 April 2014 13:28 Go to previous messageGo to next message
Eclipse UserFriend
But the IDE is not booted with this product! If you want to customize
the IDE you can use the same key with as a Programm argument:

-os ..... -rendererFactoryUri
bundleclass://WrappedTabs/wrappedTabs.WrappedRendererFactory

Tom

On 17.04.14 17:30, Missing name Mising name wrote:
> this is what I tried, but my renderer is not used...
>
> <extension
> point="org.eclipse.core.runtime.products"
> id="wrappedTabs">
> <product
> application="org.eclipse.e4.ui.workbench.swt.E4Application"
> name="wrappedTabs">
> <property
> name="rendererFactoryUri"
>
> value="bundleclass://WrappedTabs/wrappedTabs.WrappedRendererFactory">
> </property>
> </product>
> </extension>
>
> This is not for an RCP application, I just want to customize the IDE to
> replace the widget for the editors tabs to show them multiline.
>
> In 3.x of eclipse, I used the "presentation examples" of Lars Vogel (I
> think) and I would like to implement it on E4.
>
> Alain
Re: How do i define and use my own renderer? [message #1308637 is a reply to message #1300577] Tue, 22 April 2014 03:13 Go to previous messageGo to next message
Eclipse UserFriend
Hi Tom,

Thanks, it is working with the switch in the command line to start eclipse.
But, I think it should be implemented as an extension point, to be in the philosophy of plug-in to extend the functionality of eclipse.

Alain
Re: How do i define and use my own renderer? [message #1311431 is a reply to message #1308637] Wed, 23 April 2014 16:09 Go to previous message
Eclipse UserFriend
There's a far simpler way if you're over-riding at a very low level;

There's a key CUSTOM_RENDERER_URI...if you add this to any element's 'persistentData' map with the 'value' being the URI of the renderer you want to use....
Previous Topic:Behavior Differences Between @Active and @Named
Next Topic:TextElement foreground color = background color
Goto Forum:
  


Current Time: Tue Jul 08 19:57:47 EDT 2025

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

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

Back to the top