public WatchedFile(String name, String path, ObservableCollection <Tag> tags, ObservableCollection <WatchedFile> subitems) { Subs = WatchedFile.Sort(subitems); Name = name; Path = path; Tags = tags; }
internal static ViewModels.WatchedFile refeshFilesInView(ViewModels.WatchedFile fileSource) { ViewModels.WatchedFile wf = new ViewModels.WatchedFile(fileSource.Name, fileSource.Path, fileSource.Tags, new ObservableCollection <ViewModels.WatchedFile>()); foreach (ViewModels.Tag t in wf.Tags) { if (!allTags.Contains(t)) { allTags.Add(t); } } foreach (ViewModels.WatchedFile subs in fileSource.Subs) { wf.Subs.Add(refeshFilesInView(subs)); } return(wf); }
private void changeItem(ViewModels.WatchedFile item) { if (string.IsNullOrEmpty(selectedWF.Path) || string.IsNullOrWhiteSpace(selectedWF.Path)) { selectedWF.Name = item.Name; } else { selectedWF.Path = item.Path; selectedWF.Name = item.Name; selectedWF.Tags.Clear(); foreach (ViewModels.Tag tag in item.Tags) { selectedWF.Tags.Add(tag); } } selectedWF = null; TV.AllowDrop = true; }
public ChangeFile(List <ViewModels.Tag> AllTags, ViewModels.WatchedFile file) { InitializeComponent(); allTags = AllTags; if (file == null) { Title = "Select File"; B_SelectFile.Content = "Select File"; file = new ViewModels.WatchedFile("name not set", "no path selected", new System.Collections.ObjectModel.ObservableCollection <ViewModels.Tag>(), new System.Collections.ObjectModel.ObservableCollection <ViewModels.WatchedFile>()); } else { Title = "Change File"; B_SelectFile.Content = "Change File"; } sourceFile = file; Loaded += ChangeFile_Loaded; TagsChanged += ChangeFile_TagsChanged; TagsChanged(this, new EventArgs()); }
internal static ViewModels.MainViewModel loadFiles() { allTags.Clear(); BinaryFormatter formatter = new BinaryFormatter(); ViewModels.MainViewModel mvm1 = new ViewModels.MainViewModel(); if (File.Exists(@"testbin.xml")) { FileStream fs_open = new FileStream(@"testbin.xml", FileMode.Open); foreach (ViewModels.WatchedFile file in ((ViewModels.MainViewModel)formatter.Deserialize(fs_open)).WatchedFiles) { ViewModels.WatchedFile wf = new ViewModels.WatchedFile(file.Name, file.Path, file.Tags, new ObservableCollection <ViewModels.WatchedFile>()); foreach (ViewModels.WatchedFile subs in file.Subs) { wf.Subs.Add(refeshFilesInView(subs)); } mvm1.WatchedFiles.Add(wf); } fs_open.Close(); } return(mvm1); }
private void Mi_RemoveItem_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(selectedWF.Path) || string.IsNullOrWhiteSpace(selectedWF.Path)) { if (MessageBox.Show("The chosen object is a folder. Deletion will remove all logical sub folders and files.", "Delete folder and sub items", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel) != MessageBoxResult.OK) { return; } } else { if (MessageBox.Show("Do you really want to remove the item?", "Delete item", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel) != MessageBoxResult.OK) { return; } } removeFolder(mvm.WatchedFiles, selectedWF); selectedWF = null; }
private ViewModels.MainViewModel testPopulate() { ViewModels.MainViewModel mvm2 = new ViewModels.MainViewModel(); for (int i = 1; i < 7; i++) { ViewModels.WatchedFile wf_level1 = new ViewModels.WatchedFile("lev1" + i.ToString(), "", new ObservableCollection <ViewModels.Tag>(), new ObservableCollection <ViewModels.WatchedFile>()); if (i % 2 == 0) { ViewModels.WatchedFile wf_level2 = new ViewModels.WatchedFile("lev2" + i.ToString(), "", new ObservableCollection <ViewModels.Tag>(), new ObservableCollection <ViewModels.WatchedFile>()); if (i % 4 == 0) { for (int j = 1; j < 3; j++) { ViewModels.WatchedFile wf_level3 = new ViewModels.WatchedFile("lev3_" + i.ToString() + "_" + j.ToString(), "lev3_" + j.ToString(), new ObservableCollection <ViewModels.Tag>(), new ObservableCollection <ViewModels.WatchedFile>()); wf_level2.Subs.Add(wf_level3); } } wf_level1.Subs.Add(wf_level2); } mvm2.WatchedFiles.Add(wf_level1); } return(mvm2); }
private void StackPanel_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { TV.AllowDrop = false; doDragDrop = false; selectedWF = (ViewModels.WatchedFile)(((StackPanel)sender).DataContext); ContextMenu cm_Stack = new ContextMenu(); MenuItem mi_RemoveItem = new MenuItem(); mi_RemoveItem.Header = "RemoveItem"; mi_RemoveItem.Click += Mi_RemoveItem_Click; cm_Stack.Items.Add(mi_RemoveItem); if (string.IsNullOrEmpty(selectedWF.Path)) { MenuItem mi_AddFolder = new MenuItem(); mi_AddFolder.Header = "Add folder"; mi_AddFolder.Click += Mi_AddFolder_Click; MenuItem mi_ChangeFolder = new MenuItem(); mi_AddFolder.Header = "Change folder"; mi_AddFolder.Click += Mi_ChangeFolder_Click; MenuItem mi_AddFile = new MenuItem(); mi_AddFile.Header = "Add file"; mi_AddFile.Click += Mi_AddFile_Click; cm_Stack.Items.Add(mi_AddFolder); cm_Stack.Items.Add(mi_AddFile); } if (!string.IsNullOrEmpty(selectedWF.Path)) { MenuItem mi_ChangeFile = new MenuItem(); mi_ChangeFile.Header = "Change file"; mi_ChangeFile.Click += Mi_ChangeFile_Click; cm_Stack.Items.Add(mi_ChangeFile); } cm_Stack.IsOpen = true; }
void TV_Drop(object sender, DragEventArgs e) { if (!doDragDrop) { return; } //DependencyObject uie = TV_Sort.InputHitTest(e.GetPosition(TV_Sort)) as DependencyObject; ViewModels.WatchedFile dragItem = e.Data.GetData(typeof(ViewModels.WatchedFile)) as ViewModels.WatchedFile; if (dragItem == null) { return; } ViewModels.WatchedFile dropOnItem = null; ObservableCollection <ViewModels.WatchedFile> dropOnList = null; switch (((DependencyObject)e.OriginalSource).DependencyObjectType.SystemType.Name) { case "TextBlock": dropOnItem = (e.OriginalSource as TextBlock).DataContext as ViewModels.WatchedFile; break; case "Image": dropOnItem = (e.OriginalSource as Image).DataContext as ViewModels.WatchedFile; break; case "Border": dropOnItem = (e.OriginalSource as Border).DataContext as ViewModels.WatchedFile; break; default: if (e.OriginalSource is Grid) { dropOnList = (e.OriginalSource as Grid).DataContext as ObservableCollection <ViewModels.WatchedFile>; } else { return; } break; } if (dropOnItem != null) { if (dropOnItem == dragItem) { return; } if (!string.IsNullOrEmpty(dropOnItem.Path)) { MessageBox.Show("You cant drop something on another file, drop it on a folder instead."); return; } FileHandling.removeFileFromWatchList(mvm.WatchedFiles, dragItem); doDragDrop = true; dropOnItem.Subs.Add(dragItem); foreach (ViewModels.WatchedFile file in mvm.WatchedFiles) { FileHandling.refeshFilesInView(file); } e.Handled = true; } else //if (dropOnList == null) { FileHandling.removeFileFromWatchList(mvm.WatchedFiles, dragItem); doDragDrop = true; mvm.WatchedFiles.Add(dragItem); e.Handled = true; } doDragDrop = false; }
private void _watchedFiles_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { WatchedFiles = WatchedFile.Sort(WatchedFiles); }
private void TV_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { if (TV.SelectedItem != null) { ViewModels.WatchedFile selected = ((ViewModels.WatchedFile)TV.SelectedItem); B_Explorer.Visibility = Visibility.Collapsed; B_Open.Visibility = Visibility.Collapsed; G_Show.Children.Clear(); if (!string.IsNullOrEmpty(selected.Path)) { if (!File.Exists(selected.Path)) { if (MessageBox.Show("Die Datei wurde gelöscht oder verschoben. Wollen sie die Datei aus der Liste entfernen?", "Datei nicht gefunden", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes) { FileHandling.removeFileFromWatchList(mvm.WatchedFiles, selected); doDragDrop = true; } return; } if (selected.Path.EndsWith("txt") || selected.Path.EndsWith("xml") || selected.Path.EndsWith("xsd")) { B_Explorer.Visibility = Visibility.Visible; B_Open.Visibility = Visibility.Visible; Rectangle r = new Rectangle(); r.Margin = new Thickness(0); r.Stroke = new SolidColorBrush(Colors.Gray); r.StrokeThickness = 1; ScrollViewer sv = new ScrollViewer(); sv.Margin = new Thickness(1); sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; sv.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; TextBlock TB = new TextBlock(); TB.Margin = new Thickness(0); TB.Text = File.ReadAllText(selected.Path); sv.Content = TB; G_Show.Children.Add(sv); G_Show.Children.Add(r); } else if (selected.Path.EndsWith("pdf")) { B_Explorer.Visibility = Visibility.Visible; B_Open.Visibility = Visibility.Visible; Rectangle r = new Rectangle(); r.Margin = new Thickness(0); r.Stroke = new SolidColorBrush(Colors.Gray); r.StrokeThickness = 1; ScrollViewer sv = new ScrollViewer(); sv.Margin = new Thickness(1); sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; sv.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; WebBrowser WB = new WebBrowser(); WB.Margin = new Thickness(0); WB.Navigate("file:///" + selected.Path); sv.Content = WB; G_Show.Children.Add(sv); G_Show.Children.Add(r); } } } }
private void removeFolder(ObservableCollection <WatchedFile.ViewModels.WatchedFile> folderCollection, WatchedFile.ViewModels.WatchedFile folderToRemove) { folderCollection.Remove(folderToRemove); foreach (WatchedFile.ViewModels.WatchedFile folder in folderCollection) { removeFolder(folder.Subs, folderToRemove); } doDragDrop = true; }