Esempio n. 1
0
  /*
     FLIP /VARIABLES=var_list /NEWNAMES=var_name.
  */
static gchar *
generate_syntax (PsppireDict *dict, GtkBuilder *xml)
{
  const gchar *text;
  GString *string = g_string_new ("FLIP");
  gchar *syntax ;

  GtkWidget *dest = get_widget_assert (xml, "variables-treeview");
  GtkWidget *entry = get_widget_assert (xml, "new-name-entry");

  g_string_append (string, " /VARIABLES = ");

  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (dest), 0, string);

  text = gtk_entry_get_text (GTK_ENTRY (entry));

  if ( text)
    g_string_append_printf (string, " /NEWNAME = %s", text);

  g_string_append (string, ".");

  syntax = string->str;

  g_string_free (string, FALSE);

  return syntax;
}
static char *
generate_syntax (PsppireDialogAction *act)
{
  PsppireDialogActionReliability *rd = PSPPIRE_DIALOG_ACTION_RELIABILITY (act);
  gchar *text;
  GString *string = g_string_new ("RELIABILITY");

  g_string_append (string, "\n\t/VARIABLES=");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variables), 0, string);


  g_string_append (string, "\n\t/MODEL=");

  if ( ALPHA == gtk_combo_box_get_active (GTK_COMBO_BOX (rd->model_combo)))
    g_string_append (string, "ALPHA");
  else
    g_string_append_printf (string, "SPLIT (%d)",
			    gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (rd->split_spinbutton))
			    );

  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->scale_if_item_deleted_checkbutton)))
    g_string_append (string, "\n\t/SUMMARY = TOTAL");

  g_string_append (string, ".\n");

  text = string->str;

  g_string_free (string, FALSE);

  return text;
}
static char *
generate_syntax (PsppireDialogAction *act)
{
  PsppireDialogActionSort *scd = PSPPIRE_DIALOG_ACTION_SORT (act);
  gchar *text;
  GString *string = g_string_new ("SORT CASES BY ");

  PsppireVarView *var_view = PSPPIRE_VAR_VIEW (scd->variables);
  gint n_vars = psppire_var_view_append_names (var_view, 0, string);

  if ( n_vars == 0 )
    {
      g_string_assign (string, "");
    }
  else
    {
      const char up_down =
	(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->ascending))
         ? 'A' : 'D');
      g_string_append_printf (string, "(%c)", up_down);
      g_string_append (string, ".");
    }

  text = string->str;

  g_string_free (string, FALSE);

  return text;
}
Esempio n. 4
0
static void
append_fragment (GString *string, const gchar *dist, PsppireVarView *vv)
{
  g_string_append (string, "\n\t/KOLMOGOROV-SMIRNOV");

  g_string_append (string, " ( ");
  g_string_append (string, dist);
  g_string_append (string, " ) = ");

  psppire_var_view_append_names (vv, 0, string);
}
Esempio n. 5
0
static gchar *
generate_syntax (const struct paired_samples_dialog *d, const struct tt_options_dialog *opt)
{
    gchar *text = NULL;
    GString *str =   g_string_new ("T-TEST \n\tPAIRS = ");

    psppire_var_view_append_names (PSPPIRE_VAR_VIEW (d->pairs_treeview), 0, str);

    g_string_append (str, " WITH ");

    psppire_var_view_append_names (PSPPIRE_VAR_VIEW (d->pairs_treeview), 1, str);

    g_string_append (str, " (PAIRED)");
    g_string_append (str, "\n");

    tt_options_dialog_append_syntax (opt, str);

    g_string_append (str, ".\n");

    text = str->str;
    g_string_free (str, FALSE);

    return text;
}
static char *
generate_syntax (PsppireDialogAction *a)
{
  PsppireDialogActionIndepSamps *act = PSPPIRE_DIALOG_ACTION_INDEP_SAMPS (a);
  gchar *text;

  GString *str = g_string_new ("T-TEST /VARIABLES=");

  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (act->test_vars_tv), 0, str);

  g_string_append (str, "\n\t/GROUPS=");

  g_string_append (str, var_get_name (act->grp_var));

  if (act->group_defn != GROUPS_UNDEF)
    {
      g_string_append (str, "(");

      {
        const union value *val = 
          (act->group_defn == GROUPS_VALUES) ?
          &act->grp_val[0] :
          &act->cut_point;

        struct string strx;        
        ds_init_empty (&strx);
        syntax_gen_value (&strx, val, var_get_width (act->grp_var),
                          var_get_print_format (act->grp_var));
      
        g_string_append (str, ds_cstr (&strx));
        ds_destroy (&strx);
      }

      if (act->group_defn == GROUPS_VALUES)
	{
	  g_string_append (str, ",");

          {
            struct string strx;
            ds_init_empty (&strx);
            
            syntax_gen_value (&strx, &act->grp_val[1], var_get_width (act->grp_var),
                              var_get_print_format (act->grp_var));
            
            g_string_append (str, ds_cstr (&strx));
            ds_destroy (&strx);
          }
	}

      g_string_append (str, ")");
    }

  tt_options_dialog_append_syntax (act->opts, str);

  g_string_append (str, ".\n");

  text = str->str;

  g_string_free (str, FALSE);

  return text;
}
static gchar *
generate_syntax (const struct tt_indep_samples_dialog *d)
{
  struct variable *group_variable;
  gchar *text;

  GtkWidget *tv =
    get_widget_assert (d->xml, "indep-samples-t-test-treeview2");

  GString *str = g_string_new ("T-TEST /VARIABLES=");

  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (tv), 0, str);

  g_string_append (str, "\n\t/GROUPS=");

  group_variable =
    psppire_dict_lookup_var (d->dict,
			     gtk_entry_get_text (GTK_ENTRY (d->groups_entry)));

  g_string_append (str, var_get_name (group_variable));

  if (d->grps->group_defn != GROUPS_UNDEF)
    {
      g_string_append (str, "(");

      if ( var_is_alpha (group_variable))
	{
	  struct string s = DS_EMPTY_INITIALIZER;
	  syntax_gen_string (&s, ss_cstr (d->grps->val[0]));
	  g_string_append (str, ds_cstr (&s));
	  ds_destroy (&s);
	}
      else
	{
	  g_string_append (str, d->grps->val[0]);
	}

      if ( d->grps->group_defn == GROUPS_VALUES )
	{
	  g_string_append (str, ",");

	  if ( var_is_alpha (group_variable))
	    {
	      struct string s = DS_EMPTY_INITIALIZER;
	      syntax_gen_string (&s, ss_cstr (d->grps->val[1]));
	      g_string_append (str, ds_cstr (&s));
	      ds_destroy (&s);
	    }
	  else
	    {
	      g_string_append (str, d->grps->val[1]);
	    }
	}

      g_string_append (str, ")");
    }

  tt_options_dialog_append_syntax (d->opts, str);

  g_string_append (str, ".\n");

  text = str->str;

  g_string_free (str, FALSE);

  return text;
}
static char *
generate_syntax (PsppireDialogAction *a)
{
  PsppireDialogActionCrosstabs *cd = PSPPIRE_DIALOG_ACTION_CROSSTABS (a);
  gchar *text = NULL;
  int i, n;
  guint selected;
  GString *string = g_string_new ("CROSSTABS ");
  gboolean ok;
  GtkTreeIter iter;

  g_string_append (string, "\n\t/TABLES=");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->dest_rows), 0, string);
  g_string_append (string, "\tBY\t");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->dest_cols), 0, string);


  g_string_append (string, "\n\t/FORMAT=");

  if (cd->format_options_avalue)
    g_string_append (string, "AVALUE");
  else 
    g_string_append (string, "DVALUE");
  g_string_append (string, " ");

  if (cd->format_options_table)
    g_string_append (string, "TABLES");
  else
    g_string_append (string, "NOTABLES");
  g_string_append (string, " ");

  if (cd->format_options_pivot)
    g_string_append (string, "PIVOT");
  else 
    g_string_append (string, "NOPIVOT");


  selected = 0;
  for (i = 0, ok = gtk_tree_model_get_iter_first (cd->stat, &iter); ok; 
       i++, ok = gtk_tree_model_iter_next (cd->stat, &iter))
    {
      gboolean toggled;
      gtk_tree_model_get (cd->stat, &iter,
			  CHECKBOX_COLUMN_SELECTED, &toggled, -1); 
      if (toggled) 
	selected |= 1u << i; 
      else 
	selected &= ~(1u << i);
    }

  if (!(selected & (1u << CS_STATS_NONE)))
    {
      if (selected)
	{
	  g_string_append (string, "\n\t/STATISTICS=");
	  n = 0;
	  for (i = 0; i < N_CROSSTABS_STATS; i++)
	    if (selected & (1u << i))
	      {
		if (n++)
		  g_string_append (string, " ");
		g_string_append (string, stats[i].name);
	      }
	}
    }

  selected = 0;
  for (i = 0, ok = gtk_tree_model_get_iter_first (cd->cell, &iter); ok; 
       i++, ok = gtk_tree_model_iter_next (cd->cell, &iter))
    {
      gboolean toggled;
      gtk_tree_model_get (cd->cell, &iter,
			  CHECKBOX_COLUMN_SELECTED, &toggled, -1); 
      if (toggled) 
	selected |= 1u << i; 
      else 
	selected &= ~(1u << i);
    }



  g_string_append (string, "\n\t/CELLS=");
  if (selected & (1u << CS_CELLS_NONE))
    g_string_append (string, "NONE");
  else
    {
      n = 0;
      for (i = 0; i < N_CROSSTABS_CELLS; i++)
	if (selected & (1u << i))
	  {
	    if (n++)
	      g_string_append (string, " ");
	    g_string_append (string, cells[i].name);
	  }
    }

  g_string_append (string, ".\n");

  text = string->str;

  g_string_free (string, FALSE);

  return text;
}
Esempio n. 9
0
static char *
generate_syntax (const struct recode_dialog *rd)
{
  gboolean ok;
  GtkTreeIter iter;
  gchar *text;

  GString *str = g_string_sized_new (100);

  /* Declare new string variables if applicable */
  if ( rd->different &&
       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->string_button)))
    {
      GHashTableIter iter;

      struct variable *var = NULL;
      struct nlp *nlp = NULL;

      g_hash_table_iter_init (&iter, rd->varmap);
      while (g_hash_table_iter_next (&iter, (void**) &var, (void**) &nlp))
	{
	  g_string_append (str, "\nSTRING ");
	  g_string_append (str, nlp->name);
	  g_string_append_printf (str, " (A%d).",
				  (int)
				  gtk_spin_button_get_value (GTK_SPIN_BUTTON (rd->width_entry) )
				  );
	}
    }

  g_string_append (str, "\nRECODE ");

  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, str);

  g_string_append (str, "\n\t");

  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->convert_button)))
    {
      g_string_append (str, "(CONVERT) ");
    }

  for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (rd->value_map),
					   &iter);
       ok;
       ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (rd->value_map), &iter))
    {
      GValue ov_value = {0};
      GValue nv_value = {0};
      struct old_value *ov;
      struct new_value *nv;
      gtk_tree_model_get_value (GTK_TREE_MODEL (rd->value_map), &iter,
				COL_VALUE_OLD, &ov_value);

      gtk_tree_model_get_value (GTK_TREE_MODEL (rd->value_map), &iter,
				COL_VALUE_NEW, &nv_value);

      ov = g_value_get_boxed (&ov_value);
      nv = g_value_get_boxed (&nv_value);

      g_string_append (str, "(");

      old_value_append_syntax (str, ov);
      g_string_append (str, " = ");
      new_value_append_syntax (str, nv);

      g_string_append (str, ") ");
      g_value_unset (&ov_value);
      g_value_unset (&nv_value);
    }


  if ( rd->different )
    {

      GtkTreeIter iter;
      g_string_append (str, "\n\tINTO ");

      for (ok = psppire_var_view_get_iter_first (PSPPIRE_VAR_VIEW (rd->variable_treeview), &iter);
	   ok;
	   ok = psppire_var_view_get_iter_next (PSPPIRE_VAR_VIEW (rd->variable_treeview), &iter))
	  {
	    struct nlp *nlp = NULL;
	    const struct variable *var = psppire_var_view_get_variable (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, &iter);

	    nlp = g_hash_table_lookup (rd->varmap, var);
	    
	    g_string_append (str, nlp->name);
	    g_string_append (str, " ");
	  }
    }

  g_string_append (str, ".");

  /* If applicable, set labels for the new variables. */
  if ( rd->different )
    {
      GHashTableIter iter;

      struct variable *var = NULL;
      struct nlp *nlp = NULL;

      g_hash_table_iter_init (&iter, rd->varmap);
      while (g_hash_table_iter_next (&iter, (void**) &var, (void**) &nlp))
	{
	  if (nlp->label)
	    {
	      struct string sl;
	      ds_init_empty (&sl);
	      syntax_gen_string (&sl, ss_cstr (nlp->label));
	      g_string_append_printf (str, "\nVARIABLE LABELS %s %s.",
				      nlp->name, ds_cstr (&sl));

	      ds_destroy (&sl);
	    }
	}
    }

  g_string_append (str, "\nEXECUTE.\n");


  text = str->str;

  g_string_free (str, FALSE);

  return text;
}
static char *
generate_syntax (PsppireDialogAction *act)
{
  PsppireDialogActionExamine *ed  = PSPPIRE_DIALOG_ACTION_EXAMINE (act);

  const char *label;
  gchar *text = NULL;
  GString *str = g_string_new ("EXAMINE ");

  g_string_append (str, "\n\t/VARIABLES=");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (ed->variables), 0, str);

  if ( 0  < gtk_tree_model_iter_n_children
       (gtk_tree_view_get_model (GTK_TREE_VIEW (ed->factors)), NULL))
    {
      g_string_append (str, "\n\tBY ");
      psppire_var_view_append_names (PSPPIRE_VAR_VIEW (ed->factors), 0, str);
    }

  label = gtk_entry_get_text (GTK_ENTRY (ed->id_var));
  if ( 0 != strcmp (label, "") )
    {
      g_string_append (str, "\n\t/ID = ");
      g_string_append (str, label);
    }

  if ( ed->stats & (STAT_DESCRIPTIVES | STAT_EXTREMES))
    {
      g_string_append (str, "\n\t/STATISTICS =");

      if ( ed->stats & STAT_DESCRIPTIVES)
	g_string_append (str, " DESCRIPTIVES");

      if ( ed->stats & STAT_EXTREMES)
	g_string_append (str, " EXTREME");
    }

  if ( ed->stats & STAT_PERCENTILES)
    g_string_append (str, "\n\t/PERCENTILES");


  g_string_append (str, "\n\t/MISSING=");
  switch (ed->opts)
    {
    case OPT_REPORT:
      g_string_append (str, "REPORT");
      break;
    case OPT_PAIRWISE:
      g_string_append (str, "PAIRWISE");
      break;
    default:
      g_string_append (str, "LISTWISE");
      break;
    };

  g_string_append (str, ".");
  text = str->str;

  g_string_free (str, FALSE);

  return text;
}
Esempio n. 11
0
static char *
generate_syntax (const struct crosstabs_dialog *cd)
{
  gint i;
  int n;
  guint selected;
  GtkTreeIter iter;
  gboolean ok;

  gchar *text;
  GString *string = g_string_new ("CROSSTABS");

  g_string_append (string, "\n\t/TABLES=");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->row_vars), 0, string);
  g_string_append (string, "\tBY\t");
  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->col_vars), 0, string);

  g_string_append (string, "\n\t/FORMAT=");

  if (cd->current_opts.avalue)
    {
      g_string_append (string, "AVALUE");
    }
  else 
    {
      g_string_append (string, "DVALUE");
    }
  g_string_append (string, " ");
  if (cd->current_opts.table)
    g_string_append (string, "TABLES");
  else
    g_string_append (string, "NOTABLES");
  g_string_append (string, " ");

  if (cd->current_opts.pivot)
    g_string_append (string, "PIVOT");
  else 
    g_string_append (string, "NOPIVOT");

  selected = 0;
  for (i = 0, ok = gtk_tree_model_get_iter_first (cd->stat, &iter); ok; 
       i++, ok = gtk_tree_model_iter_next (cd->stat, &iter))
    {
      gboolean toggled;
      gtk_tree_model_get (cd->stat, &iter,
			  CHECKBOX_COLUMN_SELECTED, &toggled, -1); 
      if (toggled) 
	selected |= 1u << i; 
      else 
	selected &= ~(1u << i);
    }

  if (!(selected & (1u << CS_STATS_NONE)))
    {
      if (selected)
	{
	  g_string_append (string, "\n\t/STATISTICS=");
	  n = 0;
	  for (i = 0; i < N_CROSSTABS_STATS; i++)
	    if (selected & (1u << i))
	      {
		if (n++)
		  g_string_append (string, " ");
		g_string_append (string, stats[i].name);
	      }
	}
    }

  selected = 0;
  for (i = 0, ok = gtk_tree_model_get_iter_first (cd->cell, &iter); ok; 
       i++, ok = gtk_tree_model_iter_next (cd->cell, &iter))
    {
      gboolean toggled;
      gtk_tree_model_get (cd->cell, &iter,
			  CHECKBOX_COLUMN_SELECTED, &toggled, -1); 
      if (toggled) 
	selected |= 1u << i; 
      else 
	selected &= ~(1u << i);
    }

  g_string_append (string, "\n\t/CELLS=");
  if (selected & (1u << CS_CELLS_NONE))
    g_string_append (string, "NONE");
  else
    {
      n = 0;
      for (i = 0; i < N_CROSSTABS_CELLS; i++)
	if (selected & (1u << i))
	  {
	    if (n++)
	      g_string_append (string, " ");
	    g_string_append (string, cells[i].name);
	  }
    }
  
  g_string_append (string, ".\n");

  text = string->str;

  g_string_free (string, FALSE);

  return text;
}