Index: gui/graph_displayer_canvas-edge.cc
===================================================================
--- gui/graph_displayer_canvas-edge.cc	(revision 1512)
+++ gui/graph_displayer_canvas-edge.cc	(revision 1525)
@@ -6,9 +6,19 @@
 int GraphDisplayerCanvas::changeEdgeWidth (std::string mapname, Graph::Edge edge)
 {
+  Graph::EdgeMap<double> * actual_map;
+  if(mapname=="Default")
+    {
+      actual_map=new Graph::EdgeMap<double>(g,edge_property_defaults[E_WIDTH]);
+    }
+  else
+    {
+      actual_map=(mapstorage.edgemap_storage)[mapname];
+    }
+
   if(edge==INVALID)
     {
       for (EdgeIt i(g); i!=INVALID; ++i)
 	{
-	  int w=(int)(*(mapstorage.edgemap_storage)[mapname])[i];
+	  int w=(int)(*actual_map)[i];
 	  if(w>=0)
 	    {
@@ -19,5 +29,5 @@
   else
     {
-      int w=(int)(*(mapstorage.edgemap_storage)[mapname])[edge];
+      int w=(int)(*actual_map)[edge];
       if(w>=0)
 	{
@@ -34,14 +44,33 @@
   //the minimum of the nodemap to the range of
   //green in RGB
+  Graph::EdgeMap<double> * actual_map;
+  if(mapname=="Default")
+    {
+      actual_map=new Graph::EdgeMap<double>(g,edge_property_defaults[E_COLOR]);
+    }
+  else
+    {
+      actual_map=(mapstorage.edgemap_storage)[mapname];
+    }
+
+  double max, min;
+
+  if(mapname!="Default")
+    {
+      max=mapstorage.maxOfEdgeMap(mapname);
+      min=mapstorage.minOfEdgeMap(mapname);
+    }
+  else
+    {
+      max=edge_property_defaults[E_COLOR];
+      min=edge_property_defaults[E_COLOR];
+    }
+
   if(edge==INVALID)
     {
-
       for (EdgeIt i(g); i!=INVALID; ++i)
 	{
-	  double w=(*(mapstorage.edgemap_storage)[mapname])[i];
-	  double max=mapstorage.maxOfEdgeMap(mapname);
-	  double min=mapstorage.minOfEdgeMap(mapname);
-      
-	  //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
+	  double w=(*actual_map)[i];
+
 	  Gdk::Color color;
 	  if(max!=min)
@@ -53,5 +82,4 @@
 	      color.set_rgb_p (0, 100, 0);
 	    }
-
 	  edgesmap[i]->property_fill_color_gdk().set_value(color);
 	}
@@ -59,10 +87,8 @@
   else
     {
-      double w=(*(mapstorage.edgemap_storage)[mapname])[edge];
-      double max=mapstorage.maxOfEdgeMap(mapname);
-      double min=mapstorage.minOfEdgeMap(mapname);
-      
-      //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
       Gdk::Color color;
+
+      double w=(*actual_map)[edge];
+
       if(max!=min)
 	{
@@ -86,5 +112,4 @@
   //in that case empty string will be written, because
   //that is the deleter map
-  //\todo isn't it a bit woodcutter?
 
   if(edge==INVALID)
@@ -92,5 +117,5 @@
       for (EdgeIt i(g); i!=INVALID; ++i)
 	{
-	  if(mapname!=edge_property_strings[E_TEXT])
+	  if(mapname!="Default")
 	    {
 	      double number=(*(mapstorage.edgemap_storage)[mapname])[i];
@@ -129,5 +154,5 @@
   else
     {
-      if(mapname!=edge_property_strings[E_TEXT])
+      if(mapname!="Default")
 	{
 	  double number=(*(mapstorage.edgemap_storage)[mapname])[edge];
Index: gui/graph_displayer_canvas-event.cc
===================================================================
--- gui/graph_displayer_canvas-event.cc	(revision 1524)
+++ gui/graph_displayer_canvas-event.cc	(revision 1525)
@@ -29,8 +29,7 @@
     {
     case MOVE:
-      actual_handler=displayed_graph.signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false);
-      break;
-
-      //it has to assigned to canvas, because all the canvas has to be monitored, not only the elements of the already drawn group
+      actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false);
+      break;
+
     case CREATE_NODE:
       actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createNodeEventHandler), false);
@@ -38,9 +37,9 @@
 
     case CREATE_EDGE:
-      actual_handler=displayed_graph.signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createEdgeEventHandler), false);
+      actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createEdgeEventHandler), false);
       break;
 
     case ERASER:
-      actual_handler=displayed_graph.signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::eraserEventHandler), false);
+      actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::eraserEventHandler), false);
       break;
 
@@ -61,7 +60,7 @@
     case GDK_BUTTON_PRESS:
       //we mark the location of the event to be able to calculate parameters of dragging
-      clicked_x=e->button.x;
-      clicked_y=e->button.y;
-      active_item=(get_item_at(e->button.x, e->button.y));
+      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+
+      active_item=(get_item_at(clicked_x, clicked_y));
       active_node=INVALID;
       for (NodeIt i(g); i!=INVALID; ++i)
@@ -86,5 +85,4 @@
       active_item=NULL;
       active_node=INVALID;
-      updateScrollRegion();
       break;
     case GDK_MOTION_NOTIFY:
@@ -97,6 +95,10 @@
 	//has to be calculated from here
 
-        double dx=e->motion.x-clicked_x;
-        double dy=e->motion.y-clicked_y;
+	double new_x, new_y;
+
+	window_to_world (e->motion.x, e->motion.y, new_x, new_y);
+
+        double dx=new_x-clicked_x;
+        double dy=new_y-clicked_y;
 
 	//repositioning node and its text
@@ -104,6 +106,6 @@
 	nodetextmap[active_node]->move(dx, dy);
 
-        clicked_x=e->motion.x;
-        clicked_y=e->motion.y;
+        clicked_x=new_x;
+        clicked_y=new_y;
 
 	//all the edges connected to the moved point has to be redrawn
@@ -169,5 +171,5 @@
   }
 
