//private bool CheckAndInformForIncompleteEntry (DataRow ActuallRow)
		//    {
		//    if (!GraphicsSingleton.Instance.GraphicsHandler.CheckForIncompleteEntry (ActuallRow))
		//        {
		//        MessageBox.Show ("Achtung, der zuletzt aktive Karteieintrag ist evt. nicht\r\n"
		//                        + "fertig bearbeitet. Sie haben möglicherweise einen\r\n"
		//                         + "neuen Eintrag angelegt, und diesen nicht ausgefüllt. Es kann\r\n"
		//                         + "auch sein, daß Sie gewünschte Änderungen nicht gespeichert\r\n"
		//                         + "haben (= nicht die \"Speichern\" - Taste gedrückt??).\r\n"
		//                         + "Bitte korrigieren Sie ggf. den Eintrag indem Sie mit der\r\n"
		//                        + "rechten Maustaste auf den zu ändenden Eintrag drücken.\r\n"
		//                        + "Wenn Sie eben das Programm schließen, oder die\r\n"
		//                        + "Kartei wechseln, sollten Sie nochmals einsteigen.");
		//        return false;
		//        }
		//    return true;
		//    }



		private void ProcessChangedEntry (String SelectedID)
			{
			PicturesTabControl.IsEnabled = false;
			if (m_ManagedTimingsControl != null)
				{
				m_ManagedTimingsControl.DoUpdateIfNeccessary ();
				m_ManagedTimingsControl.ConnectedID = SelectedID;
				}
			AvailableEntriesListBox.IsEnabled = false;
			GraphicsSingleton.Instance.CheckAndProcessPossibleChanges (DoCentralFileUpdateCall);
			if (String.IsNullOrEmpty (SelectedID))
				{
				PicturesTabControl.IsEnabled = true;
				AvailableEntriesListBox.IsEnabled = true;
				InsertFromTemplateButton.IsEnabled = true;
				GraphicsSingleton.Instance.RemoveAllGraphics ();
				return;
				}
			GraphicsSingleton.Instance.RemoveAllGraphics ();
			AvailableEntriesListBox.IsEnabled = false;
			GraphicsHandling LocalGraphicsHandling = new GraphicsHandling (WMB.Basics.GetLocalWPMediaRoot ());
			LocalGraphicsHandling.DoCentralStreamDownloadCall += new DoCentralStreamDownloadEvent
				(LocalGraphicsHandling_DoCentralStreamDownloadCall);
			LocalGraphicsHandling.DoSQLBatchCall += new DoSQLBatchEvent (LocalGraphicsHandling_DoSQLBatchCall);
			LocalGraphicsHandling.RemoteWPMediaRoot = WMB.Basics.GetRemoteWPMediaRoot();
			LocalGraphicsHandling.DoCentralFileDownloadCall += new DoCentralFileDownloadEvent
				(LocalGraphicsHandling_DoCentralFileDownloadCall);
			LocalGraphicsHandling.GetLastWriteTimeForServerFileCall += new WMB.GetLastWriteTimeForServerFileEvent
				(LocalGraphicsHandling_GetLastWriteTimeForServerFileCall);
			LocalGraphicsHandling.GetCroppedBitmapSourceCall += new GetCroppedBitmapSourceEvent (LocalGraphicsHandling_GetCroppedBitmapSourceCall);
			m_Pkg = LocalGraphicsHandling.CheckAndGetInstatiatedPackage (m_DataBase, TableToProcess, SelectedID) as PackagingHandler;
			if (m_Pkg == null)
				{
				AvailableEntriesListBox.IsEnabled = true;
				MessageBox.Show ("Fehler in der Definition der Tabelle\r\n\""
								 + TableToProcess + "\"\r\nes konnte kein Package erzeugt werden - Abbruch");
				LastSelectedTableRows = null;
				CloseRequestedCall (this, "FormatierDataSet Fehler bei \"" + TableToProcess + "\"");
				return ;
				}



			FillFinalPages (LocalGraphicsHandling);
			PicturesTabControl.IsEnabled = true;
			AvailableEntriesListBox.IsEnabled = true;
			InsertFromTemplateButton.IsEnabled = true;


			ShowFrameGeometryButton.IsEnabled = true;
			ShowFrameGeometryButton.Content = "Layout/Geometrie";
			FormatModified = true;
			}
		private void CheckAllFunctionality ()
			{
			int CorruptCounter = 0;
			foreach (ListViewItem ItemToProcess in AvailableEntries.Items)
				{
				String PackageToProcessName = ItemToProcess.Tag as String;
				m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
				Pkg = new PackagingHandler ();
				if (Pkg.OpenReadWrite (PackageToProcessName) == null)
					{
					ItemToProcess.Tag = "--- A -" + ItemToProcess.Tag as String;
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				
				m_GraphicsHandling.DoStartupProcessing (Pkg);
				List<double> Durations = m_GraphicsHandling.PageDurations;
				ImageTabControl.Items.Clear ();
				int PageIndex = 0;
				if (m_GraphicsHandling.PageIDsToPlay == null)
					{
					ItemToProcess.Tag = "--- B -" + ItemToProcess.Tag as String;
					Pkg.ClosePackage ();
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				if (m_GraphicsHandling.PageIDsToPlay.Count == 0)
					{
					ItemToProcess.Tag = "--- C -" + ItemToProcess.Tag as String;
					Pkg.ClosePackage ();
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				m_GraphicsHandling.CheckAndRemoveUnuseableMaterials ();
				Pkg.ClosePackage ();

				}
			MessageBox.Show (CorruptCounter.ToString () + " falsche Einträge markiert");
			}
		private void AvailableEntries_MouseDoubleClick (object sender, MouseButtonEventArgs e)
			{
			ListView Items = sender as ListView;
			ListViewItem SelectedItem = (ListViewItem) Items.SelectedItem;
			if (SelectedItem == null)
				return;
			String PackageToProcessName = SelectedItem.Tag as String;
			m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
			Pkg = new PackagingHandler ();
			if (Pkg.OpenReadWrite (PackageToProcessName) == null)
				return;
			m_GraphicsHandling.DoStartupProcessing (Pkg);
			List<double> Durations = m_GraphicsHandling.PageDurations;
			ImageTabControl.Items.Clear ();
			int PageIndex = 0;
			if (m_GraphicsHandling.PageIDsToPlay == null)
				{
				MessageBox.Show ("Fehler", "Keine Pages To Play bei \"" + PackageToProcessName + "\"");
				Pkg.ClosePackage ();
				return;
				}
			foreach (String PageID in m_GraphicsHandling.PageIDsToPlay)
				{
				Image PageImage = new Image ();
				PageImage.Tag = new CVM.RedrawInformation
					(PageID, m_GraphicsHandling.PageOrdersToPlay [PageIndex], PageImage);
				BitmapSource BitmapSourceDrawing = m_GraphicsHandling.GetCreatedFrameBitmapSource (PageImage.Tag as CVM.RedrawInformation);
				TabItem ImageTab = new TabItem ();
				ImageTabControl.Items.Add (ImageTab);
				ImageTab.Header = m_GraphicsHandling.ActuallTableName + " " + Convert.ToString (++PageIndex);
				PageImage.Width = 640;
				PageImage.Height = 360;
				ImageTab.Content = PageImage;
				PageImage.Source = BitmapSourceDrawing;

				}
			Pkg.ClosePackage ();

			}
		private void Window_Loaded (object sender, RoutedEventArgs e)
			{
			WMB.WPMediaApplicationState.Instance.Properties ["DataBase"] = DataAccess;
			DoSpecialCorrection ();
			return;
			DoDefaultCreationForOldPackages ();
			DoPictureRenaming ();
			TestDefaultFilling ();
			//LoadPkgs ();
			PackageFileNames = WMB.Basics.GetFilesFromDirectory (IntermediateStorageDirectory, new string [] {"*.pkg"}, 3);
			foreach (String PackageToProcessName in PackageFileNames)
				{
				m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
				Pkg = new PackagingHandler ();
				if (Pkg.OpenReadWrite (PackageToProcessName) == null)
					continue;
				m_GraphicsHandling.DoStartupProcessing (Pkg);
				ListViewItem Entry = new ListViewItem ();
				Entry.Tag = PackageToProcessName;
				Entry.Content = PackageToProcessName.Replace (IntermediateStorageDirectory, "");
				AvailableEntries.Items.Add (Entry);

// Copy Loop
				List<String> DocumentNames = Pkg.GetOriginalDocumentNamesInPackage ();
				foreach (String DocumentName in DocumentNames)
					{
					if (DocumentName.IndexOf ("BauchBinde") != -1)
						{
						Pkg.CopyFileElement (DocumentName, DocumentName.Replace ("\\\\", "\\")
						                  	.Replace ("BauchBinde", "Content_KP_P03_Frame_02"));
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("Bauchbinde") != -1)
						{
						Pkg.CopyFileElement (DocumentName, DocumentName.Replace ("\\\\", "\\")
											.Replace ("Bauchbinde", "Content_KP_P03_Frame_02"));
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("StandardBackGround") != -1)
						{
						Pkg.DeleteFileElement (DocumentName);
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("Intern_Kalender") != -1)
						{
						Pkg.DeleteFileElement (DocumentName);
						Pkg.FlushPackage ();
						}
					}

// Rename Loop	
				DocumentNames = Pkg.GetOriginalDocumentNamesInPackage ();
				foreach (String DocumentName in DocumentNames)
					{
					String NewName = DocumentName.Replace ("\\\\", "\\");
					int SearchIndex = 0;
					while (SearchIndex < ReplaceFileNames.Length)
						{
						NewName = NewName.Replace (ReplaceFileNames [SearchIndex], ReplaceFileNames [SearchIndex + 1]);
						SearchIndex += 2;
						}

					if (NewName != DocumentName)
						Pkg.RenameFileElement (DocumentName, NewName);
					}

				m_GraphicsHandling.RevertEntryToFileDefault ();

				m_GraphicsHandling.Close ();

				}
			CheckAllFunctionality ();
			}