[rkward-cvs] SF.net SVN: rkward:[2906] trunk/rkward

tfry at users.sourceforge.net tfry at users.sourceforge.net
Sun Jun 27 12:02:13 UTC 2010


Revision: 2906
          http://rkward.svn.sourceforge.net/rkward/?rev=2906&view=rev
Author:   tfry
Date:     2010-06-27 12:02:13 +0000 (Sun, 27 Jun 2010)

Log Message:
-----------
Rework of save-object chooser: Now allows to specify/select parent objects other than the globalenv.
This is important e.g. for plugins that want to add an object to a data.frame.
<saveobject> in plugins also gains a frame and integrated checkbox, allowing for some simplifications in many plugins.
Small adjustments to many plugins, including using a single standard method to assign to objects in .GlobalEnv. Plugin tests updated accordingly.
TODO: Document the new features / behavior of the <saveobject>-element.

Modified Paths:
--------------
    trunk/rkward/ChangeLog
    trunk/rkward/rkward/core/renvironmentobject.cpp
    trunk/rkward/rkward/core/robject.h
    trunk/rkward/rkward/core/robjectlist.cpp
    trunk/rkward/rkward/misc/rksaveobjectchooser.cpp
    trunk/rkward/rkward/misc/rksaveobjectchooser.h
    trunk/rkward/rkward/plugin/rkpluginsaveobject.cpp
    trunk/rkward/rkward/plugin/rkpluginsaveobject.h
    trunk/rkward/rkward/plugins/00saveload/import/import_csv.js
    trunk/rkward/rkward/plugins/00saveload/import/import_spss.js
    trunk/rkward/rkward/plugins/00saveload/import/import_stata.js
    trunk/rkward/rkward/plugins/00saveload/import/load_data.js
    trunk/rkward/rkward/plugins/00saveload/import/load_data.xml
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.js
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.xml
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.js
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.xml
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.js
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.xml
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.js
    trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.xml
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.js
    trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.xml
    trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.js
    trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.xml
    trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.js
    trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.xml
    trunk/rkward/rkward/plugins/uni1.2/code.js
    trunk/rkward/rkward/plugins/uni1.2/description.xml
    trunk/rkward/rkward/windows/rkwindowcatcher.cpp
    trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_a.rkcommands.R
    trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_b.rkcommands.R
    trunk/rkward/tests/analysis_plugins/RKTestStandard.hp_filter.rkcommands.R
    trunk/rkward/tests/analysis_plugins.R
    trunk/rkward/tests/import_export_plugins/RKTestStandard.import_csv.rkcommands.R
    trunk/rkward/tests/import_export_plugins/RKTestStandard.import_spss.rkcommands.R
    trunk/rkward/tests/import_export_plugins/RKTestStandard.import_stata.rkcommands.R
    trunk/rkward/tests/import_export_plugins/RKTestStandard.load_r_object.rkcommands.R
    trunk/rkward/tests/import_export_plugins.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.2PL_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.3PL_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.GPCM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.GRM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.LLTM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.LPCM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.LRSM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.PCM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.RSM_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.Rasch_parameter_estimation.rkcommands.R
    trunk/rkward/tests/item_response_theory/RKTestStandard.unidimensional.rkcommands.R
    trunk/rkward/tests/item_response_theory.R

Modified: trunk/rkward/ChangeLog
===================================================================
--- trunk/rkward/ChangeLog	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/ChangeLog	2010-06-27 12:02:13 UTC (rev 2906)
@@ -1,5 +1,7 @@
 TODO: Do not use SmartInterface for KDE 4.5 and above
 
+- The save-object selector in plugins now allows to save as part of a data.frame / list		TODO: document plugin-API additions
+- Fixed: On some systems, dev.off() would spawn two new graphics windows.			TODO: write test case
 - Support row names in the data.frame-editor
 - Fixed: When starting with an empty table, RKWard would sometimes claim that this object has been removed
 - Fixed: Would crash when trying to configure toolbars under certain circumstances (workaround for bug in kdelibs)

Modified: trunk/rkward/rkward/core/renvironmentobject.cpp
===================================================================
--- trunk/rkward/rkward/core/renvironmentobject.cpp	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/core/renvironmentobject.cpp	2010-06-27 12:02:13 UTC (rev 2906)
@@ -52,6 +52,7 @@
 QString REnvironmentObject::getFullName () const {
 	RK_TRACE (OBJECTS);
 
+	if (type & GlobalEnv) return name;	// .GlobalEnv
 	if (type & ToplevelEnv) return ("as.environment (\"" + name + "\")");
 	return parent->makeChildName (name, type & Misplaced);
 }

Modified: trunk/rkward/rkward/core/robject.h
===================================================================
--- trunk/rkward/rkward/core/robject.h	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/core/robject.h	2010-06-27 12:02:13 UTC (rev 2906)
@@ -182,6 +182,8 @@
 @param is_canonified the object name may usually have to be canonified. Since this function may be called recursively, canonification may already have occurred on a higher level. In this case the argument is set to true to avoid some duplicate work. When calling from outside always leave the default false.
 @returns a pointer to the object (if found) or 0 if not found */
 	virtual RObject *findObject (const QString &name, bool is_canonified=false) const;
+/** generates a (full) name for a child of this object with the given name. */
+	virtual QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
 protected:
 // why do I need those to compile? I thought they were derived classes!
 	friend class RContainerObject;
@@ -198,8 +200,6 @@
 	QString *classnames;
 	unsigned int num_classes;
 