-  return true;
+  return false;
 }
 
@@ -178,4 +180,7 @@
 
       //draw the new node in red at the clicked place
+    case GDK_2BUTTON_PRESS:
+      std::cout << "double click" << std::endl;
+      break;
     case GDK_BUTTON_PRESS:
       isbutton=1;
@@ -184,7 +189,9 @@
 
       //initiating values corresponding to new node in maps
-      
 
       window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+
+      target_item=NULL;
+      target_item=get_item_at(clicked_x, clicked_y);
 
       nodesmap[active_node]=new Gnome::Canvas::Ellipse(displayed_graph, clicked_x-20, clicked_y-20, clicked_x+20, clicked_y+20);
@@ -206,7 +213,6 @@
 	double world_motion_x, world_motion_y;
 	GdkEvent * generated=new GdkEvent();
-	window_to_world (e->motion.x, e->motion.y, world_motion_x, world_motion_y);
-	generated->motion.x=world_motion_x;
-	generated->motion.y=world_motion_y;
+	generated->motion.x=e->motion.x;
+	generated->motion.y=e->motion.y;
 	generated->type=GDK_MOTION_NOTIFY;
 	moveEventHandler(generated);      
@@ -217,8 +223,17 @@
     case GDK_BUTTON_RELEASE:
       isbutton=0;
-      *active_item << Gnome::Canvas::Properties::fill_color("blue");
+      if(!target_item)
+	{
+	  //Its appropriate color is given by update.
+	  //*active_item << Gnome::Canvas::Properties::fill_color("blue");
+	}
+      else
+	{
+	  //In this case the given color has to be overwritten, because the noe covers an other item.
+	  *active_item << Gnome::Canvas::Properties::fill_color("lightblue");
+	}
+      target_item=NULL;
       active_item=NULL;
       active_node=INVALID;
-      updateScrollRegion();
       break;
     default:
