Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] e4-izing the IDE

I'm still figuring out what I want out of this. At the 10,000 foot view, I want to be able to create pure JavaFX Parts that co-exist with SWT Parts running on the SWT JavaFX port. The things I care most about aren't really in the platform. It's PyDev and Appcellerator and JSDT and AndroidDT and CDT (of course) and our BlackBerry and QNX plug-ins and ... We don't have the power to change most of those, which is why we need a good compatibility layer. As I dig, though, we already seem to have a pretty good one.

So, yeah, I guess the question does fall to the editor framework and what I'd need to have to write an editor in JavaFX and have the Workbench open it on a given editor input. And how much of the existing Text stuff do I really want to use, or do we come up with a new framework for JavaFX. And what of JFace. There's some great stuff there I'd like to have when writing to JavaFX. Do we need a JfxFace? (BTW, that's the exciting stuff that would help with community building).

As a learning exercise, I'm trying to get the IDE to use the E4Application as the entry point. I'm not sure if that buys me anything but it does give me a good idea of how what our compatibility layer does. Obviously, the first step is to figure out how to create the legacy Workbench object since the first thing I get are exceptions that it's missing. I'm thinking of using the life cycle manager since I just playing with that for some product stuff. Gets me going at least.

I hope most of you are going to be at EclipseCon. We have a lot to talk about.

Oh, and to be clear, I don't expect this to be product level until Java 9, so we do have a long time to figure this out. But it would be great to have some sort of preview in the Mars timeframe. And for adventurous adopters who don't mind using the Oracle Java 8 JRE like myself, I wouldn't mind trying to build product on it with Mars.

Doug

________________________________________
From: e4-dev-bounces@xxxxxxxxxxx [e4-dev-bounces@xxxxxxxxxxx] on behalf of Tom Schindl [tom.schindl@xxxxxxxxxxxxxxx]
Sent: Wednesday, March 05, 2014 5:10 AM
To: e4-dev@xxxxxxxxxxx
Subject: Re: [e4-dev] e4-izing the IDE

Hi,

You need to ask yourself the question what are the important parts of an
IDE and my answer is:
a) you need a resource browser == Common Navigator
b) you need a text editor framework == Eclipse Text & JFace Text
c) you need a plumbing in between those 2 == IEditorInput

Everything else is provided by the e4 framework (Windows, Menus, Sashes,
Stacks, ...)

As having forked Eclipse Text & JFace Text I can tell you that it's less
work than you might think. The biggest problem for you is to have a
StyledText like control which I've written some time ago and I'm going
to bring over to e(fx)clipse in the Luna timeframe.

The real problem I see with refactoring old plug-ins is that you can NOT
restructure them without breaking the API because most of them make use
of subclassing, so we'd have to fork them and sync the fork when changes
happen in the 3.x version and hopefully the 4.x stream because the default.

The question is how much you want the 4.x version deviate from the 3.x
versions e.g. should the present SWT in their API? I'd say no but you
also don't want to present JavaFX because then downstream projects who
want to make use of it have an run on SWT can't make use of it (if you
keep the API breakage as small as possible it would be fairly easy for
downstream projects to switch to the 4.x version).

Tom

On 03.03.14 22:46, Doug Schaefer wrote:
> Is there anything lower level we should be doing. I can¹t imagine how we¹d
> be successful without a compat layer to support the massive amount of IDE
> plug-ins we have out there. But is there a better way to do it than what
> we have now?
>
> My understanding of the vision of the compat layer was that it simply
> populated the model from the extension points. But it looks like we
> instantiate the legacy UI first and then build the model from that. Or am
> I misinterpreting what I see in the debugger.
>
> Doug.
>
> On 2014-03-03, 4:31 PM, "Tom Schindl" <tom.schindl@xxxxxxxxxxxxxxx> wrote:
>
>> Hi,
>>
>> I think the road to follow is to make core bundles who are needed for
>> IDE compat free.
>>
>> To my mind are coming:
>> * org.eclipse.ui.navigator to get a project explorer
>> * org.eclipse.text & org.eclipse.jface.text to get the main text
>>  editing infrastructure
>>
>> Something happing as part of that is to move the IEditorInput stuff from
>> org.eclipse.ui to a standalone bundle and/or design a completely new
>> story for editors & their input in e4 but I think for the start you
>> should port IEditorInput directly.
>>
>> I've already done most of this when writing
>> http://tomsondev.bestsolution.at/2013/03/11/build-an-intelligent-code-edit
>> or-with-javafx-and-jdt/
>> so I know for sure it is doable!
>>
>> Tom
>>
>> On 03.03.14 21:27, Doug Schaefer wrote:
>>> Hey gang,
>>>
>>> OK, I¹ll state first that I¹m not sure what Œe4-izing the IDE¹ means. So
>>> count me a newbie. Taking the newbie approach, I simply changed the
>>> application for my IDE to E4application and gave it a spin. Of course, I
>>> ended up with an empty window and menu and exceptions when legacy
>>> plug-ins tried to get a hold of the legacy Workbench object.
>>>
>>> Is there a list of things that need to be done in order for this to do
>>> something proper?
>>>
>>> Just to be clear of my intentions, I¹d like to use Tom¹s JavaFX
>>> renderers to render the IDE along with an SWT port to JavaFX for compat
>>> at the widget level. I¹d like to understand what needs to be done to get
>>> there.
>>>
>>> Thanks for any info. And yes, I do have a certain amount of my work time
>>> to contribute to this.
>>> Doug.
>>>
>>>
>>> _______________________________________________
>>> e4-dev mailing list
>>> e4-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/e4-dev
>>>
>>
>> _______________________________________________
>> e4-dev mailing list
>> e4-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/e4-dev
>
> _______________________________________________
> e4-dev mailing list
> e4-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/e4-dev
>

_______________________________________________
e4-dev mailing list
e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/e4-dev


Back to the top