May 30, 2008
While developing Eclipse’s plugins on my Linux RHEL3 (computers are administrated by the company’s IT service) work station I encountered SWT/JFace performances problem. More accurately, I had problems with Table Viewers / Table with a lot of entries. Google quickly told me that in some cases SWT’s performances problems come from the underneath layer : GTK.
Since the GTK version installed on RHEL3 systems is quite old I tried my plugins on a RHEL4 workstation and my performances problem went ago. Nice but I want to solve these problems on MY workstation.
Before asking for a new RHEL4 I decided to have a try on setting up a new GTK version on my workstation. After a long fight and a lot of ./configure - make - make install I successfully installed the last GTK release on my workstation. I am now able to launch Eclipse with this GTK version. I can also easily switch back to the old version just by changing my LD_LIBRARY_PATH.
Moreover, a lot of GTK widget have significant usability improvements … for example I can now browse hidden file when using File -> Open dialog instead of having to open a shell outside Eclipse to get the file path and to copy it in the file browser widget ;o)
No Comments » |
Eclipse Misc |
Permalink
Posted by Manuel
May 30, 2008
I participated yesterday to my first Eclipse Webinar about Memory Analyzer. It was really instructive ;o).
From now I will always keep an eye on the coming webinars in order to attend as much as possible and I recommend every one to jump into these webinars.
Thanks again to presenters.
3 Comments |
Eclipse Misc |
Permalink
Posted by Manuel
May 21, 2008
As discussed in a previous post I created an application with a View allowing multi instances.
An other problem I encountered with multi instances views is about Views persistence between several launches.
When the workbench is closed Eclipse automatically remember each opened view’s position. This way the next time I’ll start my workbench these opened views will be automatically displayed.
In my case this behavior is not the good one since view’s content is not persistent across launches. For example if the user leaves its workbench with 6 opened instances of my view he ‘ll get 6 empty views at next launch …
To solve this problem I just added an IWorkbenchListener closing all the opened instances of my view when the workbench is closing down. Closing a view is done by the IWorkbenchPage.hideView() method.
4 Comments |
Eclipse Misc |
Permalink
Posted by Manuel
May 15, 2008
I didn’t blogged for a while because I am working on a new Eclipse application. This application defines a new View. This view is created with allowMultiple = true.
This view is associated with a given file extension. Each time the user double click on such a file a new instance of the view is created using IWorkbenchPage.showView(primaryId, secondaryId).
I quickly got my multi instances view mechanism functional. The next step was to manage “correctly” the behavior of :
Window -> Show View -> MyMultiInstanceView ???
What happens when the user clicks other there … ???
Launching my app in debug mode told me than my view is created (by Eclipse and not explicitily by my code) in that case with a secondaryId == null. Of course this resulted in a famous NullPointerException ;0)
A first and simple solution is to check the secondaryId and provide an empty view (or a view with a simple message) when this Id is null …
I decided to use an other solution using the “master view” (the one displayed when the user clicks windows -> show view) to display informations about all the other opened views (the ones with a secondaryId != null associated to a file). This view just contains a ListViewer showing all the other opened views. A double click on a given element of that list gives brings the associated view to the top. When a view is closed by the user, the associated entry in the view is removed.
This solution help me to solve the problem of providing the user a way to open a “meaningless view” in its perspective.
Here I had to “search” for something to display in the master view. Since new instances can only be created programatically it could be nice in some cases for plug-ins developers to be able to tell the platform: “don’t create Show View menu entry for this view” …
2 Comments |
Eclipse Misc |
Permalink
Posted by Manuel