-/** generates a (full) name for a child of this object with the given name. */
-	virtual QString makeChildName (const QString &short_child_name, bool misplaced=false) const;
 	virtual QString makeChildBaseName (const QString &short_child_name) const;
 
 /** Update object to reflect the structure passed in the new_data argument. If the data is mismatching (i.e. can not be accommodated by this type of object) false is returned (calls canAccommodateStructure () internally). In this case you should delete the object, and create a new one.

Modified: trunk/rkward/rkward/core/robjectlist.cpp
===================================================================
--- trunk/rkward/rkward/core/robjectlist.cpp	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/core/robjectlist.cpp	2010-06-27 12:02:13 UTC (rev 2906)
@@ -221,6 +221,10 @@
 		if (!found) return 0;
 
 		return (found->findObject (remainder, true));
+	} else if (canonified.startsWith (".GlobalEnv$")) {
+		return (getGlobalEnv ()->findObject (canonified.mid (11), true));
+	} else if (canonified == ".GlobalEnv") {
+		return (getGlobalEnv ());
 	}
 
 	// no "::"-qualification given, do normal search in all environments, return first match
@@ -248,6 +252,11 @@
 		
 		found->findObjectsMatching (remainder, current_list, true);
 		return;
+	} else if (canonified.startsWith (".GlobalEnv$")) {
+		getGlobalEnv ()->findObjectsMatching (canonified.mid (11), current_list, true);
+		return;
+	} else if (canonified == ".GlobalEnv") {
+		current_list->insert (canonified, getGlobalEnv());	// but do not return, there will be at least one further match in base
 	}
 
 	// no namespace given. Search all environments for matches

Modified: trunk/rkward/rkward/misc/rksaveobjectchooser.cpp
===================================================================
--- trunk/rkward/rkward/misc/rksaveobjectchooser.cpp	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/misc/rksaveobjectchooser.cpp	2010-06-27 12:02:13 UTC (rev 2906)
@@ -2,7 +2,7 @@
                           rksaveobjectchooser  -  description
                              -------------------
     begin                : Mon Nov 27 2006
-    copyright            : (C) 2006, 2007, 2009 by Thomas Friedrichsmeier
+    copyright            : (C) 2006, 2007, 2009, 2010 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -21,69 +21,163 @@
 #include <qcheckbox.h>
 #include <qlabel.h>
 #include <QVBoxLayout>
+#include <QPushButton>
+#include <QTimer>
 
 #include <klocale.h>
+#include <kdialog.h>
+#include <kvbox.h>
 
 #include "../core/robjectlist.h"
 #include "../core/renvironmentobject.h"
+#include "../misc/rkobjectlistview.h"
 
 #include "../debug.h"
 
-RKSaveObjectChooser::RKSaveObjectChooser (QWidget *parent, const QString &initial, const QString &prompt) : QWidget (parent) {
+RKSaveObjectChooser::RKSaveObjectChooser (QWidget *parent, const QString &initial) : QWidget (parent), RObjectListener (RObjectListener::Other) {
 	RK_TRACE (MISC);
 
-	prev_ok = true;
 	object_exists = false;
+	addNotificationType (RObjectListener::ObjectRemoved);
+	addNotificationType (RObjectListener::ChildAdded);
+	root_object = 0;
+	current_object = 0;
 
 	QVBoxLayout *layout = new QVBoxLayout (this);
 	layout->setContentsMargins (0, 0, 0, 0);
 
-	QLabel *label = new QLabel (prompt.isNull () ? i18n ("Object name to save to") : prompt, this);
-	layout->addWidget (label);
+	QHBoxLayout *hlayout = new QHBoxLayout ();
+	root_label = new QLabel (this);
+	hlayout->addWidget (root_label);
+	hlayout->addStretch ();
+	root_button = new QPushButton (i18n ("Change"), this);
+	connect (root_button, SIGNAL (clicked()), this, SLOT (selectRootObject()));
+	hlayout->addWidget (root_button);
+	layout->addLayout (hlayout);
 
 	name_edit = new QLineEdit (this);
 	name_edit->setText (initial);
-	connect (name_edit, SIGNAL (textChanged (const QString &)), this, SLOT (nameEditChanged (const QString &)));
+	connect (name_edit, SIGNAL (textChanged (const QString &)), this, SLOT (updateState()));
 	layout->addWidget (name_edit);
 
 	overwrite_confirm = new QCheckBox (this);
-	connect (overwrite_confirm, SIGNAL (stateChanged (int)), this, SLOT (overwriteConfirmChanged (int)));
+	connect (overwrite_confirm, SIGNAL (stateChanged (int)), this, SLOT (updateState()));
 	layout->addWidget (overwrite_confirm);
 
-	nameEditChanged (QString ());	// initialize
+	// initialize
+	setRootObject (0);
 }
 
 RKSaveObjectChooser::~RKSaveObjectChooser () {
 	RK_TRACE (MISC);
+
+	if (current_object) stopListenForObject (current_object);
+	stopListenForObject (root_object);
 }
 
-void RKSaveObjectChooser::setObjectName (const QString &name) {
+void RKSaveObjectChooser::setRootObject (RObject* new_root) {
 	RK_TRACE (MISC);
 
-	name_edit->setText (name);
-	nameEditChanged (name);
+	if (root_object && (new_root == root_object)) {
+		return;
+	}
+
+	if (root_object) stopListenForObject (root_object);
+	if (!new_root) new_root = RObjectList::getGlobalEnv ();
+	else if (!new_root->isInGlobalEnv ()) new_root = RObjectList::getGlobalEnv ();
+	else if (!new_root->isContainer ()) new_root = RObjectList::getGlobalEnv ();
+	root_object = new_root;
+	listenForObject (root_object);
+
+	root_label->setText (i18n ("Parent object: %1", root_object->getShortName ()));
+
+	updateState ();
 }
 
-QString RKSaveObjectChooser::validizedSelectedObjectName () {
+void RKSaveObjectChooser::selectRootObject () {
 	RK_TRACE (MISC);
 
-	return (RObjectList::getGlobalEnv ()->validizeName (name_edit->text (), false));
+	// TODO: not very pretty, yet
+	KDialog *dialog = new KDialog (this);
+	dialog->setButtons (KDialog::Ok|KDialog::Cancel);
+	dialog->setCaption (i18n ("Select parent object"));
+	dialog->setModal (true);
+	KVBox *page = new KVBox (dialog);
+	dialog->setMainWidget (page);
+
+	RKObjectListView* list_view = new RKObjectListView (page);
+	list_view->setSelectionMode (QAbstractItemView::SingleSelection);
+	list_view->setObjectCurrent (root_object);
+	list_view->getSettings ()->setSetting (RKObjectListViewSettings::ShowObjectsAllEnvironments, false);
+	list_view->initialize ();
+	connect (list_view, SIGNAL (doubleClicked (const QModelIndex&)), dialog, SLOT (accept()));
+
+	dialog->exec ();
+
+	if (dialog->result () == QDialog::Accepted) {
+		RObject::ObjectList sel = list_view->selectedObjects ();
+		if (sel.isEmpty ()) setRootObject (0);
+		else {
+			RK_ASSERT (sel.size () == 1);
+			setRootObject (sel[0]);
+		}
+	}
+
+	delete dialog;
 }
 
+void RKSaveObjectChooser::objectRemoved (RObject* removed) {
+	RK_TRACE (MISC);
+
+	if (removed == root_object) {
+		setRootObject (0);
+	} else if (removed == current_object) {
+		stopListenForObject (removed);
+		current_full_name.clear ();	// hack to achieve proper emittance of change signal
+		QTimer::singleShot (0, this, SLOT (updateState()));
+	} else {
+		RK_ASSERT (false);
+	}
+}
+
+void RKSaveObjectChooser::childAdded (int, RObject* parent) {
+	RK_TRACE (MISC);
+
+	if (parent == root_object) {
+		updateState ();
+	} else {
+		// unusual, but ok
+		RK_ASSERT (parent == current_object);
+	}
+}
+
+void RKSaveObjectChooser::setBaseName (const QString &name) {
+	RK_TRACE (MISC);
+
+	name_edit->setText (name);
+	updateState ();
+}
+
 bool RKSaveObjectChooser::isOk () const {
 	RK_TRACE (MISC);
 
-	return ((!object_exists) || (overwrite_confirm->isChecked ()));
+	if (name_edit->text ().isEmpty ()) return false;
+	return ((!object_exists) || overwrite_confirm->isChecked ());
 }
 
-void RKSaveObjectChooser::nameEditChanged (const QString &) {
+void RKSaveObjectChooser::updateState () {
 	RK_TRACE (MISC);
+	RK_ASSERT (root_object && root_object->isContainer ());
 
-	RObject *object = RObjectList::getGlobalEnv ()->findObject (validizedSelectedObjectName ());
-	if (object) {
+	QString new_name = static_cast<RContainerObject*> (root_object)->validizeName (name_edit->text (), false);
+	if (current_object) stopListenForObject (current_object);
+	current_object = root_object->findObject (new_name);
+	new_name = root_object->makeChildName (new_name);	// make it the full name
+	if (current_object) {
 		object_exists = true;
 		overwrite_confirm->setText (i18n ("Overwrite? (The given object name already exists)"));
 		overwrite_confirm->setEnabled (true);
+		listenForObject (current_object);
 	} else {
 		object_exists = false;
 		overwrite_confirm->setText (i18n ("Overwrite?"));
@@ -91,19 +185,12 @@
 		overwrite_confirm->setChecked (false);
 	}
 
-	if (isOk () != prev_ok) {
-		prev_ok = isOk ();
-		emit (okStatusChanged (isOk ()));
+	if ((new_name != current_full_name) || (sender () == overwrite_confirm)) {
+		current_full_name = new_name;
+		emit (changed (isOk ()));
 	}
-	emit (changed ());
 }
 
-void RKSaveObjectChooser::overwriteConfirmChanged (int) {
-	RK_TRACE (MISC);
-
-	nameEditChanged (QString ());
-}
-
 void RKSaveObjectChooser::setBackgroundColor (const QColor &color) {
 	RK_TRACE (MISC);
 
@@ -112,4 +199,8 @@
 	name_edit->setPalette (palette);
 }
 
+QString RKSaveObjectChooser::currentBaseName () const {
+	return name_edit->text ();
+}
+
 #include "rksaveobjectchooser.moc"

Modified: trunk/rkward/rkward/misc/rksaveobjectchooser.h
===================================================================
--- trunk/rkward/rkward/misc/rksaveobjectchooser.h	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/misc/rksaveobjectchooser.h	2010-06-27 12:02:13 UTC (rev 2906)
@@ -19,33 +19,46 @@
 #define RKSAVEOBJECTCHOOSER_H
 
 #include <qwidget.h>
+#include "../core/rkmodificationtracker.h"
 
 class QLineEdit;
 class QCheckBox;
+class QPushButton;
+class QLabel;
 
 /** Simple helper widget to select an R symbol name to write something to. */
