Index: src/Actions/Action.cpp
===================================================================
--- src/Actions/Action.cpp	(revision 6e1e107497aecdfcac9e31ef5756edfec6b550c0)
+++ src/Actions/Action.cpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -20,4 +20,5 @@
 #include "Helpers/MemDebug.hpp"
 
+#include <iostream>
 #include <string>
 
@@ -104,2 +105,3 @@
   return true;
 }
+
Index: src/Actions/Action.hpp
===================================================================
--- src/Actions/Action.hpp	(revision 6e1e107497aecdfcac9e31ef5756edfec6b550c0)
+++ src/Actions/Action.hpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -17,4 +17,6 @@
 class ActionSequence;
 class Dialog;
+
+#include "Actions/ActionTraits.hpp"
 
 /**
@@ -294,4 +296,5 @@
  */
 
+
 /**
  * Base class for all actions.
@@ -365,4 +368,6 @@
   virtual const std::string getName();
 
+  ActionTraits Traits;
+
 protected:
   /**
Index: src/Actions/ActionTraits.cpp
===================================================================
--- src/Actions/ActionTraits.cpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
+++ src/Actions/ActionTraits.cpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -0,0 +1,62 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ActionTraits.cpp
+ *
+ *  Created on: Oct 26, 2010
+ *      Author: heber
+ */
+
+#include "Actions/ActionTraits.hpp"
+
+#include <string>
+
+/** Constructor for base class ActionTraits.
+ *
+ */
+ActionTraits::ActionTraits()
+{}
+
+/** Constructor for base class ActionTraits.
+ *
+ */
+ActionTraits::~ActionTraits()
+{}
+
+/** Returns Current Value for this ActionTrait.
+ * \return current value as std::string
+ */
+const std::string ActionTraits::getCurrentValue()
+{
+ return CurrentValue;
+}
+
+/** Returns Description for this ActionTrait.
+ * \return current value as std::string
+ */
+const std::string ActionTraits::getDescription()
+{
+  return Description;
+}
+
+/** Returns ShortForm for this ActionTrait.
+ * \return current value as std::string
+ */
+const std::string ActionTraits::getShortForm()
+{
+  return ShortForm;
+}
+
+/** Returns Type for this ActionTrait.
+ * \return current value as std::type_info reference
+ */
+const std::type_info * ActionTraits::getType()
+{
+  return InternalType;
+}
+
Index: src/Actions/ActionTraits.hpp
===================================================================
--- src/Actions/ActionTraits.hpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
+++ src/Actions/ActionTraits.hpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -0,0 +1,67 @@
+/*
+ * ActionTraits.hpp
+ *
+ *  Created on: Oct 26, 2010
+ *      Author: heber
+ */
+
+#ifndef ACTIONTRAITS_HPP_
+#define ACTIONTRAITS_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+/** Interface for all ActionTraits.
+ * This class defines the interface, i.e. the common set of information that
+ * is stored in this traits for Action classes. It also defines a set of getter
+ * functions.
+ *
+ * Note that there are no setters. This is because the information is to be
+ * given in a specialized form of the templated class ActionTrait that derives
+ * from this interface.
+ *
+ */
+class ActionTraits {
+public:
+  /* TODO: This internal reference is only needed as long as information is not
+   * yet local. Here it is used to gather info from MapOfActions.
+   */
+  explicit ActionTraits();
+  virtual ~ActionTraits();
+
+  const std::string getCurrentValue();
+  const std::string getDescription();
+  const std::string getShortForm();
+  const std::type_info * getType();
+
+protected:
+
+  // internal information this trait contains
+  std::string CurrentValue;
+  std::string Description;
+  std::string ShortForm;
+  const std::type_info *InternalType;
+};
+
+/* Templated class for ActionTraits to specialize.
+ * I.e. every action specializes its own ActionTrait and inherits the
+ * ActionTraits class as interface , e.g. Action called SuperAction:
+
+ * ActionTrait<SuperAction> : public ActionTraits
+ *
+ * within the constructor of said ActionTrait<SuperAction> the specific
+ * information for this derived Action class is then given.
+ */
+template <class T>
+class ActionTrait : public ActionTraits {
+public:
+  ActionTrait();
+  ~ActionTrait();
+};
+
+
+#endif /* ACTIONTRAITS_HPP_ */
Index: src/Actions/Action_impl_header.hpp
===================================================================
--- src/Actions/Action_impl_header.hpp	(revision 6e1e107497aecdfcac9e31ef5756edfec6b550c0)
+++ src/Actions/Action_impl_header.hpp	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -19,4 +19,6 @@
 #include <boost/preprocessor/seq/size.hpp>
 #include <boost/preprocessor/seq/transform.hpp>
+
+#include "Actions/ValueStorage.hpp"
 
 // some derived names
@@ -75,4 +77,15 @@
 #endif
 
+class ACTION;
+
+template <>
+class ActionTrait<ACTION> : public ActionTraits {
+public:
+  ActionTrait()
+  {}
+
+  ~ActionTrait() {}
+};
+
 class ACTION : public Action {
   friend
@@ -104,4 +117,6 @@
   } params;
 
+  ActionTrait<ACTION> Traits;
+
 protected:
   virtual Dialog * fillDialog(Dialog*);
Index: src/Actions/Makefile.am
===================================================================
--- src/Actions/Makefile.am	(revision 6e1e107497aecdfcac9e31ef5756edfec6b550c0)
+++ src/Actions/Makefile.am	(revision df32eec66d050ebe15e7e87b16f4dc75abca8de8)
@@ -17,4 +17,5 @@
   ${TESSELATIONACTIONSOURCE} \
   ${WORLDACTIONSOURCE} \
+  ActionTraits.cpp \
   MapOfActions.cpp \
   ValueStorage.cpp
@@ -30,4 +31,5 @@
   ${TESSELATIONACTIONHEADER} \
   ${WORLDACTIONHEADER} \
+  ActionTraits.hpp \
   MapOfActions.hpp \
   ValueStorage.hpp \
