Implemented the Examine dialog
[pspp-builds.git] / src / ui / gui / data-editor.c
index 1be409be6ccf7a73b7e2141018d1d3745acdafe9..038b9685f7242be8fc26bf052e33f618c6b2bfb4 100644 (file)
@@ -44,7 +44,7 @@
 #include "descriptives-dialog.h"
 #include "crosstabs-dialog.h"
 #include "frequencies-dialog.h"
-#include "text-data-import-dialog.h"
+#include "examine-dialog.h"
 #include "dict-display.h"
 #include "clipboard.h"
 
@@ -722,6 +722,17 @@ new_data_editor (void)
                    G_CALLBACK (crosstabs_dialog), de);
 
 
+  de->invoke_examine_dialog =
+    gtk_action_new ("examine-dialog",
+                   _("_Explore"),
+                   _("Examine Data by Factors"),
+                   "pspp-examine");
+
+  g_signal_connect (de->invoke_examine_dialog, "activate",
+                   G_CALLBACK (examine_dialog), de);
+
+
+
   e->window = GTK_WINDOW (get_widget_assert (de->xml, "data_editor"));
 
   g_signal_connect_swapped (get_widget_assert (de->xml,"file_new_data"),
@@ -787,11 +798,6 @@ new_data_editor (void)
                    G_CALLBACK (open_syntax_window),
                    e->window);
 
-  g_signal_connect_swapped (get_widget_assert (de->xml,"file_import-text"),
-                           "activate",
-                           G_CALLBACK (gtk_action_activate),
-                           de->invoke_text_import_assistant);
-
   g_signal_connect_swapped (get_widget_assert (de->xml,"file_save"),
                            "activate",
                            G_CALLBACK (gtk_action_activate),
@@ -892,6 +898,12 @@ new_data_editor (void)
                            get_widget_assert (de->xml, "analyze_frequencies")
                            );
 
+
+  gtk_action_connect_proxy (de->invoke_examine_dialog,
+                           get_widget_assert (de->xml, "analyze_explore")
+                           );
+
+
   g_signal_connect (get_widget_assert (de->xml,"help_about"),
                    "activate",
                    G_CALLBACK (about_new),
@@ -1517,15 +1529,6 @@ register_data_editor_actions (struct data_editor *de)
 
   g_signal_connect (de->action_data_new, "activate",
                    G_CALLBACK (new_file), de);
-
-  de->invoke_text_import_assistant =
-    gtk_action_new ("file_import-text",
-                   _("_Import Text Data"),
-                   _("Import text data file"),
-                   "");
-
-  g_signal_connect (de->invoke_text_import_assistant, "activate",
-                   G_CALLBACK (text_data_import_assistant), de);
 }
 
 /* Returns true if NAME has a suffix which might denote a PSPP file */
@@ -1783,6 +1786,7 @@ open_data_dialog (GtkAction *action, struct data_editor *de)
 static gint
 update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
 {
+  GtkEntry *datum_entry;
   GladeXML *data_editor_xml = data;
 
   PsppireDataStore *data_store =
@@ -1790,6 +1794,11 @@ update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
 
   g_return_val_if_fail (data_editor_xml, FALSE);
 
+
+  datum_entry =
+    GTK_ENTRY (get_widget_assert (data_editor_xml,
+                                 "datum_entry"));
+
   if (data_store)
     {
       const struct variable *var =
@@ -1799,10 +1808,6 @@ update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
       GtkEntry *cell_ref_entry =
        GTK_ENTRY (get_widget_assert (data_editor_xml,
                                      "cell_ref_entry"));
-      GtkEntry *datum_entry =
-       GTK_ENTRY (get_widget_assert (data_editor_xml,
-                                     "datum_entry"));
-
       if ( var )
        {
          gchar *text = g_strdup_printf ("%d: %s", row + FIRST_CASE_NUMBER,
@@ -1817,14 +1822,17 @@ update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
          g_free (s);
        }
       else
-       gtk_entry_set_text (cell_ref_entry, "");
-
+       goto blank_entry;
 
       if ( var )
        {
          gchar *text =
            psppire_data_store_get_string (data_store, row,
                                           var_get_dict_index(var));
+
+         if ( ! text )
+           goto blank_entry;
+
          g_strchug (text);
 
          gtk_entry_set_text (datum_entry, text);
@@ -1832,10 +1840,16 @@ update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
          free (text);
        }
       else
-       gtk_entry_set_text (datum_entry, "");
+       goto blank_entry;
+
     }
 
   return FALSE;
+
+ blank_entry:
+  gtk_entry_set_text (datum_entry, "");
+
+  return FALSE;
 }