Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » How to enable status line in a tabbed property sheet?
How to enable status line in a tabbed property sheet? [message #499829] Tue, 24 November 2009 04:56
Stephan Eberle is currently offline Stephan Eberle
Messages: 35
Registered: July 2009
Member

Sorry for the invalid domain sender id in my previous post - I'm
therefore sending it again, this time with everything correctly
initialized...



Hi,

In my application, I'm using a
org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPa ge for
displaying and modifying the properties of EMF model elements. It has a
single "Advanced" section which extends
org.eclipse.ui.views.properties.tabbed.AdvancedPropertySecti on and
displays the EMF model element properties in a simple table, very much
in the same way as if I used a conventional
org.eclipse.ui.views.properties.PropertySheetPage.

I want to use the status line to output information on the selected
property or error messages when a wrong value is entered for a given
property (e.g. when the property value type is Integer but the user
enters an alphanumerical string). The problem is that this works out of
the box when using a PropertySheetPage but not at all in case of a
TabbedPropertySheetPage.

I've debugged a little bit and found out the following:

The status line is managed by
org.eclipse.ui.views.properties.PropertySheetViewer. When using a
PropertySheetPage, the PropertySheetViewer#statusLineManager field is
initialized via a call to #setStatusLineManager() from
PropertySheetPage#makeContributions(). The latter is indirectly called
from PropertySheetPage#setActionBars(). This means when the
PropertySheetPage is put in place and setActionBars() is called, the
status line manager gets initialized correctly and is available for
outputting information and error messages.

However, when using a TabbedPropertySheetPage, neither
PropertySheetPage#setActionBars() nor
PropertySheetPage#makeContributions() gets invoked. Consequently the
PropertySheetViewer#statusLineManager stays uninitialized and any
attempt at sending content to the status line has not effect.

I've tried to work around the problem by adding an ISelectionListener to
my "Advanced" section, in which I invoked
PropertySheetPage#setActionBars() (via the AdvancedPropertySection#page
field). As a result the status line gets alive but the tool bar
contributions in the master workbench part which the properties view is
connected to get duplicated at each selection change... What would help
here is to have a method PropertySheetPage#setStatusLineManager() such
that the status line manager can be initialized independent of the
IMenuManager and IToolBarManager the master workbench part. I could then
implement a line like this in the ISelectionListener in my "Advanced"
section.

Anyhow, I believe that the fact of having no status line manager when
using TabbedPropertySheetPages instead of PropertySheetPage is a general
problem which maybe should be resolved by underlying Eclipse Platform
code but not at application level. This would simplify life for
application writers and make that the behavior becomes more consistent.

What is your opinion about this? Or is there simply something which I've
completely missed and status line on TabbedPropertySheetPages works out
of the box?
Previous Topic:How to enable status line in a tabbed property sheet?
Next Topic:Programmatically add tabs to a TabbedPropertySheet
Goto Forum:
  


Current Time: Sat Aug 02 02:32:05 EDT 2014

Powered by FUDForum. Page generated in 0.01679 seconds