Range selection and UNO awt

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Range selection and UNO awt

Pivithuru Wijegunawardana
I have created a simple GUI using UNO awt for statistical data analysis tool
in summer internship program. Now I want to get the user input data from the
spreadsheet from clac range selection. I hope to do this after user has
opened the dialog. Functionality I need is something alike the cell function
data input method. I wanted to know whether this is possible in using UNO
awt and cell range selection.

--
Best regards,
Pivithuru
Reply | Threaded
Open this post in threaded view
|

Re: Range selection and UNO awt

Niklas Nebel-2
On 07/22/10 19:13, Pivithuru Wijegunawardana wrote:
> I have created a simple GUI using UNO awt for statistical data analysis tool
> in summer internship program. Now I want to get the user input data from the
> spreadsheet from clac range selection. I hope to do this after user has
> opened the dialog. Functionality I need is something alike the cell function
> data input method. I wanted to know whether this is possible in using UNO
> awt and cell range selection.

There is the XRangeSelection interface of the SpreadsheetView service,
but it doesn't allow the same level of integration as Calc's own
dialogs. With this interface, you can do something like the "Data Range"
page of the "Chart Wizard" dialog, where you have a button in a modal
dialog and start the range selection if that button is pressed. It
doesn't allow selecting a range in the sheet with just the focus in a
range edit, like it's possible in the Calc dialogs.

Sooner or later we'll have to extend the API here, so extensions can
have dialogs that work like our own. So we shouldn't put much effort
into implementing something with XRangeSelection now. Instead I suggest
to just use simple Edit controls into which the range address has to be
typed, like "Copy sort results to" in the "Sort" dialog. The component
then has to parse that input. If we later extend the API, we can have
the new API read and write from these Edit controls.

One thing you should prepare is the possibility to change your dialogs
to modeless dialogs, because that's how Calc's reference dialogs work. A
modeless dialog doesn't have an execute method that returns when the
dialog is closed. Instead it performs its actions from event handlers,
so you can't keep information in local variables across the execute
call. To simulate this, you can just add a method like "dialogClosed" to
your component, and call it directly after "execute", with no additional
parameters. If that method reads the settings from the dialog and does
the processing, it can later be called from a listener when the dialog
is changed to modeless.

Niklas

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]