Index: trunk/tmdmcreator/docs/uml/tmdmcreator/128033.diagram
===================================================================
--- trunk/tmdmcreator/docs/uml/tmdmcreator/128033.diagram	(revision 16)
+++ trunk/tmdmcreator/docs/uml/tmdmcreator/128033.diagram	(revision 17)
@@ -3,21 +3,21 @@
 classcanvas 128033 class_ref 128033 // TmDmCreator
   draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
-  xyz 34.2 74 2000
+  xyz 34 74.4 2000
 end
 classcanvas 128161 class_ref 128161 // TmDmCopier
   draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
-  xyz 400.5 183.9 2000
+  xyz 400.3 184.9 2000
 end
 classcanvas 128417 class_ref 141217 // TmDmProcessor
   draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
-  xyz 332.2 422 2000
+  xyz 196.5 408 2000
 end
 classcanvas 128545 class_ref 141345 // TmDmProcessorSimple
   draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
-  xyz 443.6 689.1 2000
+  xyz 363.2 588.3 2000
 end
 classcanvas 128801 class_ref 141473 // TmDmProcessorAttributs
   draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
-  xyz 55.8 687.1 2000
+  xyz 18.9 694.5 2000
 end
 relationcanvas 128673 relation_ref 128033 // <generalisation>
@@ -31,8 +31,3 @@
   no_multiplicity_a no_multiplicity_b
 end
-relationcanvas 129057 relation_ref 128289 // <unidirectional association>
-  from ref 128417 z 2001 to ref 128161
-  role_a_pos 545 294 3000 no_role_b
-  no_multiplicity_a no_multiplicity_b
 end
-end
Index: trunk/tmdmcreator/docs/uml/tmdmcreator/33.session
===================================================================
--- trunk/tmdmcreator/docs/uml/tmdmcreator/33.session	(revision 16)
+++ trunk/tmdmcreator/docs/uml/tmdmcreator/33.session	(revision 17)
@@ -5,7 +5,8 @@
 end
 show_stereotypes
+selected operation_ref 136097 // TmDmProcessorSimple
 open
   class_ref 128161 // TmDmCopier
-  classrelation_ref 128289 // m_Copier (<unidirectional association>)
+  operation_ref 136481 // ProcessBlock
   class_ref 141345 // TmDmProcessorSimple
   class_ref 141473 // TmDmProcessorAttributs
Index: trunk/tmdmcreator/docs/uml/tmdmcreator/tmdmcreator.prj
===================================================================
--- trunk/tmdmcreator/docs/uml/tmdmcreator/tmdmcreator.prj	(revision 16)
+++ trunk/tmdmcreator/docs/uml/tmdmcreator/tmdmcreator.prj	(revision 17)
@@ -1,5 +1,5 @@
 format 75
 "tmdmcreator"
-  revision 4
+  revision 5
   modified_by 33 "lucien"
 
@@ -359,19 +359,32 @@
       explicit_switch_type ""
       
-      classrelation 128289 // m_Copier (<unidirectional association>)
-	relation 128289 --->
-	  a role_name "m_Copier" protected
-	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
-"
-	    classrelation_ref 128289 // m_Copier (<unidirectional association>)
-	  b parent class_ref 128161 // TmDmCopier
+      attribute 148513 "m_FileSrc"
+	protected explicit_type "wxFileName"
+	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	java_decl ""
+	php_decl ""
+	python_decl ""
+	idl_decl ""
+      end
+
+      attribute 148641 "m_FileDst"
+	protected explicit_type "wxFileName"
+	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+	java_decl ""
+	php_decl ""
+	python_decl ""
+	idl_decl ""
       end
 
       operation 135585 "TmDmProcessor"
 	public explicit_return_type ""
-	nparams 0
-	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
-"
-	cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} {
+	nparams 2
+	  param in name "src" explicit_type "wxFileName"
+	  param in name "dest" explicit_type "wxFileName"
+	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
+"
+	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} {
   ${body}}
 "
@@ -447,8 +460,10 @@
       operation 136097 "TmDmProcessorSimple"
 	public explicit_return_type ""
-	nparams 0
-	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
-"
-	cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} {
+	nparams 2
+	  param in name "src" explicit_type "wxFileName"
+	  param in name "dest" explicit_type "wxFileName"
+	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
+"
+	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} {
   ${body}}
 "
@@ -512,8 +527,10 @@
       operation 135841 "TmDmProcessorAttributs"
 	public explicit_return_type ""
-	nparams 0
-	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
-"
-	cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} {
+	nparams 2
+	  param in name "src" explicit_type "wxFileName"
+	  param in name "dest" explicit_type "wxFileName"
+	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
+"
+	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} {
   ${body}}
 "
Index: trunk/tmdmcreator/src/tmdmcreator.cpp
===================================================================
--- trunk/tmdmcreator/src/tmdmcreator.cpp	(revision 16)
+++ trunk/tmdmcreator/src/tmdmcreator.cpp	(revision 17)
@@ -17,4 +17,5 @@
 #include "tmdmcreator.h"
 #include "tmdmcopier.h"
