+ GtkWidget *box = get_widget_assert (ttd->xml, "dialog-hbox2");
+
+ const gchar *text = gtk_entry_get_text (GTK_ENTRY (ttd->groups_entry));
+
+ const struct variable *v = psppire_dict_lookup_var (ttd->dict, text);
+
+ if ( grps->table2->parent)
+ gtk_container_remove (GTK_CONTAINER (grps->table2->parent), grps->table2);
+
+ if ( grps->table1->parent)
+ gtk_container_remove (GTK_CONTAINER (grps->table1->parent), grps->table1);
+
+
+ if ( var_is_numeric (v))
+ {
+ gtk_table_attach_defaults (GTK_TABLE (grps->table1), grps->table2,
+ 1, 2, 1, 2);
+
+ gtk_container_add (GTK_CONTAINER (box), grps->table1);
+ }
+ else
+ {
+ gtk_container_add (GTK_CONTAINER (box), grps->table2);
+ grps->group_defn = GROUPS_VALUES;
+ }
+
+
+ psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (grps->dialog),
+ define_groups_state_valid, grps);
+
+ if ( grps->group_defn != GROUPS_CUT_POINT )
+ {
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (grps->cut_point_toggle_button), TRUE);
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (grps->values_toggle_button), TRUE);
+
+ gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[0]), grps->val[0]);
+ gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[1]), grps->val[1]);
+
+ gtk_entry_set_text (GTK_ENTRY (grps->cut_point_entry), "");
+ }
+ else
+ {
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (grps->values_toggle_button), TRUE);
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (grps->cut_point_toggle_button), TRUE);
+
+ gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[0]), "");
+ gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[1]), "");
+
+ gtk_entry_set_text (GTK_ENTRY (grps->cut_point_entry), grps->val[0]);
+ }
+
+ g_signal_emit_by_name (grps->grp_entry[0], "changed");
+ g_signal_emit_by_name (grps->grp_entry[1], "changed");
+ g_signal_emit_by_name (grps->cut_point_entry, "changed");
+
+ response = psppire_dialog_run (PSPPIRE_DIALOG (grps->dialog));
+
+ if (response == PSPPIRE_RESPONSE_CONTINUE)
+ {
+ g_free (grps->val[0]);
+ g_free (grps->val[1]);