@@ -240,7 +255,8 @@
 	    {
 	      //we mark the location of the event to be able to calculate parameters of dragging
-	      clicked_x=e->button.x;
-	      clicked_y=e->button.y;
-	      active_item=(get_item_at(e->button.x, e->button.y));
+
+	      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+
+	      active_item=(get_item_at(clicked_x, clicked_y));
 	      active_node=INVALID;
 	      for (NodeIt i(g); i!=INVALID; ++i)
@@ -270,5 +286,6 @@
 	  else
 	    {
-	      target_item=(get_item_at(e->button.x, e->button.y));
+	      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+	      target_item=(get_item_at(clicked_x, clicked_y));
 	      Graph::NodeIt target_node=INVALID;
 	      for (NodeIt i(g); i!=INVALID; ++i)
@@ -367,5 +384,6 @@
     {
     case GDK_BUTTON_PRESS:
-      active_item=(get_item_at(e->button.x, e->button.y));
+      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+      active_item=(get_item_at(clicked_x, clicked_y));
       active_node=INVALID;
       active_edge=INVALID;
@@ -387,54 +405,59 @@
 	    }
 	}
-    *active_item << Gnome::Canvas::Properties::fill_color("red");
+      if(active_item)
+	{
+	  *active_item << Gnome::Canvas::Properties::fill_color("red");
+	}
       break;
 
     case GDK_BUTTON_RELEASE:
-      if(active_item==(get_item_at(e->button.x, e->button.y)))
-	{
-	  if(active_node!=INVALID)
-	    {
-
-	      //collecting edges to delete
-	      EdgeIt e;
-	      std::set<Graph::Edge> edges_to_delete;
-
-	      g.firstOut(e,active_node);
-	      for(;e!=INVALID;g.nextOut(e))
-		{
+      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
+      if(active_item)
+	{
+	  if( active_item == ( get_item_at (clicked_x, clicked_y) ) )
+	    {
+	      if(active_node!=INVALID)
+		{
+
+		  //collecting edges to delete
+		  EdgeIt e;
+		  std::set<Graph::Edge> edges_to_delete;
+
+		  g.firstOut(e,active_node);
+		  for(;e!=INVALID;g.nextOut(e))
+		    {
 		      edges_to_delete.insert(e);
-		}
-
-	      g.firstIn(e,active_node);
-	      for(;e!=INVALID;g.nextIn(e))
-		{
+		    }
+
+		  g.firstIn(e,active_node);
+		  for(;e!=INVALID;g.nextIn(e))
+		    {
 		      edges_to_delete.insert(e);
-		}
-
-	      //deleting collected edges
-	      for(std::set<Graph::Edge>::iterator edge_set_it=edges_to_delete.begin();edge_set_it!=edges_to_delete.end();edge_set_it++)
-		{
-		  deleteItem(*edge_set_it);
-		}
-	      deleteItem(active_node);
-	    }
-	  //a simple edge was chosen
+		    }
+
+		  //deleting collected edges
+		  for(std::set<Graph::Edge>::iterator edge_set_it=edges_to_delete.begin();edge_set_it!=edges_to_delete.end();edge_set_it++)
+		    {
+		      deleteItem(*edge_set_it);
+		    }
+		  deleteItem(active_node);
+		}
+	      //a simple edge was chosen
+	      else
+		{
+		  deleteItem(active_edge);
+		}
+	    }
+	  //pointer was moved, deletion is cancelled
 	  else
 	    {
-	      deleteItem(active_edge);
-	    }
-
-	  
-	}
-      //pointer was moved, deletion is cancelled
-      else
-	{
-	  if(active_node!=INVALID)
-	    {
-	      *active_item << Gnome::Canvas::Properties::fill_color("blue");
-	    }
-	  else
-	    {
-	      *active_item << Gnome::Canvas::Properties::fill_color("green");
+	      if(active_node!=INVALID)
+		{
+		  *active_item << Gnome::Canvas::Properties::fill_color("blue");
+		}
+	      else
+		{
+		  *active_item << Gnome::Canvas::Properties::fill_color("green");
+		}
 	    }
 	}
@@ -451,5 +474,5 @@
       break;
     }
-  return true;
+  return false;
 }
 
Index: gui/graph_displayer_canvas-node.cc
===================================================================
--- gui/graph_displayer_canvas-node.cc	(revision 1512)
+++ gui/graph_displayer_canvas-node.cc	(revision 1525)
@@ -6,13 +6,26 @@
 int GraphDisplayerCanvas::changeNodeRadius (std::string mapname, Graph::Node node)
 {
+  Graph::NodeMap<double> * actual_map;
+  if(mapname=="Default")
+    {
+      actual_map=new Graph::NodeMap<double>(g,node_property_defaults[N_RADIUS]);
+    }
+  else
+    {
+      actual_map=(mapstorage.nodemap_storage)[mapname];
+    }
+
   if(node==INVALID)
     {
       for (NodeIt i(g); i!=INVALID; ++i)
 	{
-	  int w=(int)(*(mapstorage.nodemap_storage)[mapname])[i];
+	  int w=(int)(*actual_map)[i];
 	  if(w>=0)
 	    {
 	      double x1, y1, x2, y2;
-	      nodesmap[i]->get_bounds(x1, y1, x2, y2);
+	      x1=nodesmap[i]->property_x1().get_value();
+	      x2=nodesmap[i]->property_x2().get_value();
+	      y1=nodesmap[i]->property_y1().get_value();
+	      y2=nodesmap[i]->property_y2().get_value();
 	      nodesmap[i]->property_x1().set_value((x1+x2)/2-w);
 	      nodesmap[i]->property_x2().set_value((x1+x2)/2+w);
@@ -24,9 +37,14 @@
   else
     {
-      int w=(int)(*(mapstorage.nodemap_storage)[mapname])[node];
+      //I think only new nodes use this case
+//       int w=(int)(*actual_map)[node];
+      int w=(int)(node_property_defaults[N_RADIUS]);
       if(w>=0)
 	{
 	  double x1, y1, x2, y2;
-	  nodesmap[node]->get_bounds(x1, y1, x2, y2);
+	  x1=nodesmap[node]->property_x1().get_value();
+	  x2=nodesmap[node]->property_x2().get_value();
+	  y1=nodesmap[node]->property_y1().get_value();
+	  y2=nodesmap[node]->property_y2().get_value();
 	  nodesmap[node]->property_x1().set_value((x1+x2)/2-w);
 	  nodesmap[node]->property_x2().set_value((x1+x2)/2+w);
@@ -45,4 +63,28 @@
   //green in RGB
 
+  Graph::NodeMap<double> * actual_map;
+  if(mapname=="Default")
+    {
+      actual_map=new Graph::NodeMap<double>(g,node_property_defaults[N_COLOR]);
+    }
+  else
+    {
+      actual_map=(mapstorage.nodemap_storage)[mapname];
+    }
+
+  double max, min;
+
+  if(mapname!="Default")
+    {
+      max=mapstorage.maxOfNodeMap(mapname);
+      min=mapstorage.minOfNodeMap(mapname);
+    }
+  else
+    {
+      max=node_property_defaults[N_COLOR];
+      min=node_property_defaults[N_COLOR];
+    }
+
+
   if(node==INVALID)
     {
@@ -50,10 +92,8 @@
       for (NodeIt i(g); i!=INVALID; ++i)
 	{
-	  double w=(*(mapstorage.nodemap_storage)[mapname])[i];
-	  double max=mapstorage.maxOfNodeMap(mapname);
-	  double min=mapstorage.minOfNodeMap(mapname);
-      
-	  //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
 	  Gdk::Color color;
+
+	  double w=(*actual_map)[i];
+
 	  if(max!=min)
 	    {
@@ -70,10 +110,8 @@
   else
     {
-      double w=(*(mapstorage.nodemap_storage)[mapname])[node];
-      double max=mapstorage.maxOfNodeMap(mapname);
-      double min=mapstorage.minOfNodeMap(mapname);
-      
-      //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
       Gdk::Color color;
+
+      double w=(*actual_map)[node];
+
       if(max!=min)
 	{
@@ -97,5 +135,14 @@
   //in that case empty string will be written, because
   //that is the deleter map
-  //\todo isn't it a bit woodcutter?
+
+  Graph::NodeMap<double> * actual_map;
+  if(mapname=="Default")
+    {
+      actual_map=new Graph::NodeMap<double>(g,node_property_defaults[N_COLOR]);
+    }
+  else
+    {
+      actual_map=(mapstorage.nodemap_storage)[mapname];
+    }
 
   if(node==INVALID)
@@ -103,7 +150,7 @@
       for (NodeIt i(g); i!=INVALID; ++i)
 	{
-	  if(mapname!=node_property_strings[N_TEXT])
-	    {
-	      double number=(*(mapstorage.nodemap_storage)[mapname])[i];
+	  if(mapname!="Default")
+	    {
+	      double number=(*actual_map)[i];
 	      int length=1;
 	      //if number is smaller than one, length would be negative, or invalid
@@ -139,7 +186,7 @@
   else
     {
-      if(mapname!=node_property_strings[N_TEXT])
-	{
-	  double number=(*(mapstorage.nodemap_storage)[mapname])[node];
+      if(mapname!="Default")
+	{
+	  double number=(*actual_map)[node];
 	  int length=1;
 	  //if number is smaller than one, length would be negative, or invalid
Index: gui/graph_displayer_canvas.cc
===================================================================
--- gui/graph_displayer_canvas.cc	(revision 1524)
+++ gui/graph_displayer_canvas.cc	(revision 1525)
@@ -6,5 +6,5 @@
 {
   
-  actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createNodeEventHandler), false);
+  actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false);
   actual_tool=CREATE_NODE;
 
Index: gui/map_win.cc
===================================================================
--- gui/map_win.cc	(revision 1524)
+++ gui/map_win.cc	(revision 1525)
@@ -24,29 +24,4 @@
   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
   {
-
-    std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps();
-    std::set<int> props;
-
-    int actprop;
-
-    //here we find out, which map is the default in MapStorage for this property, which are not
-    for(int j=0;j<ms.numOfEdgeMaps();j++)
-    {
-      //this is the default value for this property
-      if(emsi->second==&(ms.default_edgemaps[i]))
-      {
-	actprop=j;
-      }
-      //these are the maps NOT to show for this property
-      for(int k=0;k<EDGE_PROPERTY_NUM;k++)
-      {
-	if(emsi->second==&(ms.default_edgemaps[k]))
-	{
-	  props.insert(j);
-	}
-      }
-      emsi++;
-    }
-
     //filling in combo box with choices
     std::list<Glib::ustring> listStrings;
@@ -54,13 +29,8 @@
     listStrings.push_back("Default");
 
-    emsi=ms.beginOfEdgeMaps();
-
-    for(int j=0;j<ms.numOfEdgeMaps();j++)
-    {
-      if( ( props.find(j) )==( props.end() ) )
-      {
+    std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps();
+    for(;emsi!=ms.endOfEdgeMaps();emsi++)
+    {
 	listStrings.push_back(emsi->first);
-      }
-      emsi++;
     }
 
@@ -103,29 +73,4 @@
   for(int i=0;i<NODE_PROPERTY_NUM;i++)
   {
-
-    std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps();
-    std::set<int> props;
-
-    int actprop;
-
-    //here we find out, which map is the default in MapStorage for this property, which are not
-    for(int j=0;j<ms.numOfNodeMaps();j++)
-    {
-      //these are the maps NOT to show for this property
-      if(emsi->second==&(ms.default_nodemaps[i]))
-      {
-	actprop=j;
-      }
-      //this is the other maps to show for this property
-      for(int k=0;k<NODE_PROPERTY_NUM;k++)
-      {
-	if(emsi->second==&(ms.default_nodemaps[k]))
-	{
-	  props.insert(j);
-	}
-      }
-      emsi++;
-    }
-
     //filling in combo box with choices
     std::list<Glib::ustring> listStrings;
@@ -133,13 +78,9 @@
     listStrings.push_back("Default");
 
-    emsi=ms.beginOfNodeMaps();
-
-    for(int j=0;j<ms.numOfNodeMaps();j++)
-    {
-      if( ( props.find(j) )==( props.end() ) )
-      {
-	listStrings.push_back(emsi->first);
-      }
-      emsi++;
+    std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps();
+
+    for(;emsi!=ms.endOfNodeMaps();emsi++)
+    {
+      listStrings.push_back(emsi->first);
     }
 
@@ -189,10 +130,5 @@
     if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
     {
-      if(mapname=="Default")
-      {
-	mapname=edge_property_strings[prop];
-      }
-
-      if( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() )
+      if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) || (mapname=="Default") )
       {
 	switch(prop)
@@ -225,10 +161,5 @@
     if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
     {
-      if(mapname=="Default")
-      {
-	mapname=node_property_strings[prop];
-      }
-
-      if( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() )
+      if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) || (mapname=="Default") )
       {
 	switch(prop)
@@ -262,16 +193,10 @@
 	  if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
 	    {
-	      if(mapname=="Default")
-		{
-		  mapname=node_property_strings[i];
-		}
-
-	      if( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() )
+	      if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) || (mapname=="Default") )
 		{
 		  switch(i)
 		    {
 		    case N_RADIUS:
-		      //gdc.changeNodeRadius(mapname, node);
-		      std::cout << "If default map-value problem is solved, uncomment line in MapWin::node_update!" << std::endl;
+		      gdc.changeNodeRadius(mapname, node);
 		      break;
 		    case N_COLOR:
@@ -302,16 +227,11 @@
 	  if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
 	    {
-	      if(mapname=="Default")
-		{
-		  mapname=edge_property_strings[i];
-		}
-
-	      if( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() )
+
+	      if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) || (mapname=="Default") )
 		{
 		  switch(i)
 		    {
 		    case E_WIDTH:
-		      //gdc.changeEdgeWidth(mapname, edge);
-		      std::cout << "If default map-value problem is solved, uncomment line in MapWin::edge_update!" << std::endl;
+		      gdc.changeEdgeWidth(mapname, edge);
 		      break;
 		    case E_COLOR:
Index: gui/mapstorage.cc
===================================================================
--- gui/mapstorage.cc	(revision 1524)
+++ gui/mapstorage.cc	(revision 1525)
@@ -3,34 +3,4 @@
 MapStorage::MapStorage(Graph & graph):g(graph)
 {
-  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
-  {
-    Graph::EdgeMap<double> emd(g,edge_property_defaults[i]);
-    default_edgemaps.push_back(emd);
-  }
-
-  for(int i=0;i<NODE_PROPERTY_NUM;i++)
-  {
-    Graph::NodeMap<double> nmd(g,node_property_defaults[i]);
-    default_nodemaps.push_back(nmd);
-  }
-
-  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
-  {
-      for (EdgeIt j(g); j!=INVALID; ++j)
-      {
-	(default_edgemaps[i])[j]=edge_property_defaults[i];
-      }
-      addEdgeMap(edge_property_strings[i],&(default_edgemaps[i]));
-  }
-
-  for(int i=0;i<NODE_PROPERTY_NUM;i++)
-  {
-      for (NodeIt j(g); j!=INVALID; ++j)
-      {
-	(default_nodemaps[i])[j]=node_property_defaults[i];
-      }
-      addNodeMap(node_property_strings[i],&(default_nodemaps[i]));
-  }
-
 };
 
@@ -103,18 +73,8 @@
 void MapStorage::initMapsForEdge(Graph::Edge e)
 {
-  e=e;
-// beragad, aztan csovez
-//   std::map< std::string,Graph::EdgeMap<double> * >::iterator ems_it;
-//   for(ems_it=edgemap_storage.begin();ems_it!=edgemap_storage.end();ems_it++)
-//     {
-//       std::cout << "szevasz\n";
-//       (*((*ems_it).second))[e]=0;
-//     }
-//   std::cout << std::endl;
-
-// g_closure_invoke...
-//   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
-//     {
-//       (default_edgemaps[i])[e]=property_defaults[i];
-//     }
+  std::map< std::string,Graph::EdgeMap<double> * >::iterator ems_it;
+  for(ems_it=edgemap_storage.begin();ems_it!=edgemap_storage.end();ems_it++)
+    {
+      (*((*ems_it).second))[e]=5;
+    }
 }
Index: gui/mapstorage.h
===================================================================
--- gui/mapstorage.h	(revision 1524)
+++ gui/mapstorage.h	(revision 1525)
@@ -82,4 +82,10 @@
   std::map< std::string,Graph::EdgeMap<double> * >::iterator beginOfEdgeMaps(){return edgemap_storage.begin();};
 
+  ///To be able to iterate through each maps this function returns an iterator pointing to the last nodemap in the storage.
+  std::map< std::string,Graph::NodeMap<double> * >::iterator endOfNodeMaps(){return nodemap_storage.end();};
+
+  ///To be able to iterate through each maps this function returns an iterator pointing to the last edgemap in the storage.
+  std::map< std::string,Graph::EdgeMap<double> * >::iterator endOfEdgeMaps(){return edgemap_storage.end();};
+
   ///This function sets a default base value for the newly created node
   void initMapsForNode(NodeIt);