+#include "tmdmprocessor.h"
 
 TmDmCreator::TmDmCreator() {
@@ -92,5 +93,5 @@
 bool TmDmCreator::ProcessFiles(wxArrayString & errorsmsg) {
     errorsmsg.Clear();
-    // Copy structure to out
+    // Copy structure
     TmDmCopier myCopier(m_FileNameOutSQL);
     if (myCopier.CopyFrom(m_FileNameBaseSQL) == false) {
@@ -104,6 +105,15 @@
     }
     
-    
-    
+    // Process layers
+    TmDmProcessorSimple myLayerProc(m_FileNameUserContent, m_FileNameOutSQL);
+    int myThematicLayersStart = myLayerProc.FindBlock(_T("thematic_layers"));
+    if (myThematicLayersStart == wxNOT_FOUND) {
+        errorsmsg.Add(wxString::Format(_("'thematic_layers' field not found in %s"), m_FileNameUserContent.GetFullPath()));
+        return false;
+    }
+    if (myLayerProc.ProcessBlock(myThematicLayersStart)==false) {
+        errorsmsg.Add(wxString::Format(_("Processing 'thematic_layers' failed in %s"), m_FileNameUserContent.GetFullPath()));
+        return false;
+    }
     return true;
 }
Index: trunk/tmdmcreator/src/tmdmprocessor.cpp
===================================================================
--- trunk/tmdmcreator/src/tmdmprocessor.cpp	(revision 16)
+++ trunk/tmdmcreator/src/tmdmprocessor.cpp	(revision 17)
@@ -18,5 +18,7 @@
 #include "tmdmcopier.h"
 
-TmDmProcessor::TmDmProcessor() {
+TmDmProcessor::TmDmProcessor(const wxFileName & src, const wxFileName & dest) {
+    m_FileSrc = src;
+    m_FileDst = dest;
 }
 
@@ -29,4 +31,14 @@
 
 int TmDmProcessor::FindBlock(const wxString & blockname) {
+    wxFileInputStream input(m_FileSrc.GetFullPath());
+    wxTextInputStream text(input);
+    long myLineIndex = 0;
+    while(input.IsOk() && !input.Eof() ){
+        wxString myLine = text.ReadLine();
+        if (myLine.StartsWith(blockname)==true){
+            return myLineIndex;
+        }
+        myLineIndex++;
+    }
     return wxNOT_FOUND;
 }
@@ -39,5 +51,5 @@
 
 
-TmDmProcessorSimple::TmDmProcessorSimple() {
+TmDmProcessorSimple::TmDmProcessorSimple(const wxFileName & src, const wxFileName & dest) : TmDmProcessor(src,dest) {
 }
 
@@ -49,5 +61,30 @@
 
 
-bool TmDmProcessorSimple::ProcessBlock(int blockstart, TmDmCopier * copier) {
+bool TmDmProcessorSimple::ProcessBlock(int blockstart) {
+    wxString mySQLCols = wxEmptyString;
+    wxString mySQLTxt = wxEmptyString;
+    
+    wxFileInputStream input(m_FileSrc.GetFullPath());
+    wxTextInputStream text(input);
+    long myLineIndex = 0;
+    while(input.IsOk() && !input.Eof() ){
+        if (myLineIndex <= blockstart) {
+            myLineIndex++;
+            continue;
+        }
+        
+        wxString myRow = text.ReadLine();
+        
+        // HERE !!! 
+        
+        
+        
+        myLineIndex++;
+    }
+    return wxNOT_FOUND;
+
+    
+    
+    
     return false;
 }
@@ -61,5 +98,5 @@
 
 
-TmDmProcessorAttributs::TmDmProcessorAttributs() {
+TmDmProcessorAttributs::TmDmProcessorAttributs(const wxFileName & src, const wxFileName & dest) : TmDmProcessor(src,dest) {
 }
 
@@ -67,5 +104,5 @@
 }
 
-bool TmDmProcessorAttributs::ProcessBlock(int blockstart, TmDmCopier * copier) {
+bool TmDmProcessorAttributs::ProcessBlock(int blockstart) {
     return false;
 }
Index: trunk/tmdmcreator/src/tmdmprocessor.h
===================================================================
--- trunk/tmdmcreator/src/tmdmprocessor.h	(revision 16)
+++ trunk/tmdmcreator/src/tmdmprocessor.h	(revision 17)
@@ -17,23 +17,25 @@
 #define _TMDMPROCESSOR_H_
 
-// For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
-
-// Include wxWidgets' headers
 #ifndef WX_PRECOMP
 #include <wx/wx.h>
 #endif
+#include <wx/filename.h>
+#include <wx/wfstream.h>
+#include <wx/txtstrm.h>
+
 
 class TmDmCopier;
 class TmDmProcessor {
 protected:
-    TmDmCopier * m_Copier;
+    wxFileName m_FileSrc;
+    wxFileName m_FileDst;
     
 public:
-    TmDmProcessor();
+    TmDmProcessor(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessor();
     
     int FindBlock(const wxString & blockname);
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier) = 0;
+    virtual bool ProcessBlock(int blockstart) = 0;
 };
 
@@ -46,8 +48,8 @@
 class TmDmProcessorSimple : public TmDmProcessor {
 public:
-    TmDmProcessorSimple();
+    TmDmProcessorSimple(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessorSimple();
     
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier);
+    virtual bool ProcessBlock(int blockstart);
 };
 
@@ -60,8 +62,8 @@
 class TmDmProcessorAttributs : public TmDmProcessor {
 public:
-    TmDmProcessorAttributs();
+    TmDmProcessorAttributs(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessorAttributs();
     
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier);
+    virtual bool ProcessBlock(int blockstart);
 };
 #endif
