Index: src/UIElements/Views/Qt4/QtElementList.cpp
===================================================================
--- src/UIElements/Views/Qt4/QtElementList.cpp	(revision f20fa5eaab631780e5e575ac7150352538ba9a14)
+++ src/UIElements/Views/Qt4/QtElementList.cpp	(revision 59a28ec90c4e8631aeaf66b49d200d2e6fc3e72e)
@@ -31,9 +31,11 @@
 #include "Element/element.hpp"
 #include "Element/periodentafel.hpp"
+#include "Descriptors/AtomTypeDescriptor.hpp"
+#include <QAbstractItemView>
 
 using namespace std;
 
 const int QtElementList::COLUMNCOUNT = COLUMNTYPES_MAX;
-const char *QtElementList::COLUMNNAMES[QtElementList::COLUMNCOUNT]={"Number","Name","Symbol","Mass"};
+const char *QtElementList::COLUMNNAMES[QtElementList::COLUMNCOUNT]={"Number","Name","Symbol","Mass","Occurrence"};
 
 QtElementList::QtElementList(QWidget * _parent) :
@@ -42,4 +44,5 @@
 {
   setColumnCount(COLUMNCOUNT);
+  setSelectionMode(QAbstractItemView::MultiSelection);
 
   QStringList header;
@@ -47,5 +50,4 @@
 	  header << COLUMNNAMES[i];
 	setHeaderLabels(header);
-	//setAllColumnsShowFocus( true );
 
 	molecules = World::getInstance().getMolecules();
@@ -53,47 +55,4 @@
 	update(molecules);
 
-  periodentafel *&periode = World::getInstance().getPeriode();
-
-
-  int i;
-  periodentafel::const_iterator iter;
-  for(iter = periode->begin(),i=0;
-      iter != periode->end();
-      ++i,++iter) {
-    const element *e = iter->second;
-
-    QTreeWidgetItem *treeItem = new QTreeWidgetItem(this);
-    treeItem->setText(0, QString::number(e->getAtomicNumber()));
-    treeItem->setText(1, QString(e->getName().c_str()));
-    treeItem->setText(2, QString(e->getSymbol().c_str()));
-    treeItem->setText(3, QString::number(e->getMass()));
-
-    /*QTableWidgetItem *indexWidget = new QTableWidgetItem();
-    //std::cout << "Creating index item " << indexWidget << "." << std::endl;
-    indexWidget->setText(QString::number(e->getAtomicNumber()));
-    indexWidget->setData(Qt::UserRole,QVariant(e->getAtomicNumber()));
-    setItem(i,NUMBER,indexWidget);
-
-    const string name = e->getName();
-    QTableWidgetItem *nameWidget = new QTableWidgetItem();
-    //std::cout << "Creating name item " << nameWidget << " at " << i << "," << NAME << "." << std::endl;
-    nameWidget->setText(QString(name.c_str()));
-    setItem(i,NAME,nameWidget);
-
-    const string symbol = e->getSymbol();
-    QTableWidgetItem *symWidget = new QTableWidgetItem();
-    //std::cout << "Creating symbol item " << symWidget << " at " << i << "," << NAME << "." << std::endl;
-    symWidget->setText(QString(symbol.c_str()));
-    setItem(i,SYMBOL,symWidget);
-
-    const double mass = e->getMass();
-    QTableWidgetItem *massWidget= new QTableWidgetItem();
-    //std::cout << "Creating mass item " << massWidget << " at " << i << "," << ATOMCOUNT << "." << std::endl;
-    massWidget->setText(QString::number(mass));
-    massWidget->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-    setItem(i,MASS,massWidget);*/
-  }
-
-	connect(this,SIGNAL(cellChanged(int,int)),this,SLOT(moleculeChanged(int,int)));
 	connect(this,SIGNAL(cellClicked(int,int)),this,SLOT(cellSelected(int,int)));
 }
@@ -105,10 +64,34 @@
 
 void QtElementList::update(Observable *publisher) {
+
+  periodentafel *&periode = World::getInstance().getPeriode();
+
+
+  int i;
+
+  clear();
+  periodentafel::const_iterator iter;
+  for(iter = periode->begin(),i=0;
+      iter != periode->end();
+      ++i,++iter) {
+    const element *e = iter->second;
+    int count = 0;
+    count = World::getInstance().getAllAtoms(AtomByType(e)).size();
+
+    QTreeWidgetItem *treeItem = new QTreeWidgetItem(this);
+    treeItem->setText(0, QString::number(e->getAtomicNumber()));
+    treeItem->setText(1, QString(e->getName().c_str()));
+    treeItem->setText(2, QString(e->getSymbol().c_str()));
+    treeItem->setText(3, QString::number(e->getMass()));
+    if (count > 0){
+      treeItem->setText(4, QString::number(count));
+    }else{
+      treeItem->setText(4, "none");
+      treeItem->setDisabled(true);
+    }
+  }
 }
 
 void QtElementList::subjectKilled(Observable *publisher) {
-}
-
-void QtElementList::moleculeChanged(int row, int column) {
 }
 
Index: src/UIElements/Views/Qt4/QtElementList.hpp
===================================================================
--- src/UIElements/Views/Qt4/QtElementList.hpp	(revision f20fa5eaab631780e5e575ac7150352538ba9a14)
+++ src/UIElements/Views/Qt4/QtElementList.hpp	(revision 59a28ec90c4e8631aeaf66b49d200d2e6fc3e72e)
@@ -34,11 +34,9 @@
 
   static const int COLUMNCOUNT;
-  enum {NUMBER,NAME,SYMBOL,MASS,COLUMNTYPES_MAX} COLUMNTYPES;
+  enum {NUMBER,NAME,SYMBOL,MASS,OCCURRENCE,COLUMNTYPES_MAX} COLUMNTYPES;
   static const char *COLUMNNAMES[];
 
 private slots:
-  void moleculeChanged(int row, int column);
-
-  void cellSelected(int row, int column);
+  void cellSelected(int row, int column); // itemSelectionChanged()
 
 signals:
