Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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;
                }
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        private void CloseXamlTab(TabViewModel tab, bool ignoreSaving = false)
        {
            if (!ignoreSaving && (tab.Status & TabStatus.Inner) != TabStatus.Inner)
            {
                if (!FileHelper.Exists(tab.FileName))
                {
                    _dialogService.ShowMessage(string.Format("Save file \"{0}\"?", tab.FileName), MessageButton.YesNo, MessageType.Question, r =>
                    {
                        if (r.Result == ButtonResult.Yes)
                        {
                            var fileName = XVCommon.ShowSaveFileDialog(tab.FileName);
                            if (!string.IsNullOrEmpty(fileName))
                            {
                                tab.UpdateFileName(fileName);
                                tab.SaveToFile();
                            }
                        }
                    });
                }
                else
                {
                    if ((tab.Status & TabStatus.NoSave) == TabStatus.NoSave)
                    {
                        _dialogService.ShowMessage(string.Format("Save file \"{0}\"?", Path.GetFileName(tab.FileName)), MessageButton.YesNo, MessageType.Question, r =>
                        {
                            if (r.Result == ButtonResult.Yes)
                            {
                                tab.SaveToFile();
                            }
                        });
                    }
                }
            }

            Remove(tab);
        }
Ejemplo n.º 10
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);
            }
        }