- if ( PSPPIRE_IS_VAR_VIEW (selector->dest))
- psppire_selector_set_select_func (PSPPIRE_SELECTOR (selector),
- insert_source_row_into_tree_view,
- NULL);
- else if (GTK_IS_ENTRY (selector->dest))
+ GObjectClass *class = G_OBJECT_GET_CLASS (selector);
+ GType type = G_OBJECT_TYPE (selector->dest);
+
+ SelectItemsFunc *func =
+ g_hash_table_lookup (PSPPIRE_SELECTOR_CLASS (class)->default_selection_funcs, (gpointer) type);
+
+ if ( func )