gf.Bind(this);
			DataObjects.DataObjects.Clear();
		}

		/// <summary>
		/// Clear all entries and remove all glade files
		/// </summary>
		/// <param name='sender'>
		/// Sender.
		/// </param>
		/// <param name='e'>
		/// E.
		/// </param>
		void HandleBtnNewClicked (object sender, EventArgs e)
		{
			TsData.Clear();
				loadData(fc.FileName);
			}
		}

		void HandleOnBindException (object sender, EventArgs e)
		{
			String txt = "no .glade file selected ! \n";
			Notebook1.CurrentTabIndex = 0;
			Exception ex = sender as Exception;
			if (ex != null)
			{
				txt = ex.ToString();
		{
			doSave(CurrentFile,true);
		}

		/// <summary>
		/// do a "save as"
		/// </summary>
		private void saveAs()
		{
			TreeNavigator tn = TsData.GetFirstNode();
			if (tn.CurrentPosition == null)
			{
				TextviewMessages.LoadText("no glade files in list!\n",TextFormat.Markdown);
				return;
			}

			//FileDialogFilter fi = new FileDialogFilter(
			SaveFileDialog fc = new SaveFileDialog("save as");
			fc.Filters.Add(new FileDialogFilter("Gladebuilder","*.gladebuilder"));
			if (fc.Run())
			{
			}
		}


		/// <summary>
		/// load data from a config file
		/// </summary>
		/// <param name='filename'>
		/// Filename.
		/// </param>
		private void loadData(String filename)
		{
			TsData.Clear();

			XmlDocument doc = new XmlDocument();
			doc.Load(filename);
			XmlNodeList lst = doc.SelectNodes("//gladefile");
			foreach (XmlNode nd in lst)
			{
				GladeFile f = GladeFile.CreateInstance(nd);
				TsData.AddNode().SetValue(dfFilename,f.Filename).SetValue(dfGladefile,f);
			}
			CurrentFile = filename;
		
				TextviewMessages.LoadText(txt,TextFormat.Markdown);
			}
		}

		/// <summary>
		/// generate files clicked
		/// </summary>
		/// <param name='sender'>
		/// Sender.
		/// </param>
		/// <param name='e'>
		/// E.
		/// </param>
		void BtnGenerateClicked (object sender, EventArgs e)
		{
			TreeNavigator tn = TsData.GetFirstNode();
			if (tn.CurrentPosition == null)
			{
				TextviewMessages.LoadText("no glade files in list!\n",TextFormat.Markdown);
				return;
			}

			if (String.IsNullOrEmpty(CurrentFile))
			{
				saveAs();
			} else
			{
				save();
			TextviewMessages.LoadText(txt,TextFormat.Markdown);
		}

		/// <summary>
		/// gnerate c# code from .gladebuilder file
		/// </summary>
		/// <param name='filename'>
		/// Filename.
		/// </param>
		private void generateCode(String filename)
		{
			try
			{
				TextviewMessages.LoadText("start generating c# code.\n",TextFormat.Markdown);
				if (String.IsNullOrEmpty(filename))
				{
					throw new Exception("parameter filename must not be empty");
				}

				Sharpend.Glade.GladeBuilder.generateCode(filename,true);
				TextviewMessages.LoadText("done.",TextFormat.Markdown);
			} 
			catch (Exception ex)
			{
				String txt = "error while generating c# code: \n";