private void Open(string[] files) { var length = files.Length; for (int i = 0; i < length; i++) { var fileName = files[i]; var tab = XamlTabs.FirstOrDefault(t => t.FileName == fileName); if (tab != null) { if (i == length - 1) { tab.IsSelected = true; MoveToVisible(tab); } } else { tab = new TabViewModel(fileName, CloseXamlTab); XamlTabs.Insert(0, tab); if (i == length - 1) { tab.IsSelected = true; } } } }
private void Remove(TabViewModel tab) { if (tab == null) { return; } var index = XamlTabs.IndexOf(tab); if (index > -1) { XamlTabs.RemoveAt(index); } if (XamlTabs.Count == 0) { New(); } else { if (tab.IsSelected) { XamlTabs[Math.Max(0, index - 1)].IsSelected = true; } } _appData.Config.Files.RemoveAll(f => f == tab.FileName); }
private void SizeChanged(SizeChangedEventArgs e) { var itemsControl = e.Source as ItemsControl; if (itemsControl == null) { return; } for (var i = 0; i < XamlTabs.Count; i++) { var curTab = XamlTabs[i]; if (!curTab.IsSelected) { continue; } var container = (UIElement)itemsControl.ItemContainerGenerator.ContainerFromIndex(i); if (container == null) { return; } if (DoubleUtil.LessThan(container.TranslatePoint(new Point(), itemsControl).Y, itemsControl.ActualHeight)) { return; } XamlTabs.Move(i, i - 1); return; } }
private void Open() { var ofd = new SWF.OpenFileDialog { Filter = "XAML|*.xaml", Multiselect = true }; if (ofd.ShowDialog() == SWF.DialogResult.OK) { var length = ofd.FileNames.Length; for (int i = 0; i < length; i++) { var fileName = ofd.FileNames[i]; var tab = XamlTabs.FirstOrDefault(t => t.FileName == fileName); if (tab != null) { if (i == length - 1) { tab.IsSelected = true; MoveToVisible(tab); } } else { tab = new TabViewModel(fileName, CloseXamlTab); XamlTabs.Insert(0, tab); if (i == length - 1) { tab.IsSelected = true; } } } } }
private void New() { var newTab = new TabViewModel( XUCommon.GetCopyName("NewFile", " ", n => XamlTabs.Any(tab => Path.GetFileNameWithoutExtension(tab.Title).ToLower() == n.ToLower())) + ".xaml", TabStatus.NoSave, CloseXamlTab); XamlTabs.Insert(0, newTab); newTab.IsSelected = true; }
private void Help() { var helpTab = XamlTabs.FirstOrDefault(tab => (tab.Status & TabStatus.Inner) == TabStatus.Inner && tab.FileName == InternalConstStrings.HelpFileName); if (helpTab == null) { helpTab = new TabViewModel(InternalConstStrings.HelpFileName, TabStatus.Inner, CloseXamlTab, false); XamlTabs.Insert(0, helpTab); helpTab.IsSelected = true; } else { helpTab.IsSelected = true; MoveToVisible(helpTab); } }
private void Help() { var helpTab = XamlTabs.FirstOrDefault(tab => (tab.Status & TabStatus.Inner) == TabStatus.Inner); if (helpTab == null) { helpTab = new TabViewModel("Help.xaml", TabStatus.Inner, CloseXamlTab); XamlTabs.Insert(0, helpTab); helpTab.IsSelected = true; } else { helpTab.IsSelected = true; MoveToVisible(helpTab); } }
private void OnInitWorkArea() { _isWorkAreaIniting = true; NewCommand.RaiseCanExecuteChanged(); OpenCommand.RaiseCanExecuteChanged(); SaveAllCommand.RaiseCanExecuteChanged(); //Work Area var selectedTab = XamlTabs.FirstOrDefault(tab => tab.IsSelected); selectedTab?.InitWorkArea(); _isWorkAreaIniting = false; NewCommand.RaiseCanExecuteChanged(); OpenCommand.RaiseCanExecuteChanged(); SaveAllCommand.RaiseCanExecuteChanged(); }
private async Task DealExistedFile() { var validTabs = XamlTabs.Where(tab => FileHelper.Exists(tab.FileName)); var noSavedTabs = validTabs.Where(tab => (tab.Status & TabStatus.NoSave) == TabStatus.NoSave).ToList(); if (noSavedTabs.Count > 0) { await Task.Run(() => { _appCommands.SaveAllCommand.Execute(true); while (noSavedTabs.Any(tab => (tab.Status & TabStatus.NoSave) == TabStatus.NoSave)) { Task.Delay(200); } }); } _appData.Config.Files = validTabs.Select(tab => tab.FileName).ToList(); }
private void Open() { var ofd = new SWF.OpenFileDialog { Filter = "XAML|*.xaml" }; if (ofd.ShowDialog() == SWF.DialogResult.OK) { var tab = XamlTabs.FirstOrDefault(t => t.FileName == ofd.FileName); if (tab != null) { tab.IsSelected = true; MoveToVisible(tab); } else { var newTab = new TabViewModel(ofd.FileName, CloseXamlTab); XamlTabs.Insert(0, newTab); newTab.IsSelected = true; } } }
private void MoveToVisible(TabViewModel curTab) { if (_itemsControl == null || curTab == null) { return; } var container = (UIElement)_itemsControl.ItemContainerGenerator.ContainerFromItem(curTab); if (container == null) { return; } if (DoubleUtil.LessThan(container.TranslatePoint(new Point(), _itemsControl).Y, _itemsControl.ActualHeight)) { return; } var idnex = _itemsControl.ItemContainerGenerator.IndexFromContainer(container); XamlTabs.Move(idnex, 0); }
private void Example(int?type) { if (type == null || !ResourcesMap.ExampleFileNameDic.ContainsKey(type.Value)) { return; } var fileName = ResourcesMap.ExampleFileNameDic[type.Value]; var exampleTab = XamlTabs.FirstOrDefault(tab => (tab.Status & TabStatus.Inner) == TabStatus.Inner && tab.FileName == fileName); if (exampleTab == null) { exampleTab = new TabViewModel(fileName, TabStatus.Inner, CloseXamlTab); XamlTabs.Insert(0, exampleTab); exampleTab.IsSelected = true; } else { exampleTab.IsSelected = true; MoveToVisible(exampleTab); } }
private void CollectExistedFile() { _appData.Config.Files = XamlTabs.Where(tab => File.Exists(tab.FileName)).Select(tab => tab.FileName).ToList(); }