-class RKSaveObjectChooser : public QWidget {
+class RKSaveObjectChooser : public QWidget, public RObjectListener {
 	Q_OBJECT
 public:
-	RKSaveObjectChooser (QWidget *parent, const QString &initial, const QString &prompt = QString::null);
+	RKSaveObjectChooser (QWidget *parent, const QString &initial);
 	~RKSaveObjectChooser ();
 
-	QString validizedSelectedObjectName ();
+	QString currentFullName () const { return current_full_name; };
+	QString currentBaseName () const;
 	bool isOk () const;
-	void setObjectName (const QString &name);
+	void setBaseName (const QString &name);
 	void setBackgroundColor (const QColor &color);
-public slots:
-	void nameEditChanged (const QString &);
-	void overwriteConfirmChanged (int);
+	RObject* rootObject () const { return root_object; };
+	void setRootObject (RObject* new_root);
+private slots:
+	void updateState ();
+	void selectRootObject ();
 signals:
-	void okStatusChanged (bool);
-	void changed ();
+	void changed (bool);
+protected:
+	void objectRemoved (RObject* removed);
+	void childAdded (int index, RObject* parent);
 private:
 	bool object_exists;
-	bool prev_ok;
 
+	RObject *current_object;
+	RObject *root_object;
+	QLabel *root_label;
+	QPushButton *root_button;
 	QLineEdit *name_edit;
 	QCheckBox *overwrite_confirm;
+
+	QString current_full_name;
 };
 
 #endif

Modified: trunk/rkward/rkward/plugin/rkpluginsaveobject.cpp
===================================================================
--- trunk/rkward/rkward/plugin/rkpluginsaveobject.cpp	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugin/rkpluginsaveobject.cpp	2010-06-27 12:02:13 UTC (rev 2906)
@@ -2,7 +2,7 @@
                           rkpluginsaveobject  -  description
                              -------------------
     begin                : Tue Jan 30 2007
-    copyright            : (C) 2007 by Thomas Friedrichsmeier
+    copyright            : (C) 2007, 2010 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -18,6 +18,7 @@
 #include "rkpluginsaveobject.h"
 
 #include <QVBoxLayout>
+#include <QGroupBox>
 
 #include <klocale.h>
 
@@ -29,55 +30,92 @@
 RKPluginSaveObject::RKPluginSaveObject (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget) : RKComponent (parent_component, parent_widget) {
 	RK_TRACE (PLUGIN);
 
-	// get xml-helper
+	// read settings
 	XMLHelper *xml = XMLHelper::getStaticHelper ();
 
-	// create and add property
-	addChild ("selection", selection = new RKComponentPropertyBase (this, xml->getBoolAttribute (element, "required", true, DL_INFO)));
-	connect (selection, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (selectionChanged (RKComponentPropertyBase *)));
+	bool checkable = xml->getBoolAttribute (element, "checkable", false, DL_INFO);
+	bool checked = xml->getBoolAttribute (element, "checked", false, DL_INFO);
+	bool required = xml->getBoolAttribute (element, "required", true, DL_INFO);
+	QString label = xml->getStringAttribute (element, "label", i18n ("Save to:"), DL_INFO);
+	QString initial = xml->getStringAttribute (element, "initial", i18n ("my.data"), DL_INFO);
 
+	// create and add properties
+	addChild ("selection", selection = new RKComponentPropertyBase (this, required));
+	connect (selection, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (externalChange ()));
+	selection->setInternal (true);	// the two separate properties "parent" and "objectname" are used for (re-)storing.
+	addChild ("parent", parent = new RKComponentPropertyRObjects (this, false));
+	connect (parent, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (externalChange ()));
+	addChild ("objectname", objectname = new RKComponentPropertyBase (this, false));
+	connect (objectname, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (externalChange ()));
+	addChild ("active", active = new RKComponentPropertyBool (this, false, false, "1", "0"));
+	connect (active, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (externalChange ()));
+	if (!checkable) active->setInternal (true);
+
+	// create GUI
+	groupbox = new QGroupBox (label, this);
+	groupbox->setCheckable (checkable);
+	if (checkable) groupbox->setChecked (checked);
+	connect (groupbox, SIGNAL (toggled(bool)), this, SLOT (internalChange ()));
+
+	selector = new RKSaveObjectChooser (groupbox, initial);
+	connect (selector, SIGNAL (changed (bool)), SLOT (internalChange ()));
+
 	QVBoxLayout *vbox = new QVBoxLayout (this);
 	vbox->setContentsMargins (0, 0, 0, 0);
 
-	selector = new RKSaveObjectChooser (this, xml->getStringAttribute (element, "initial", i18n ("my.data"), DL_INFO), xml->getStringAttribute (element, "label", i18n ("Save to:"), DL_INFO));
-	connect (selector, SIGNAL (changed ()), SLOT (selectionChanged ()));
-	connect (selector, SIGNAL (okStatusChanged (bool)), SLOT (selectionChanged (bool)));
+	QVBoxLayout *vbox_b = new QVBoxLayout (groupbox);
+	vbox_b->setContentsMargins (0, 0, 0, 0);
+	vbox_b->addWidget (selector);
 
-	vbox->addWidget (selector);
+	vbox->addWidget (groupbox);
 
 	// initialize
+	setRequired (required);
 	updating = false;
-	selectionChanged ();
+	internalChange ();
 }
 
 RKPluginSaveObject::~RKPluginSaveObject () {
 	RK_TRACE (PLUGIN);
 }
 
-void RKPluginSaveObject::selectionChanged (RKComponentPropertyBase *) {
+void RKPluginSaveObject::update () {
 	RK_TRACE (PLUGIN);
 
-	if (updating) return;
-	updating = true;
-
-	selector->setObjectName (selection->value ());
-
-	updating = false;
 	if (isSatisfied ()) selector->setBackgroundColor (QColor (255, 255, 255));
 	else selector->setBackgroundColor (QColor (255, 0, 0));
 	changed ();
 }
 
-void RKPluginSaveObject::selectionChanged () {
+void RKPluginSaveObject::externalChange () {
 	RK_TRACE (PLUGIN);
 
-	selection->setValue (selector->validizedSelectedObjectName ());
+	if (updating) return;
+
+	// NOTE: the selection-property is read-only!
+	selector->setBaseName (objectname->value ());
+	selector->setRootObject (parent->objectValue ());
+	if (groupbox->isCheckable ()) {
+		groupbox->setChecked (active->boolValue ());
+	}
+
+	// call internalChange, now, in case one or more setings could not be applied
+	internalChange ();
 }
 
-void RKPluginSaveObject::selectionChanged (bool) {
+void RKPluginSaveObject::internalChange () {
 	RK_TRACE (PLUGIN);
 
-	selectionChanged ();
+	if (updating) return;
+	updating = true;
+
+	selection->setValue (selector->currentFullName ());
+	objectname->setValue (selector->currentBaseName ());
+	parent->setObjectValue (selector->rootObject ());
+	active->setBoolValue ((!groupbox->isCheckable()) || groupbox->isChecked());
+
+	updating = false;
+	update ();
 }
 
 bool RKPluginSaveObject::isValid () {
@@ -86,4 +124,10 @@
 	return (RKComponent::isValid () && selector->isOk ());
 }
 
+QString RKPluginSaveObject::value (const QString& modifier) {
+//	RK_TRACE (PLUGIN);
+
+	return (selection->value (modifier));
+}
+
 #include "rkpluginsaveobject.moc"

Modified: trunk/rkward/rkward/plugin/rkpluginsaveobject.h
===================================================================
--- trunk/rkward/rkward/plugin/rkpluginsaveobject.h	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugin/rkpluginsaveobject.h	2010-06-27 12:02:13 UTC (rev 2906)
@@ -2,7 +2,7 @@
                           rkpluginsaveobject  -  description
                              -------------------
     begin                : Tue Jan 30 2007
-    copyright            : (C) 2007 by Thomas Friedrichsmeier
+    copyright            : (C) 2007, 2010 by Thomas Friedrichsmeier
     email                : tfry at users.sourceforge.net
  ***************************************************************************/
 
@@ -24,6 +24,7 @@
 
 class RKSaveObjectChooser;
 class QDomElement;
+class QGroupBox;
 
 /** RKComponent to select an R object name to save something to
 
@@ -36,17 +37,23 @@
 	RKPluginSaveObject (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget);
 	~RKPluginSaveObject ();
 
-	RKComponentPropertyBase *selection;
-	QString value (const QString &modifier) { return (selection->value (modifier)); };
+	QString value (const QString &modifier);
 	int type () { return ComponentSaveObject; };
 	bool isValid ();
 public slots:
-	void selectionChanged ();
-	void selectionChanged (bool);
-	void selectionChanged (RKComponentPropertyBase *);
+	void externalChange ();
+	void internalChange ();
 private:
 	RKSaveObjectChooser *selector;
+	void update ();
 	bool updating;
+
+	QGroupBox* groupbox;
+
+	RKComponentPropertyBase *selection;
+	RKComponentPropertyBase *objectname;
+	RKComponentPropertyRObjects *parent;
+	RKComponentPropertyBool *active;
 };
 
 #endif

Modified: trunk/rkward/rkward/plugins/00saveload/import/import_csv.js
===================================================================
--- trunk/rkward/rkward/plugins/00saveload/import/import_csv.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/00saveload/import/import_csv.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -16,7 +16,7 @@
 		tableOptions = "";
 	}
 // Other method is to use read.table and show all the options - more transparent
-	echo ('imported <<- read.' + quick + ' (file="' + getValue("file") + '"' + tableOptions + ', '); // doing row names (what a pity...)
+	echo ('imported <- read.' + quick + ' (file="' + getValue("file") + '"' + tableOptions + ', '); // doing row names (what a pity...)
 	if (getValue("rowname")!="NULL") {
 		echo ("row.names = ");
 		if (getValue("rowname")=="rowcol") echo (getValue("nomrow") + ",");
@@ -30,14 +30,14 @@
 	echo (' na.strings = "' + getValue("na") + '", nrows = ' + getValue("nrows") + ', skip = ' + getValue("skip") + ', check.names = ' + getValue("checkname") + ', strip.white = ' + getValue("stripwhite") + ', blank.lines.skip = ' + getValue("blanklinesskip") + getValue("allow_escapes") + getValue("flush") + getValue("strings_as_factors") + ')\n');
 	echo ('\n');
 	echo ('# copy from the local environment to globalenv()\n');
-	echo ('assign("' + getValue("name") + '", imported, envir=globalenv())\n');
+	echo ('.GlobalEnv$' + getValue("name") + ' <- imported\n');
 	if (getValue ("doedit")) {
 		echo ('\n');
-		echo ('rk.edit (' + getValue ("name") + ')\n');
+		echo ('rk.edit (.GlobalEnv$' + getValue ("name") + ')\n');
 	}
 }
 
 function printout () {
-	makeHeaderCode ("Import text / csv data", new Array("File" ,  getValue ("file"), "Import as" ,  getValue ("name")));
+	makeHeaderCode ("Import text / csv data", new Array("File" ,  getValue ("file"), "Import as", getValue ("name")));
 }
 

Modified: trunk/rkward/rkward/plugins/00saveload/import/import_spss.js
===================================================================
--- trunk/rkward/rkward/plugins/00saveload/import/import_spss.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/00saveload/import/import_spss.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -59,13 +59,13 @@
 		echo ('}\n');
 	}
 	echo ('\n');
-	echo (object + ' <<- data		# assign to globalenv()\n');
+	echo ('.GlobalEnv$' + object + ' <- data		# assign to globalenv()\n');
 	if (getValue ("doedit") && data_frame) {
-		echo ('rk.edit (' + object + ')\n');
+		echo ('rk.edit (.GlobalEnv$' + object + ')\n');
 	}
 }
 
 function printout () {
-	makeHeaderCode ("Import SPSS data", new Array("File",  getValue ("file"), "Import as",  getValue ("saveto")));
+	makeHeaderCode ("Import SPSS data", new Array("File",  getValue ("file"), "Import as", getValue ("saveto")));
 }
 

Modified: trunk/rkward/rkward/plugins/00saveload/import/import_stata.js
===================================================================
--- trunk/rkward/rkward/plugins/00saveload/import/import_stata.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/00saveload/import/import_stata.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -44,9 +44,9 @@
 	echo ('        }\n');
 	echo ('}\n');
 	echo ('\n');
-	echo (object + ' <<- data		# assign to globalenv()\n');
+	echo ('.GlobalEnv$' + object + ' <- data		# assign to globalenv()\n');
 	if (getValue ("doedit") ) {
-		echo ('rk.edit (' + object + ')\n');
+		echo ('rk.edit (.GlobalEnv$' + object + ')\n');
 	}
 }
 

Modified: trunk/rkward/rkward/plugins/00saveload/import/load_data.js
===================================================================
--- trunk/rkward/rkward/plugins/00saveload/import/load_data.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/00saveload/import/load_data.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -3,15 +3,15 @@
 
 function calculate () {
 	var other_env = false;
-	if (getValue ("other_env")) {
+	if (getValue ("envir.active")) {
 		other_env = true;
-		envir = getValue ("envir");
+		envir = ".GlobalEnv$" + getValue ("envir");
 	} else {
 		envir = "globalenv()";
 	}
 
 	if (other_env) {
-		echo ('assign ("' + envir + ', new.env (parent=globalenv()), envir=globalenv())\n');
+		echo (envir + ' <- new.env (parent=globalenv())\n');
 	}
 	echo ('load (file="' + getValue("file") + '", envir=' + envir + ')\n');
 }

Modified: trunk/rkward/rkward/plugins/00saveload/import/load_data.xml
===================================================================
--- trunk/rkward/rkward/plugins/00saveload/import/load_data.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/00saveload/import/load_data.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -3,17 +3,13 @@
 	<code file="load_data.js"/>
 	<help file="load_data.rkh"/>
 	<logic>
-		<convert id="use_globalenv" mode="equals" sources="other_env.state" standard="0"/>
-		<connect client="globalenv_warning.visible" governor="use_globalenv"/>
-
-		<connect client="envir.enabled" governor="other_env.state"/>
-		<connect client="otherenv_warning.visible" governor="other_env.state"/>
+		<connect client="globalenv_warning.visible" governor="envir.active.not"/>
+		<connect client="otherenv_warning.visible" governor="envir.active"/>
 	</logic>
 	<dialog label="Load an R data file">
 		<browser size="small" id="file" label="R data file to load" filter="*.RData" />
 		<text id="globalenv_warning" type="warning">WARNING: This may overwrite existing objects in .GlobalEnv. Be sure to save your workspace, first.</text>
-		<checkbox id="other_env" label="Save to specified environment" value="1" value_unchecked="0"/>
-		<saveobject id="envir" label="Environment to save to" initial="my.env"/>
+		<saveobject id="envir" label="Save to environment" initial="my.env" checkable="true"/>
 		<text id="otherenv_warning" type="warning">WARNING: If the environment already exists, all objects inside it will be lost.</text>
 	</dialog>
 </document>

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -47,7 +47,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("2PL parameter estimation")\n');
@@ -59,6 +59,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.2pl\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.2pl\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_2pl.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -8,9 +8,6 @@
 
     <connect client="startval_mtx.enabled" governor="sv_matrix" />
     <connect client="startval_mtx.required" governor="sv_matrix" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Two parameter logistic model">
@@ -21,10 +18,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.2pl"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.2pl"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -53,7 +53,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save = getValue("chk_save");
+	var save = getValue("save_name.active");
 	var save_name = getValue("save_name");
 
 	echo ('rk.header ("3PL parameter estimation")\n');
@@ -65,6 +65,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.3pl\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.3pl\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_3pl.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -10,9 +10,6 @@
     <connect client="optimeth.enabled" governor="optim_used" />
     <connect client="startval_mtx.enabled" governor="sv_matrix" />
     <connect client="startval_mtx.required" governor="sv_matrix" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Birnbaum three parameter model">
@@ -23,10 +20,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.3pl"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.3pl"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -28,7 +28,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save = getValue("chk_save");
+	var save = getValue("save_name.active");
 	var save_name = getValue("save_name");
 
 	echo ('rk.header ("LLTM  parameter estimation")\n');
@@ -41,6 +41,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.lltm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.lltm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_lltm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -14,9 +14,6 @@
     <connect client="design_mtx.required" governor="design_matrix" />
     <connect client="etastart_vec.enabled" governor="eta_vector" />
     <connect client="etastart_vec.required" governor="eta_vector" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Linear logistic test model">
@@ -33,10 +30,7 @@
               <option label="Compute group contrasts" value="contrasts" />
             </radio>
             <varslot type="numeric" id="group_vec" source="vars" label="Use this group vector:"/>
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.lltm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.lltm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -42,7 +42,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save      = getValue("chk_save");
+	var save      = getValue("save_name.active");
 	var save_name = getValue("save_name");
 	var irtparam  = getValue("irtparam");
 
@@ -55,6 +55,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.rasch\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.rasch\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/dichotomous/par_est_rasch.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -8,9 +8,6 @@
 
     <connect client="startval_mtx.enabled" governor="sv_matrix" />
     <connect client="startval_mtx.required" governor="sv_matrix" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Rasch model">
@@ -21,10 +18,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.rasch"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.rasch"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -62,7 +62,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save = getValue("chk_save");
+	var save = getValue("save_name.active");
 	var save_name = getValue("save_name");
 
 	echo ('rk.header ("GPCM parameter estimation")\n');
@@ -74,6 +74,6 @@
 // check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.gpcm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.gpcm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_gpcm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,9 +12,6 @@
     <connect client="optimeth.enabled" governor="optim_used" />
     <connect client="startval_lst.enabled" governor="sv_matrix" />
     <connect client="startval_lst.required" governor="sv_matrix" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Generalized partial credit model">
@@ -29,10 +26,7 @@
 	      <varslot type="numeric" id="inp_items" source="vars" multi="true" min_vars="2" label="List of items:" />
             </frame>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.gpcm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.gpcm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -47,7 +47,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("GRM parameter estimation")\n');
@@ -59,6 +59,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.grm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.grm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_grm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -8,9 +8,6 @@
 
     <connect client="startval_lst.enabled" governor="sv_matrix" />
     <connect client="startval_lst.required" governor="sv_matrix" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Graded response model">
@@ -21,10 +18,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.grm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.grm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -28,7 +28,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("LPCM  parameter estimation")\n');
@@ -41,6 +41,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.lpcm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.lpcm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lpcm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -14,9 +14,6 @@
     <connect client="design_mtx.required" governor="design_matrix" />
     <connect client="etastart_vec.enabled" governor="eta_vector" />
     <connect client="etastart_vec.required" governor="eta_vector" />
-
-    <connect client="save_name.enabled"  governor="chk_save.state" />
-    <connect client="save_name.required" governor="chk_save.state" />
   </logic>
 
   <dialog label="IRT parameter estimation: Linear partial credit model">
@@ -33,10 +30,7 @@
               <option label="Compute group contrasts" value="contrasts" />
             </radio>
             <varslot type="numeric" id="group_vec" source="vars" label="Use this group vector:"/>
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.lpcm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.lpcm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -28,7 +28,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("LRSM  parameter estimation")\n');
@@ -41,6 +41,6 @@
 // check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.lrsm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.lrsm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_lrsm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -33,10 +33,7 @@
               <option label="Compute group contrasts" value="contrasts" />
             </radio>
             <varslot type="numeric" id="group_vec" source="vars" label="Use this group vector:"/>
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.lrsm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.lrsm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -23,7 +23,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("PCM  parameter estimation")\n');
@@ -36,6 +36,6 @@
 // check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.pcm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.pcm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_pcm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -24,10 +24,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.pcm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.pcm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -23,7 +23,7 @@
 
 function printout () {
 	// check whether parameter estimations should be kept in the global enviroment
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("RSM  parameter estimation")\n');
@@ -36,6 +36,6 @@
 // check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- estimates.rsm\n');
+		echo ('.GlobalEnv$' + save_name + ' <- estimates.rsm\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/polytomous/par_est_rsm.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -24,10 +24,7 @@
           <column>
             <varslot type="numeric" id="x" classes="data.frame matrix" source="vars" required="true" label="Matrix of manifest variables:"/>
             <stretch />
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="estimates.rsm"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="estimates.rsm"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -14,7 +14,7 @@
 }
 
 function printout () {
-	var save         = getValue("chk_save");
+	var save         = getValue("save_name.active");
 	var save_name    = getValue("save_name");
 
 	echo ('rk.header ("Unidimensionality check (' + getValue("x") + ')")\n');
@@ -22,6 +22,6 @@
 	// check if results are to be saved:
 	if (save && save_name) {
 		echo ('# keep results in current workspace\n');
-		echo (save_name + ' <<- unidim.res\n');
+		echo ('.GlobalEnv$' + save_name + ' <- unidim.res\n');
 	}
 }

Modified: trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/irt/tests/ltm_unidimensional.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -20,10 +20,7 @@
             <frame id="frame_options" label="Monte Carlo options">
               <spinbox id="spin_samples" label="Number of samples:" type="integer" initial="100" min="1" size="small" />
             </frame>
-	    <frame id="frame_save">
-	      <checkbox id="chk_save" label="Keep results in current workspace" value="save" checked="true"/>
-	      <saveobject id="save_name" initial="unidim.res"/>
-	    </frame>
+            <saveobject id="save_name" checkable="true" checked="true" label="Save results in workspace" initial="unidim.res"/>
           </column>
         </row>
       </tab>

Modified: trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.js
===================================================================
--- trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -7,7 +7,7 @@
 	}
 
 	echo ('rk.header ("Hodrick-Prescott Filter", parameters=list("Lambda", ' +  lambda + '))\n');
-	echo ('x <- get("' + getValue("x") + '", envir=globalenv())\n');
+	echo ('x <- ' + getValue("x") + '\n');
 	echo ('lambda <- ' +  lambda + "\n");
 	echo ('\n');
 	echo ('if (any (is.na (x))) stop ("Missing values cannot be handled")\n');
@@ -19,11 +19,11 @@
 	echo ('	trend <- ts(trend,start(x),frequency=frequency(x))\n');
 	echo ('	cycle <- ts(cycle,start(x),frequency=frequency(x))\n');
 	echo ('}\n');
-	if (getValue("create_trend") == 1) {
-		echo ('assign("' + getValue("trend_name") + '", trend, envir=globalenv())\n');
+	if (getValue("trend_name.active")) {
+		echo ('.GlobalEnv$' + getValue("trend_name") + ' <- trend\n');
 	}
-	if (getValue("create_cycle") == 1) {
-		echo ('assign("' + getValue("cycle_name") + '", cycle, envir=globalenv())\n');
+	if (getValue("cycle_name.active")) {
+		echo ('.GlobalEnv$' + getValue("cycle_name") + ' <- cycle\n');
 	}
 
 	var upcol = "";
@@ -39,20 +39,20 @@
 
 	var uplty = "";
 	if (getValue("series_lty") != "" & getValue("trend_lty") != "") {
-		uplty = ", lty=c(\"" + getValue("series_lty") + "\", \"" + getValue("trend_lty") + "\")";
+		uplty = ", lty=c(" + quote (getValue("series_lty")) + ", " + quote (getValue("trend_lty")) + ")";
 	} else if (getValue("series_lty") != "") {
-		uplty = ", lty=c(\"" + getValue("series_lty") + "\", \"solid\")";
+		uplty = ", lty=c(" + quote (getValue("series_lty")) + ", \"solid\")";
 	} else if (getValue("trend_lty") != "") {
-		uplty = ", lty=c(\"solid\", \"" + getValue("trend_lty") + "\")";
+		uplty = ", lty=c(\"solid\", " + quote (getValue("trend_lty")) + ")";
 	} else {
 		uplty = "";
 	}
 
 	var uplab = "";
 	if (getValue("uplab.text") == "") {
-		uplab = "\"" + getValue("x") + ", Trend\"";
+		uplab = quote (getValue("x") + ", Trend");
 	} else if (getValue("uplabisquote") == 1) {
-		uplab = "\"" + getValue("uplab") + "\"";
+		uplab = quote (getValue("uplab"));
 	} else {
 		uplab = getValue("uplab");
 	}
@@ -69,7 +69,7 @@
 		if (getValue("downlab.text") == "") {
 			downlab = "\"Cycle\"";
 		} else if (getValue("downlabisquote") == 1) {
-			downlab = "\"" + getValue("downlab") + "\"";
+			downlab = quote (getValue("downlab"));
 		} else {
 			downlab = getValue("downlab");
 		}

Modified: trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.xml
===================================================================
--- trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/analysis/time_series/hp_filter.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -5,10 +5,6 @@
 	<logic>
 		<connect client="lambda.enabled" governor="custom.state.not"/>
 		<connect client="clambda.enabled" governor="custom.state"/>
-		<connect client="trend_name.enabled" governor="create_trend.state"/>
-		<connect client="trend_name.required" governor="trend_name.enabled"/>
-		<connect client="cycle_name.enabled" governor="create_cycle.state"/>
-		<connect client="cycle_name.required" governor="cycle_name.enabled"/>
 		<connect client="cycle_frame.enabled" governor="plot_cycle.state"/>
 		<connect client="cycle_col.color.enabled" governor="plot_cycle.state"/>
 		<connect client="downlab.enabled" governor="plot_cycle.state"/>
@@ -48,14 +44,8 @@
 						</row>
 						<row>
 							<frame label="Output series" id="output_frame">
-								<row>
-									<checkbox id="create_trend" label="Trend" value="1" value_unchecked="0" checked="true"/>
-									<saveobject id="trend_name" initial="hptrend"/>
-								</row>
-								<row>
-									<checkbox id="create_cycle" label="Cycle" value="1" value_unchecked="0"/>
-									<saveobject id="cycle_name" initial="hpcycle"/>
-								</row>
+								<saveobject id="trend_name" label="Save trend" checkable="true" checked="true" initial="hptrend"/>
+								<saveobject id="cycle_name" label="Save cycle" checkable="true" initial="hpcycle"/>
 							</frame>
 						</row>
 					</column>

Modified: trunk/rkward/rkward/plugins/uni1.2/code.js
===================================================================
--- trunk/rkward/rkward/plugins/uni1.2/code.js	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/uni1.2/code.js	2010-06-27 12:02:13 UTC (rev 2906)
@@ -78,9 +78,9 @@
 	}
 	echo ('}\n');
 	echo ('\n');
-	if (getValue ("result") == "1") {
+	if (getValue ("saveas.active")) {
 		echo ('# store results\n');
-		echo ('\'' + getValue ("nom") + '\' <- results\n');
+		echo ('.GlobalEnv$' + getValue ("saveas") + ' <- results\n');
 	}
 }
 

Modified: trunk/rkward/rkward/plugins/uni1.2/description.xml
===================================================================
--- trunk/rkward/rkward/plugins/uni1.2/description.xml	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/plugins/uni1.2/description.xml	2010-06-27 12:02:13 UTC (rev 2906)
@@ -17,7 +17,6 @@
 
 		<connect client="tol.enabled" governor="huber.state" />
 		<connect client="initmu.enabled" governor="huber.state" />
-		<connect client="nom.enabled" governor="result.state" />
 	</logic>
 	<dialog label="Basic statistics" >
 		<tabbook>
@@ -110,8 +109,7 @@
 			</tab>
 			<tab id="option" label="Options" >
 				<checkbox value_unchecked="0" checked="true" value="1" id="narm" label="Omit missing values" />
-				<checkbox checked="false" value="1" id="result" label="Store results" />
-				<saveobject intial="rk.univariate" id="nom" label="Name of the result" />
+				<saveobject intial="rk.univariate" id="saveas" checkable="true" label="Store results" />
 				<stretch/>
 			</tab>
 		</tabbook>

Modified: trunk/rkward/rkward/windows/rkwindowcatcher.cpp
===================================================================
--- trunk/rkward/rkward/windows/rkwindowcatcher.cpp	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/rkward/windows/rkwindowcatcher.cpp	2010-06-27 12:02:13 UTC (rev 2906)
@@ -330,8 +330,9 @@
 	KVBox *page = new KVBox (dialog);
 	dialog->setMainWidget (page);
 
-	RKSaveObjectChooser *chooser = new RKSaveObjectChooser (page, "my.plot", i18n ("Specify the R object name, you want to save the graph to"));
-	connect (chooser, SIGNAL (okStatusChanged (bool)), dialog, SLOT (enableButtonOk (bool)));
+	new QLabel (i18n ("Specify the R object name, you want to save the graph to"), page);
+	RKSaveObjectChooser *chooser = new RKSaveObjectChooser (page, "my.plot");
+	connect (chooser, SIGNAL (changed (bool)), dialog, SLOT (enableButtonOk (bool)));
 	if (!chooser->isOk ()) dialog->enableButtonOk (false);
 
 	dialog->exec ();
@@ -339,9 +340,9 @@
 	if (dialog->result () == QDialog::Accepted) {
 		RK_ASSERT (chooser->isOk ());
 
-		QString name = chooser->validizedSelectedObjectName ();
+		QString name = chooser->currentFullName ();
 
-		RKGlobals::rInterface ()->issueCommand ("dev.set (" + QString::number (device_number) + ")\n" + RObject::rQuote (name) + " <- recordPlot ()", RCommand::App | RCommand::ObjectListUpdate, i18n ("Save contents of graphics device number %1 to object '%2'", device_number, name), error_dialog);
+		RKGlobals::rInterface ()->issueCommand ("dev.set (" + QString::number (device_number) + ")\n" + name + " <- recordPlot ()", RCommand::App | RCommand::ObjectListUpdate, i18n ("Save contents of graphics device number %1 to object '%2'", device_number, name), error_dialog);
 	}
 
 	delete dialog;

Modified: trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_a.rkcommands.R
===================================================================
--- trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_a.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_a.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -34,7 +34,7 @@
 }
 
 # store results
-'my.data' <- results
+.GlobalEnv$my.data <- results
 ## Print result
 rk.header ("Univariate statistics", parameters=list (
 "Remove Missing values", TRUE, "Trimmed value for trimmed mean", "0.05"
@@ -48,5 +48,5 @@
 
 rk.results (results)
 })
-.rk.rerun.plugin.link(plugin="rkward::basic_statistics", settings="autre.real=6.00\nconstMad.real=1.4628\ncustomMu.state=1\ncustomS.state=1\nhuber.state=1\ninitmu.string=median\nirq.state=1\nlength.state=1\nmad.state=1\nmaximum.state=1\nmean.state=1\nmedian.state=1\nminimum.state=1\nmu.text=3\nnarm.state=1\nnbmaximum.real=0.00\nnbminimum.real=0.00\nnom.selection=my.data\npourcent.real=0.05\nquartile.state=1\nresult.state=1\ns.text=\nsd.state=1\ntol.real=0.07\ntrim.state=1\nvari.state=1\nwinsor.real=1.50\nz.available=women[[\\\"weight\\\"]]\\ntest50x", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::basic_statistics", settings="autre.real=6.00\nconstMad.real=1.4628\ncustomMu.state=1\ncustomS.state=1\nhuber.state=1\ninitmu.string=median\nirq.state=1\nlength.state=1\nmad.state=1\nmaximum.state=1\nmean.state=1\nmedian.state=1\nminimum.state=1\nmu.text=3\nnarm.state=1\nnbmaximum.real=0.00\nnbminimum.real=0.00\npourcent.real=0.05\nquartile.state=1\ns.text=\nsaveas.active=1\nsaveas.objectname=my.data\nsaveas.parent=.GlobalEnv\nsd.state=1\ntol.real=0.07\ntrim.state=1\nvari.state=1\nwinsor.real=1.50\nz.available=women[[\\\"weight\\\"]]\\ntest50x", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_b.rkcommands.R
===================================================================
--- trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_b.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/analysis_plugins/RKTestStandard.basic_statistics_b.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -24,5 +24,5 @@
 
 rk.results (results)
 })
-.rk.rerun.plugin.link(plugin="rkward::basic_statistics", settings="autre.real=0.00\nhuber.state=\nirq.state=0\nlength.state=0\nmad.state=\nmaximum.state=0\nmean.state=0\nmedian.state=0\nminimum.state=0\nnarm.state=1\nnbmaximum.real=3.00\nnbminimum.real=2.00\nquartile.state=0\nresult.state=\nsd.state=0\ntrim.state=\nvari.state=0\nz.available=test10x\\nwomen[[\\\"height\\\"]]", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::basic_statistics", settings="autre.real=0.00\nhuber.state=\nirq.state=0\nlength.state=0\nmad.state=\nmaximum.state=0\nmean.state=0\nmedian.state=0\nminimum.state=0\nnarm.state=1\nnbmaximum.real=3.00\nnbminimum.real=2.00\nquartile.state=0\nsaveas.active=0\nsaveas.objectname=my.data\nsaveas.parent=.GlobalEnv\nsd.state=0\ntrim.state=\nvari.state=0\nz.available=test10x\\nwomen[[\\\"height\\\"]]", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/analysis_plugins/RKTestStandard.hp_filter.rkcommands.R
===================================================================
--- trunk/rkward/tests/analysis_plugins/RKTestStandard.hp_filter.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/analysis_plugins/RKTestStandard.hp_filter.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -3,7 +3,7 @@
 ## Compute
 ## Print result
 rk.header ("Hodrick-Prescott Filter", parameters=list("Lambda", 1600))
-x <- get("co2", envir=globalenv())
+x <- co2
 lambda <- 1600
 
 if (any (is.na (x))) stop ("Missing values cannot be handled")
@@ -15,8 +15,8 @@
 	trend <- ts(trend,start(x),frequency=frequency(x))
 	cycle <- ts(cycle,start(x),frequency=frequency(x))
 }
-assign("hptrend", trend, envir=globalenv())
-assign("hpcycle", cycle, envir=globalenv())
+.GlobalEnv$hptrend <- trend
+.GlobalEnv$hpcycle <- cycle
 rk.graph.on ()
 try({
 	par(mfrow=c(2,1),mar=c(2,4,2,2)+0.1)
@@ -25,5 +25,5 @@
 })
 rk.graph.off ()
 })
-.rk.rerun.plugin.link(plugin="rkward::hp_filter", settings="create_cycle.state=1\ncreate_trend.state=1\ncustom.state=0\ncycle_col.color.string=green4\ncycle_lty.string=\ncycle_lwd.real=1.00\ncycle_name.selection=hpcycle\ndownlab.text=\nlambda.string=1600\nplot_cycle.state=1\nseries_col.color.string=blue\nseries_lty.string=\nseries_lwd.real=1.00\ntrend_col.color.string=red\ntrend_lty.string=\ntrend_lwd.real=1.00\ntrend_name.selection=hptrend\nuplab.text=\nx.available=co2", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::hp_filter", settings="custom.state=0\ncycle_col.color.string=green4\ncycle_lty.string=\ncycle_lwd.real=1.00\ncycle_name.active=1\ncycle_name.objectname=hpcycle\ncycle_name.parent=.GlobalEnv\ndownlab.text=\nlambda.string=1600\nplot_cycle.state=1\nseries_col.color.string=blue\nseries_lty.string=\nseries_lwd.real=1.00\ntrend_col.color.string=red\ntrend_lty.string=\ntrend_lwd.real=1.00\ntrend_name.active=1\ntrend_name.objectname=hptrend\ntrend_name.parent=.GlobalEnv\nuplab.text=\nx.available=co2", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/analysis_plugins.R
===================================================================
--- trunk/rkward/tests/analysis_plugins.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/analysis_plugins.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -30,10 +30,10 @@
 	## the tests
 	), tests = list (
 		new ("RKTest", id="basic_statistics_a", call=function () {
-			rk.call.plugin ("rkward::basic_statistics", autre.real="6.00", constMad.real="1.4628", customMu.state="1", customS.state="1", huber.state="1", initmu.string="median", irq.state="1", length.state="1", mad.state="1", maximum.state="1", mean.state="1", median.state="1", minimum.state="1", mu.text="3", narm.state="1", nbmaximum.real="0.00", nbminimum.real="0.00", nom.selection="my.data", pourcent.real="0.05", quartile.state="1", result.state="1", s.text="", sd.state="1", tol.real="0.07", trim.state="1", vari.state="1", winsor.real="1.50", z.available="women[[\"weight\"]]\ntest50x", submit.mode="submit")
+			rk.call.plugin ("rkward::basic_statistics", autre.real="6.00", constMad.real="1.4628", customMu.state="1", customS.state="1", huber.state="1", initmu.string="median", irq.state="1", length.state="1", mad.state="1", maximum.state="1", mean.state="1", median.state="1", minimum.state="1", mu.text="3", narm.state="1", nbmaximum.real="0.00", nbminimum.real="0.00", saveas.active="1", saveas.objectname="my.data", pourcent.real="0.05", quartile.state="1", s.text="", sd.state="1", tol.real="0.07", trim.state="1", vari.state="1", winsor.real="1.50", z.available="women[[\"weight\"]]\ntest50x", submit.mode="submit")
 		}, libraries=c("MASS")),
 		new ("RKTest", id="basic_statistics_b", call=function () {
-			rk.call.plugin ("rkward::basic_statistics", autre.real="0.00", huber.state="", irq.state="0", length.state="0", mad.state="", maximum.state="0", mean.state="0", median.state="0", minimum.state="0", narm.state="1", nbmaximum.real="3.00", nbminimum.real="2.00", quartile.state="0", result.state="", sd.state="0", trim.state="", vari.state="0", z.available="test10x\nwomen[[\"height\"]]", submit.mode="submit")
+			rk.call.plugin ("rkward::basic_statistics", autre.real="0.00", huber.state="", irq.state="0", length.state="0", mad.state="", maximum.state="0", mean.state="0", median.state="0", minimum.state="0", narm.state="1", nbmaximum.real="3.00", nbminimum.real="2.00", quartile.state="0", sd.state="0", trim.state="", vari.state="0", z.available="test10x\nwomen[[\"height\"]]", submit.mode="submit")
 		}),
 		new ("RKTest", id="correlation_matrix", call=function () {		
 			rk.call.plugin ("rkward::corr_matrix", do_p.state="1", method.string="pearson", use.string="pairwise", x.available="test50x\ntest50y\ntest50z", submit.mode="submit")
@@ -137,10 +137,10 @@
 			rk.call.plugin ("rkward::kpss_test", length.state="1", lshort.string="FALSE", narm.state="0", null.string="Trend", x.available="test50x\ntest50y\ntest50z", submit.mode="submit")
 		}, libraries=c("tseries")),
 		new ("RKTest", id="hp_filter", call=function () {
-			data (co2)
+			co2 <- datasets::co2		# another, incompatible co2 dataset exists in package locfit
 			rk.sync.global()
 
-			rk.call.plugin ("rkward::hp_filter", create_cycle.state="1", create_trend.state="1", custom.state="0", cycle_col.color.string="green4", cycle_lty.string="", cycle_lwd.real="1.00", cycle_name.selection="hpcycle", downlab.text="", lambda.string="1600", plot_cycle.state="1", series_col.color.string="blue", series_lty.string="", series_lwd.real="1.00", trend_col.color.string="red", trend_lty.string="", trend_lwd.real="1.00", trend_name.selection="hptrend", uplab.text="", x.available="co2", submit.mode="submit")
+			rk.call.plugin ("rkward::hp_filter", cycle_name.active="1", trend_name.active="1", custom.state="0", cycle_col.color.string="green4", cycle_lty.string="", cycle_lwd.real="1.00", cycle_name.objectname="hpcycle", downlab.text="", lambda.string="1600", plot_cycle.state="1", series_col.color.string="blue", series_lty.string="", series_lwd.real="1.00", trend_col.color.string="red", trend_lty.string="", trend_lwd.real="1.00", trend_name.objectname="hptrend", uplab.text="", x.available="co2", submit.mode="submit")
 
 			rk.print (summary (hptrend))
 			rk.print (summary (hpcycle))

Modified: trunk/rkward/tests/import_export_plugins/RKTestStandard.import_csv.rkcommands.R
===================================================================
--- trunk/rkward/tests/import_export_plugins/RKTestStandard.import_csv.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/import_export_plugins/RKTestStandard.import_csv.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -1,13 +1,13 @@
 local({
 ## Prepare
 ## Compute
-imported <<- read.csv (file="women.csv", row.names = 1, na.strings = "NA", nrows = -1, skip = 0, check.names = TRUE, strip.white = FALSE, blank.lines.skip = TRUE)
+imported <- read.csv (file="women.csv", row.names = 1, na.strings = "NA", nrows = -1, skip = 0, check.names = TRUE, strip.white = FALSE, blank.lines.skip = TRUE)
 
 # copy from the local environment to globalenv()
-assign("women", imported, envir=globalenv())
+.GlobalEnv$women <- imported
 ## Print result
 rk.header("Import text / csv data", parameters=list("File", "women.csv",
 	"Import as", "women"))
 })
-.rk.rerun.plugin.link(plugin="rkward::import_csv", settings="allow_escapes.state=\nblanklinesskip.state=TRUE\ncheckname.state=TRUE\ncolclass.string=\ncolname.string=\ndec.string='.'\ndoedit.state=0\nfile.selection=women.csv\nflush.state=\nisrow.state=true\nna.text=NA\nname.selection=women\nnomrow.text=1\nnrows.text=-1\nquick.string=csv\nquote.string='\\\\\\\"'\nrowname.string=rowcol\nsep.string=','\nskip.text=0\nstrings_as_factors.string=\nstripwhite.state=FALSE", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::import_csv", settings="allow_escapes.state=\nblanklinesskip.state=TRUE\ncheckname.state=TRUE\ncolclass.string=\ncolname.string=\ndec.string='.'\ndoedit.state=0\nfile.selection=women.csv\nflush.state=\nisrow.state=true\nna.text=NA\nname.objectname=women\nname.parent=.GlobalEnv\nnomrow.text=1\nnrows.text=-1\nquick.string=csv\nquote.string='\\\\\\\"'\nrowname.string=rowcol\nsep.string=','\nskip.text=0\nstrings_as_factors.string=\nstripwhite.state=FALSE", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/import_export_plugins/RKTestStandard.import_spss.rkcommands.R
===================================================================
--- trunk/rkward/tests/import_export_plugins/RKTestStandard.import_spss.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/import_export_plugins/RKTestStandard.import_spss.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -15,10 +15,10 @@
 	}
 }
 
-my.spss.data <<- data		# assign to globalenv()
+.GlobalEnv$my.spss.data <- data		# assign to globalenv()
 ## Print result
 rk.header("Import SPSS data", parameters=list("File", "../import_export_plugins_testfile.sav",
 	"Import as", "my.spss.data"))
 })
-.rk.rerun.plugin.link(plugin="rkward::import_spss", settings="convert_var_labels.state=1\ndata_frame.state=1\ndo_locale_conversion.state=0\ndoedit.state=0\nfile.selection=../import_export_plugins_testfile.sav\nlabels_limit.real=1.00\nsaveto.selection=my.spss.data\ntrim_labels.state=0\nuse_labels.state=1", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::import_spss", settings="convert_var_labels.state=1\ndata_frame.state=1\ndo_locale_conversion.state=0\ndoedit.state=0\nfile.selection=../import_export_plugins_testfile.sav\nlabels_limit.real=1.00\nsaveto.objectname=my.spss.data\nsaveto.parent=.GlobalEnv\ntrim_labels.state=0\nuse_labels.state=1", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/import_export_plugins/RKTestStandard.import_stata.rkcommands.R
===================================================================
--- trunk/rkward/tests/import_export_plugins/RKTestStandard.import_stata.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/import_export_plugins/RKTestStandard.import_stata.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -15,10 +15,10 @@
         }
 }
 
-my.stata.data <<- data		# assign to globalenv()
+.GlobalEnv$my.stata.data <- data		# assign to globalenv()
 ## Print result
 rk.header("Import Stata File", parameters=list("File", "../import_export_plugins_testfile.dta",
 	"Imported to", "my.stata.data"))
 })
-.rk.rerun.plugin.link(plugin="rkward::import_stata", settings="convert_dates.state=1\nconvert_factors.state=1\nconvert_underscore.state=0\ndoedit.state=0\nfile.selection=../import_export_plugins_testfile.dta\nmissing_type.state=0\nsaveto.selection=my.stata.data", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::import_stata", settings="convert_dates.state=1\nconvert_factors.state=1\nconvert_underscore.state=0\ndoedit.state=0\nfile.selection=../import_export_plugins_testfile.dta\nmissing_type.state=0\nsaveto.objectname=my.stata.data\nsaveto.parent=.GlobalEnv", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/import_export_plugins/RKTestStandard.load_r_object.rkcommands.R
===================================================================
--- trunk/rkward/tests/import_export_plugins/RKTestStandard.load_r_object.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/import_export_plugins/RKTestStandard.load_r_object.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -6,5 +6,5 @@
 rk.header("Load data", parameters=list("File", "women.RData",
 	"Import to environment", "globalenv()"))
 })
-.rk.rerun.plugin.link(plugin="rkward::load_r_object", settings="file.selection=women.RData\nother_env.state=0", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::load_r_object", settings="envir.active=0\nenvir.objectname=my.env\nenvir.parent=.GlobalEnv\nfile.selection=women.RData", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/import_export_plugins.R
===================================================================
--- trunk/rkward/tests/import_export_plugins.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/import_export_plugins.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -23,12 +23,12 @@
 	## the tests
 	), tests = list (
 		new ("RKTest", id="load_r_object", call=function () {
-			rk.call.plugin ("rkward::load_r_object", file.selection="women.RData", other_env.state="0", submit.mode="submit")
+			rk.call.plugin ("rkward::load_r_object", file.selection="women.RData", envir.active="0", submit.mode="submit")
 
 			stopifnot (all.equal (.GlobalEnv$women, datasets::women))
 		}),
 		new ("RKTest", id="import_csv", call=function () {
-			rk.call.plugin ("rkward::import_csv", allow_escapes.state="", blanklinesskip.state="TRUE", checkname.state="TRUE", colclass.string="", colname.string="", dec.string="'.'", doedit.state="0", file.selection="women.csv", flush.state="", isrow.state="true", na.text="NA", name.selection="women", nrows.text="-1", quick.string="csv", quote.string="'\\\"'", sep.string="','", skip.text="0", strings_as_factors.string="", stripwhite.state="FALSE", rowname.string="rowcol", nomrow.text="1", submit.mode="submit")
+			rk.call.plugin ("rkward::import_csv", allow_escapes.state="", blanklinesskip.state="TRUE", checkname.state="TRUE", colclass.string="", colname.string="", dec.string="'.'", doedit.state="0", file.selection="women.csv", flush.state="", isrow.state="true", na.text="NA", name.objectname="women", nrows.text="-1", quick.string="csv", quote.string="'\\\"'", sep.string="','", skip.text="0", strings_as_factors.string="", stripwhite.state="FALSE", rowname.string="rowcol", nomrow.text="1", submit.mode="submit")
 
 			stopifnot (all.equal (.GlobalEnv$women, datasets::women))
 		}),
@@ -37,7 +37,7 @@
 			rk.sync.global ()
 
 			# this one is expected to fail, as it would overwrite the existing "women" in globalenv()
-			rk.call.plugin ("rkward::import_csv", file.selection="women.csv", name.selection="women", submit.mode="submit")
+			rk.call.plugin ("rkward::import_csv", file.selection="women.csv", name.objectname="women", submit.mode="submit")
 		}, expect_error=TRUE),
 		new ("RKTest", id="setworkdir", call=function () {
 			oldwd <- getwd ()
@@ -51,7 +51,7 @@
 			stopifnot (oldwd == getwd ())
 		}),
 		new ("RKTest", id="import_spss", call=function () {
-			rk.call.plugin ("rkward::import_spss", convert_var_labels.state="1", data_frame.state="1", do_locale_conversion.state="0", doedit.state="0", file.selection="../import_export_plugins_testfile.sav", labels_limit.real="1.00", saveto.selection="my.spss.data", trim_labels.state="0", use_labels.state="1", submit.mode="submit")
+			rk.call.plugin ("rkward::import_spss", convert_var_labels.state="1", data_frame.state="1", do_locale_conversion.state="0", doedit.state="0", file.selection="../import_export_plugins_testfile.sav", labels_limit.real="1.00", saveto.objectname="my.spss.data", trim_labels.state="0", use_labels.state="1", submit.mode="submit")
 
 			# In order to check, whether the import was correct
 			rk.print (my.spss.data)
@@ -61,7 +61,7 @@
 			# variable, yet.
 		}, libraries=c("foreign")),
 		new ("RKTest", id="import_stata", call=function () {
-			rk.call.plugin ("rkward::import_stata", convert_dates.state="1", convert_factors.state="1", convert_underscore.state="0", doedit.state="0", file.selection="../import_export_plugins_testfile.dta", missing_type.state="0", saveto.selection="my.stata.data", submit.mode="submit")
+			rk.call.plugin ("rkward::import_stata", convert_dates.state="1", convert_factors.state="1", convert_underscore.state="0", doedit.state="0", file.selection="../import_export_plugins_testfile.dta", missing_type.state="0", saveto.objectname="my.stata.data", submit.mode="submit")
 
 			# In order to check, whether the import was correct
 			rk.print (my.stata.data)

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.2PL_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.2PL_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.2PL_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -11,7 +11,7 @@
 rk.print (coef(estimates.2pl))
 rk.print (paste("Log-likelihood value at convergence:",round(estimates.2pl$log.Lik, digits=1)))
 # keep results in current workspace
-estimates.2pl <<- estimates.2pl
+.GlobalEnv$estimates.2pl <- estimates.2pl
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_2pl", settings="chk_save.state=save\nconstraint.available=\nghk_2pl.real=15.00\ninteract.state=TRUE\nirtparam.state=TRUE\niterem.real=40.00\niterqn_2pl.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.selection=estimates.2pl\nstartval.string=NULL\nverbose.state=\nx.available=WIRS", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_2pl", settings="constraint.available=\nghk_2pl.real=15.00\ninteract.state=TRUE\nirtparam.state=TRUE\niterem.real=40.00\niterqn_2pl.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.active=1\nsave_name.objectname=estimates.2pl\nsave_name.parent=.GlobalEnv\nstartval.string=NULL\nverbose.state=\nx.available=WIRS", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.3PL_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.3PL_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.3PL_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -11,7 +11,7 @@
 rk.print (coef(estimates.3pl))
 rk.print (paste("Log-likelihood value at convergence:",round(estimates.3pl$log.Lik, digits=1)))
 # keep results in current workspace
-estimates.3pl <<- estimates.3pl
+.GlobalEnv$estimates.3pl <- estimates.3pl
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_3pl", settings="chk_save.state=save\nconstraint.available=\nepshess.real=0.001\nghk_3pl.real=21.00\nirtparam.state=TRUE\niterqn_3pl.real=1000.00\nmaxguess.real=1.00\nnaaction.state=\noptimeth.string=BFGS\noptimizer.string=optim\nsave_name.selection=estimates.3pl\nstartval.string=NULL\ntype.state=\nverbose.state=\nx.available=LSAT", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_3pl", settings="constraint.available=\nepshess.real=0.001\nghk_3pl.real=21.00\nirtparam.state=TRUE\niterqn_3pl.real=1000.00\nmaxguess.real=1.00\nnaaction.state=\noptimeth.string=BFGS\noptimizer.string=optim\nsave_name.active=1\nsave_name.objectname=estimates.3pl\nsave_name.parent=.GlobalEnv\nstartval.string=NULL\ntype.state=\nverbose.state=\nx.available=LSAT", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.GPCM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.GPCM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.GPCM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -11,7 +11,7 @@
 rk.print (coef(estimates.gpcm))
 rk.print (paste("Log-likelihood value at convergence:",round(estimates.gpcm$log.Lik, digits=1)))
 # keep results in current workspace
-estimates.gpcm <<- estimates.gpcm
+.GlobalEnv$estimates.gpcm <- estimates.gpcm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_gpcm", settings="chk_save.state=save\nchk_select.state=select\nconstraint.string=rasch\nepshess.real=0.000001\nghk_gpcm.real=21.00\ninp_items.available=Science[[\\\"Work\\\"]]\\nScience[[\\\"Industry\\\"]]\\nScience[[\\\"Future\\\"]]\\nScience[[\\\"Benefit\\\"]]\nirtparam.state=TRUE\niterqn_gpcm.real=150.00\nnaaction.state=\nnumrderiv.string=fd\noptimeth.string=BFGS\noptimizer.string=optim\nsave_name.selection=estimates.gpcm\nstartval.string=NULL\nverbose.state=\nx.available=Science", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_gpcm", settings="chk_select.state=select\nconstraint.string=rasch\nepshess.real=0.000001\nghk_gpcm.real=21.00\ninp_items.available=Science[[\\\"Work\\\"]]\\nScience[[\\\"Industry\\\"]]\\nScience[[\\\"Future\\\"]]\\nScience[[\\\"Benefit\\\"]]\nirtparam.state=TRUE\niterqn_gpcm.real=150.00\nnaaction.state=\nnumrderiv.string=fd\noptimeth.string=BFGS\noptimizer.string=optim\nsave_name.active=1\nsave_name.objectname=estimates.gpcm\nsave_name.parent=.GlobalEnv\nstartval.string=NULL\nverbose.state=\nx.available=Science", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.GRM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.GRM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.GRM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -11,7 +11,7 @@
 rk.print (coef(estimates.grm))
 rk.print (paste("Log-likelihood value at convergence:",round(estimates.grm$log.Lik, digits=1)))
 # keep results in current workspace
-estimates.grm <<- estimates.grm
+.GlobalEnv$estimates.grm <- estimates.grm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_grm", settings="chk_save.state=save\nconstraint.state=\ndig_abbrv.real=6.00\nghk_grm.real=21.00\nhessian.state=\nirtparam.state=TRUE\niterqn_grm.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.selection=estimates.grm\nstartval.string=NULL\nverbose.state=\nx.available=Environment", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_grm", settings="constraint.state=\ndig_abbrv.real=6.00\nghk_grm.real=21.00\nhessian.state=\nirtparam.state=TRUE\niterqn_grm.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.active=1\nsave_name.objectname=estimates.grm\nsave_name.parent=.GlobalEnv\nstartval.string=NULL\nverbose.state=\nx.available=Environment", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.LLTM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.LLTM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.LLTM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,7 +12,7 @@
 rk.print (paste("Conditional log-likelihood:",round(estimates.lltm$loglik, digits=1),
 "<br />Number of iterations:",estimates.lltm$iter,"<br />Number of parameters:",estimates.lltm$npar))
 # keep results in current workspace
-estimates.lltm <<- estimates.lltm
+.GlobalEnv$estimates.lltm <- estimates.lltm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_lltm", settings="chk_save.state=save\ndesign.string=auto\netastart.string=NULL\ngroups.string=1\nmpoints.real=2.00\nsave_name.selection=estimates.lltm\nstderr.state=se\nsumnull.state=sum0\nx.available=lltmdat1", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_lltm", settings="design.string=auto\netastart.string=NULL\ngroups.string=1\nmpoints.real=2.00\nsave_name.active=1\nsave_name.objectname=estimates.lltm\nsave_name.parent=.GlobalEnv\nstderr.state=se\nsumnull.state=sum0\nx.available=lltmdat1", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.LPCM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.LPCM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.LPCM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,7 +12,7 @@
 rk.print (paste("Conditional log-likelihood:",round(estimates.lpcm$loglik, digits=1),
 "<br />Number of iterations:",estimates.lpcm$iter,"<br />Number of parameters:",estimates.lpcm$npar))
 # keep results in current workspace
-estimates.lpcm <<- estimates.lpcm
+.GlobalEnv$estimates.lpcm <- estimates.lpcm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_lpcm", settings="chk_save.state=save\ndesign.string=auto\netastart.string=NULL\ngroup_vec.available=G\ngroups.string=contrasts\nmpoints.real=2.00\nsave_name.selection=estimates.lpcm\nstderr.state=se\nsumnull.state=sum0\nx.available=lpcmdat", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_lpcm", settings="design.string=auto\netastart.string=NULL\ngroup_vec.available=G\ngroups.string=contrasts\nmpoints.real=2.00\nsave_name.active=1\nsave_name.objectname=estimates.lpcm\nsave_name.parent=.GlobalEnv\nstderr.state=se\nsumnull.state=sum0\nx.available=lpcmdat", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.LRSM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.LRSM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.LRSM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,7 +12,7 @@
 rk.print (paste("Conditional log-likelihood:",round(estimates.lrsm$loglik, digits=1),
 "<br />Number of iterations:",estimates.lrsm$iter,"<br />Number of parameters:",estimates.lrsm$npar))
 # keep results in current workspace
-estimates.lrsm <<- estimates.lrsm
+.GlobalEnv$estimates.lrsm <- estimates.lrsm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_lrsm", settings="chk_save.state=save\ndesign.string=auto\netastart.string=NULL\ngroups.string=1\nmpoints.real=2.00\nsave_name.selection=estimates.lrsm\nstderr.state=\nsumnull.state=\nx.available=lrsmdat", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_lrsm", settings="design.string=auto\netastart.string=NULL\ngroups.string=1\nmpoints.real=2.00\nsave_name.active=1\nsave_name.objectname=estimates.lrsm\nsave_name.parent=.GlobalEnv\nstderr.state=\nsumnull.state=\nx.available=lrsmdat", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.PCM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.PCM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.PCM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,7 +12,7 @@
 rk.print (paste("Conditional log-likelihood:",round(estimates.pcm$loglik, digits=1),
 "<br />Number of iterations:",estimates.pcm$iter,"<br />Number of parameters:",estimates.pcm$npar))
 # keep results in current workspace
-estimates.pcm <<- estimates.pcm
+.GlobalEnv$estimates.pcm <- estimates.pcm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_pcm", settings="chk_save.state=save\ndesign.string=auto\netastart.string=NULL\nsave_name.selection=estimates.pcm\nstderr.state=se\nsumnull.state=sum0\nx.available=pcmdat", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_pcm", settings="design.string=auto\netastart.string=NULL\nsave_name.active=1\nsave_name.objectname=estimates.pcm\nsave_name.parent=.GlobalEnv\nstderr.state=se\nsumnull.state=sum0\nx.available=pcmdat", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.RSM_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.RSM_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.RSM_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -12,7 +12,7 @@
 rk.print (paste("Conditional log-likelihood:",round(estimates.rsm$loglik, digits=1),
 "<br />Number of iterations:",estimates.rsm$iter,"<br />Number of parameters:",estimates.rsm$npar))
 # keep results in current workspace
-estimates.rsm <<- estimates.rsm
+.GlobalEnv$estimates.rsm <- estimates.rsm
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_rsm", settings="chk_save.state=save\ndesign.string=auto\netastart.string=NULL\nsave_name.selection=estimates.rsm\nstderr.state=se\nsumnull.state=sum0\nx.available=rsmdat", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_rsm", settings="design.string=auto\netastart.string=NULL\nsave_name.active=1\nsave_name.objectname=estimates.rsm\nsave_name.parent=.GlobalEnv\nstderr.state=se\nsumnull.state=sum0\nx.available=rsmdat", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.Rasch_parameter_estimation.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.Rasch_parameter_estimation.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.Rasch_parameter_estimation.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -11,7 +11,7 @@
 rk.print (coef(estimates.rasch))
 rk.print (paste("Log-likelihood value at convergence:",round(estimates.rasch$log.Lik, digits=1)))
 # keep results in current workspace
-estimates.rasch <<- estimates.rasch
+.GlobalEnv$estimates.rasch <- estimates.rasch
 })
-.rk.rerun.plugin.link(plugin="rkward::par_est_rasch", settings="chk_save.state=save\nconstraint.available=\nghk_rasch.real=21.00\nirtparam.state=TRUE\niterqn_rasch.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.selection=estimates.rasch\nstartval.string=NULL\nverbose.state=\nx.available=LSAT", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::par_est_rasch", settings="constraint.available=\nghk_rasch.real=21.00\nirtparam.state=TRUE\niterqn_rasch.real=150.00\nnaaction.state=\noptimeth.string=BFGS\nsave_name.active=1\nsave_name.objectname=estimates.rasch\nsave_name.parent=.GlobalEnv\nstartval.string=NULL\nverbose.state=\nx.available=LSAT", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory/RKTestStandard.unidimensional.rkcommands.R
===================================================================
--- trunk/rkward/tests/item_response_theory/RKTestStandard.unidimensional.rkcommands.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory/RKTestStandard.unidimensional.rkcommands.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -7,7 +7,7 @@
 rk.header ("Unidimensionality check (estimates.rasch)")
 rk.print (unidim.res)
 # keep results in current workspace
-unidim.res <<- unidim.res
+.GlobalEnv$unidim.res <- unidim.res
 })
-.rk.rerun.plugin.link(plugin="rkward::ltm_unidimensional", settings="chk_save.state=save\nsave_name.selection=unidim.res\nspin_samples.real=100.00\nx.available=estimates.rasch", label="Run again")
+.rk.rerun.plugin.link(plugin="rkward::ltm_unidimensional", settings="save_name.active=1\nsave_name.objectname=unidim.res\nsave_name.parent=.GlobalEnv\nspin_samples.real=100.00\nx.available=estimates.rasch", label="Run again")
 .rk.make.hr()

Modified: trunk/rkward/tests/item_response_theory.R
===================================================================
--- trunk/rkward/tests/item_response_theory.R	2010-06-27 11:55:37 UTC (rev 2905)
+++ trunk/rkward/tests/item_response_theory.R	2010-06-27 12:02:13 UTC (rev 2906)
@@ -36,43 +36,43 @@
 		## first, let's test all parameter estimations
 		## some parameters are later recycled for fitting tests and plotting
                 new ("RKTest", id="Rasch_parameter_estimation", call=function () {
-                        rk.call.plugin ("rkward::par_est_rasch", chk_save.state="save", constraint.available="", ghk_rasch.real="21.00", irtparam.state="TRUE", iterqn_rasch.real="150.00", naaction.state="", optimeth.string="BFGS", save_name.selection="estimates.rasch", startval.string="NULL", verbose.state="", x.available="LSAT", submit.mode="submit")
+                        rk.call.plugin ("rkward::par_est_rasch", save_name.active="1", constraint.available="", ghk_rasch.real="21.00", irtparam.state="TRUE", iterqn_rasch.real="150.00", naaction.state="", optimeth.string="BFGS", save_name.objectname="estimates.rasch", startval.string="NULL", verbose.state="", x.available="LSAT", submit.mode="submit")
 			estimates$rasch <<- estimates.rasch
                 }),
                 new ("RKTest", id="2PL_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_2pl", chk_save.state="save", constraint.available="", ghk_2pl.real="15.00", interact.state="TRUE", irtparam.state="TRUE", iterem.real="40.00", iterqn_2pl.real="150.00", naaction.state="", optimeth.string="BFGS", startval.string="NULL", verbose.state="", x.available="WIRS", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_2pl", save_name.active="1", constraint.available="", ghk_2pl.real="15.00", interact.state="TRUE", irtparam.state="TRUE", iterem.real="40.00", iterqn_2pl.real="150.00", naaction.state="", optimeth.string="BFGS", startval.string="NULL", verbose.state="", x.available="WIRS", submit.mode="submit")
 			estimates$"2pl" <<- estimates.2pl
                 }),
                 new ("RKTest", id="3PL_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_3pl", chk_save.state="save", constraint.available="", epshess.real="0.001", ghk_3pl.real="21.00", irtparam.state="TRUE", iterqn_3pl.real="1000.00", maxguess.real="1.00", naaction.state="", optimeth.string="BFGS", optimizer.string="optim", startval.string="NULL", type.state="", verbose.state="", x.available="LSAT", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_3pl", save_name.active="1", constraint.available="", epshess.real="0.001", ghk_3pl.real="21.00", irtparam.state="TRUE", iterqn_3pl.real="1000.00", maxguess.real="1.00", naaction.state="", optimeth.string="BFGS", optimizer.string="optim", startval.string="NULL", type.state="", verbose.state="", x.available="LSAT", submit.mode="submit")
 			estimates$"3pl" <<- estimates.3pl
                 }),
                 new ("RKTest", id="LLTM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_lltm", chk_save.state="save", design.string="auto", etastart.string="NULL", groups.string="1", mpoints.real="2.00", stderr.state="se", sumnull.state="sum0", x.available="lltmdat1", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_lltm", save_name.active="1", design.string="auto", etastart.string="NULL", groups.string="1", mpoints.real="2.00", stderr.state="se", sumnull.state="sum0", x.available="lltmdat1", submit.mode="submit")
                 }),
                 new ("RKTest", id="GRM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_grm", chk_save.state="save", constraint.state="", dig_abbrv.real="6.00", ghk_grm.real="21.00", hessian.state="", irtparam.state="TRUE", iterqn_grm.real="150.00", naaction.state="", optimeth.string="BFGS", startval.string="NULL", verbose.state="", x.available="Environment", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_grm", save_name.active="1", constraint.state="", dig_abbrv.real="6.00", ghk_grm.real="21.00", hessian.state="", irtparam.state="TRUE", iterqn_grm.real="150.00", naaction.state="", optimeth.string="BFGS", startval.string="NULL", verbose.state="", x.available="Environment", submit.mode="submit")
 			estimates$grm <<- estimates.grm
                 }),
                 new ("RKTest", id="RSM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_rsm", chk_save.state="save", design.string="auto", etastart.string="NULL", stderr.state="se", sumnull.state="sum0", x.available="rsmdat", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_rsm", save_name.active="1", design.string="auto", etastart.string="NULL", stderr.state="se", sumnull.state="sum0", x.available="rsmdat", submit.mode="submit")
 			estimates$rsm <<- estimates.rsm
                 }),
                 new ("RKTest", id="PCM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_pcm", chk_save.state="save", design.string="auto", etastart.string="NULL", stderr.state="se", sumnull.state="sum0", x.available="pcmdat", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_pcm", save_name.active="1", design.string="auto", etastart.string="NULL", stderr.state="se", sumnull.state="sum0", x.available="pcmdat", submit.mode="submit")
 			estimates$pcm <<- estimates.pcm
                 }),
                 new ("RKTest", id="GPCM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_gpcm", chk_save.state="save", chk_select.state="select", constraint.string="rasch", epshess.real="0.000001", ghk_gpcm.real="21.00", inp_items.available="Science[[\"Work\"]]\nScience[[\"Industry\"]]\nScience[[\"Future\"]]\nScience[[\"Benefit\"]]", irtparam.state="TRUE", iterqn_gpcm.real="150.00", naaction.state="", numrderiv.string="fd", optimeth.string="BFGS", optimizer.string="optim", save_name.selection="estimates.gpcm", startval.string="NULL", verbose.state="", x.available="Science", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_gpcm", save_name.active="1", chk_select.state="select", constraint.string="rasch", epshess.real="0.000001", ghk_gpcm.real="21.00", inp_items.available="Science[[\"Work\"]]\nScience[[\"Industry\"]]\nScience[[\"Future\"]]\nScience[[\"Benefit\"]]", irtparam.state="TRUE", iterqn_gpcm.real="150.00", naaction.state="", numrderiv.string="fd", optimeth.string="BFGS", optimizer.string="optim", save_name.objectname="estimates.gpcm", startval.string="NULL", verbose.state="", x.available="Science", submit.mode="submit")
 			estimates$gpcm <<- estimates.gpcm
                 }),
                 new ("RKTest", id="LRSM_parameter_estimation", call=function () {
-			rk.call.plugin ("rkward::par_est_lrsm", chk_save.state="save", design.string="auto", etastart.string="NULL", groups.string="1", mpoints.real="2.00", stderr.state="", sumnull.state="", x.available="lrsmdat", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_lrsm", save_name.active="1", design.string="auto", etastart.string="NULL", groups.string="1", mpoints.real="2.00", stderr.state="", sumnull.state="", x.available="lrsmdat", submit.mode="submit")
                 }),
                 new ("RKTest", id="LPCM_parameter_estimation", call=function () {
 			G <<- c(rep(1,10),rep(2,10))	# group vector, see example section of help("LPCM")
 			rk.sync.global ()
-			rk.call.plugin ("rkward::par_est_lpcm", chk_save.state="save", design.string="auto", etastart.string="NULL", group_vec.available="G", groups.string="contrasts", mpoints.real="2.00", stderr.state="se", sumnull.state="sum0", x.available="lpcmdat", submit.mode="submit")
+			rk.call.plugin ("rkward::par_est_lpcm", save_name.active="1", design.string="auto", etastart.string="NULL", group_vec.available="G", groups.string="contrasts", mpoints.real="2.00", stderr.state="se", sumnull.state="sum0", x.available="lpcmdat", submit.mode="submit")
                 }),
 
 		## testing cronbach's alpha


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list