## GdauiDataSelector GdauiDataSelector — Selecting data in a GdaDataModel |

## Stability Level

Stable, unless otherwise indicated

## Functions

GdaDataModel * | gdaui_data_selector_get_model ()
void | gdaui_data_selector_set_model ()
GArray * | gdaui_data_selector_get_selected_rows ()
GdaDataModelIter * | gdaui_data_selector_get_data_set ()
gboolean | gdaui_data_selector_select_row ()
void | gdaui_data_selector_unselect_row ()
void | gdaui_data_selector_set_column_visible ()

## Signals

void | selection-changed | Run First

## Types and Values

| GdauiDataSelector

## Object Hierarchy

        GInterface
        ╰── GdauiDataSelector

## Prerequisites

GdauiDataSelector requires GObject.

## Known Implementations

GdauiDataSelector is implemented by GdauiCloud, GdauiCombo, GdauiForm, GdauiGrid, GdauiProviderSelector, GdauiRawForm and GdauiRawGrid.

## Includes

    #include <libgda/thread-wrapper/gda-thread-wrapper.h>

## Description

The GdauiDataSelector interface is implemented by widgets which allow the user to select some data from a GdaDataModel. Depending on the actual widget, the selection can be a single row or more than one row.

This interface allows one to set and get the GdaDataModel from which data is to be selected and offers a few other common behaviours.

Please note that any row number in this interface is in reference to the GdaDataModel returned by the `gdaui_data_selector_get_model()` method.

## Functions

### gdaui_data_selector_get_model ()

    GdaDataModel *
    gdaui_data_selector_get_model (GdauiDataSelector *iface);

Queries the GdaDataModel from which the data displayed by the widget implementing `iface` are. Beware that the returned data model may be different than the one used when the widget was created in case it internally uses a GdaDataProxy.

#### Parameters

iface | an object which implements the GdauiDataSelector interface |

#### Returns

the GdaDataModel.

[transfer none]

Since: 4.2

### gdaui_data_selector_set_model ()

    void
    gdaui_data_selector_set_model (GdauiDataSelector *iface,
                                   GdaDataModel *model);

Sets the data model from which the data being displayed are. Also see `gdaui_data_selector_get_model()`

#### Parameters

iface | an object which implements the GdauiDataSelector interface |
model | a GdaDataModel to use |

Since: 4.2

### gdaui_data_selector_get_selected_rows ()

    GArray *
    gdaui_data_selector_get_selected_rows (GdauiDataSelector *iface);

Gat an array of selected rows. If no row is selected, the the returned value is `NULL`.

Please note that rows refers to the "visible" rows at the time it's being called, which may change if the widget implementing this interface uses a GdaDataProxy (as is the case for example for the GdauiRawForm, GdauiForm, GdauiRawGrid and GdauiGrid).

#### Parameters

iface | an object which implements the GdauiDataSelector interface |

#### Returns

an array of gint values, one for each selected row. Use `g_array_free()` when finished (passing `TRUE` as the last argument).

[transfer full][element-type gint]

Since: 4.2

### gdaui_data_selector_get_data_set ()

    GdaDataModelIter *
    gdaui_data_selector_get_data_set (GdauiDataSelector *iface);

Get the GdaDataModelIter object represented the current selected row in `iface` . This function may return either `NULL` or an invalid iterator (see `gda_data_model_iter_is_valid()`) if the selection cannot be represented by a single selected row.

Note that the returned GdaDataModelIter is actually an iterator iterating on the GdaDataModel returned by the `gdaui_data_selector_get_model()` method.

#### Parameters

iface | an object which implements the GdauiDataSelector interface |

#### Returns

a pointer to a GdaDataModelIter object, or `NULL`.

[transfer none]

Since: 4.2

### gdaui_data_selector_select_row ()

    gboolean
    gdaui_data_selector_select_row (GdauiDataSelector *iface,
                                    gint row);

Force the selection of a specific row.

Please note that `row` refers to the "visible" row at the time it's being called, which may change if the widget implementing this interface uses a GdaDataProxy (as is the case for example for the GdauiRawForm, GdauiForm, GdauiRawGrid and GdauiGrid).

#### Parameters

iface | an object which implements the GdauiDataSelector interface |
row | the row to select |

#### Returns

`TRUE` if the row has been selected

Since: 4.2

### gdaui_data_selector_unselect_row ()

    void
    gdaui_data_selector_unselect_row (GdauiDataSelector *iface,
                                      gint row);

Please note that `row` refers to the "visible" row at the time it's being called, which may change if the widget implementing this interface uses a GdaDataProxy (as is the case for example for the GdauiRawForm, GdauiForm, GdauiRawGrid and GdauiGrid).

#### Parameters

iface | an object which implements the GdauiDataSelector interface |
row | the row to unselect |

Since: 4.2

### gdaui_data_selector_set_column_visible ()

    void
    gdaui_data_selector_set_column_visible
                                   (GdauiDataSelector *iface,
                                    gint column,
                                    gboolean visible);

Shows or hides the data at column `column`

#### Parameters

iface | an object which implements the GdauiDataSelector interface |
column | a column number, starting at `0`, or -1 tp apply to all the columns |
visible | required visibility of the data in the `column` column |

Since: 4.2

## Types and Values

### GdauiDataSelector

    typedef struct _GdauiDataSelector GdauiDataSelector;

## Signal Details

### The `“selection-changed”` signal

    void
    user_function (GdauiDataSelector *gdauidataselector,
                   gpointer           user_data)

Flags: Run First