예제 #1
0
 public static void SaveTab(TabItem SaveTab, SaveFileDialog saveFileDialog)
 {
     if (Controller.Main.tabControl.Visibility == Visibility.Visible)
     {
         Controller.Tab Index = Controller.Main.TabControlList.Find(x => x.TabItem == SaveTab);
         if (Index != null)
         {
             Index.Editor.Save(saveFileDialog.FileName);
             Toggle.UnsavedMark(SaveTab, false);
         }
     }
 }
예제 #2
0
        public static void DoCount(Controller.Tab Index, TextBox SearchBox)
        {
            if (SearchBox != null)
            {
                if (Controller.Search.CurrentSearch != null && Controller.Search.CurrentSearch.Equals(SearchBox.Text, System.StringComparison.CurrentCultureIgnoreCase) == true)
                {
                    StringBuilder ResultText = new StringBuilder();
                    ResultText.Append(Properties.Resources.Result);
                    ResultText.Append(Index.SearchList.Count);

                    SetSearchInfo(ResultText);
                    return;
                }
                else
                {
                    if (Index.SearchList.Count > 0)
                    {
                        Index.SearchList.Clear();
                        Controller.Search.CurrentSearchIndex = 0;
                        Controller.Main.LastIndex            = 1;
                    }
                    Controller.Search.CurrentSearch = SearchBox.Text;
                    if (Index.SearchList != null && Controller.Search.CurrentSearch != null)
                    {
                        Index.SearchList = FindString(Index.Editor, Controller.Search.CurrentSearch, !(Controller.Search.MatchCase.IsChecked.Value));
                        if (Index.SearchList != null && Index.SearchList.Count > 0)
                        {
                            if (Controller.Search.SearchInfo.Visibility == Visibility.Collapsed)
                            {
                                Controller.Search.SearchInfo.Visibility = Visibility.Visible;
                            }
                            StringBuilder ResultText = new StringBuilder();
                            ResultText.Append(Properties.Resources.Result);
                            ResultText.Append(Index.SearchList.Count);

                            SetSearchInfo(ResultText);
                        }
                    }
                }
            }
        }
예제 #3
0
        public static void SaveTab(TabItem SaveTab)
        {
            if (Controller.Main.tabControl.Visibility == Visibility.Visible)
            {
                Controller.Tab Index = Controller.Main.TabControlList.Find(x => x.TabItem == SaveTab);
                if (Index != null)
                {
                    if (!Index.State.HasFlag(Structures.States.Saved))
                    {
                        Index.State |= Structures.States.Saved;
                    }
                    Index.State &= ~Structures.States.Changed;

                    StringBuilder FileToSave = new StringBuilder();
                    FileToSave.Append(SaveTab.Uid);
                    FileToSave.Append(GetTabHeaderText(SaveTab));

                    if (File.Exists(FileToSave.ToString()))
                    {
                        Index.Editor.Save(FileToSave.ToString());
                        FileToSave = null;
                    }
                    else
                    {
                        SaveFileDialog saveFileDialog = new SaveFileDialog()
                        {
                            OverwritePrompt = true,
                            Filter          = Properties.Resources.FileFilter,
                            Title           = Properties.Resources.SaveFile
                        };
                        if (saveFileDialog.ShowDialog() == true)
                        {
                            Tab.SaveTab(SaveTab, saveFileDialog);
                            UpdateTabHeaderText(SaveTab, saveFileDialog.SafeFileName);
                        }
                    }
                    Toggle.UnsavedMark(SaveTab, false);
                }
            }
        }
예제 #4
0
        public static void RemoveTempTabs()
        {
            List <Controller.Tab> tmpTabs = Controller.Main.TabControlList.FindAll(x => x.Tmp == true);

            if (tmpTabs.Count > 0)
            {
                Controller.Tab Index = null;
                Grid           grid  = null;
                for (int i = 0; i != tmpTabs.Count; i++)
                {
                    Index = tmpTabs[i];

                    Index.Editor.Clear();
                    grid         = Index.TabItem.Content as Grid;
                    Index.Editor = null;
                    grid.Children.Remove(Index.Editor);
                    grid = null;
                    Controller.Main.TabControlList.Remove(Index);

                    Index.TabItem.ContextMenu.Items.Clear();
                    Controller.Main.tabControl.Items.Remove(Index.TabItem);
                }
            }
        }
예제 #5
0
        public static void DoSearch(Controller.Tab Index, TextBox SearchBox)
        {
            Index.State |= Structures.States.Searching;
            if (SearchBox != null)
            {
                if (Controller.Search.CurrentSearch != null && Controller.Search.CurrentSearch.Equals(SearchBox.Text, System.StringComparison.CurrentCultureIgnoreCase) == true)
                {
                    Controller.Search.CurrentSearchIndex++;
                    if (Controller.Search.CurrentSearchIndex == Index.SearchList.Count && Controller.Search.WrapAround.IsChecked == true && Controller.Search.WrapedAround == false)
                    {
                        Controller.Search.CurrentSearchIndex = 0;
                        Controller.Search.WrapedAround       = true;
                        Editor.SelectAndBringToView(Index.Editor, Index.SearchList[0].Index, Controller.Search.CurrentSearch.Length);
                        return;
                    }

                    if (Index.SearchList != null && Controller.Search.CurrentSearchIndex < Index.SearchList.Count)
                    {
                        if (Controller.Search.WrapedAround == true && Controller.Search.WrapAround.IsChecked == true)
                        {
                            if (Controller.Search.FirstIndex == Controller.Search.CurrentSearchIndex)
                            {
                                Controller.Search.CurrentSearchIndex = Index.SearchList.Count;
                                SetSearchInfo(Properties.Resources.NoFurtherResult);
                                return;
                            }
                        }
                        Editor.SelectAndBringToView(Index.Editor, Index.SearchList[Controller.Search.CurrentSearchIndex].Index, Controller.Search.CurrentSearch.Length);
                    }
                    else
                    {
                        Controller.Search.CurrentSearchIndex = Index.SearchList.Count;
                        SetSearchInfo(Properties.Resources.NoFurtherResult);
                    }
                }
                else
                {
                    if (Index.SearchList != null && Index.SearchList.Count > 0)
                    {
                        Index.SearchList.Clear();
                    }

                    Controller.Search.CurrentSearchIndex = 0;
                    Controller.Main.LastIndex            = 0;
                    Controller.Search.CurrentSearch      = SearchBox.Text;
                    Controller.Search.FirstIndex         = 0;

                    if (Controller.Search.CurrentSearch != null)
                    {
                        Index.SearchList = FindString(Index.Editor, Controller.Search.CurrentSearch, !(Controller.Search.MatchCase.IsChecked.Value));
                        if (Index.SearchList != null && Index.SearchList.Count > 0)
                        {
                            for (int i = 0; i != Index.SearchList.Count; i++)
                            {
                                if (Index.SearchList[i].Index > Controller.Search.SearchBeginOffset)
                                {
                                    Controller.Search.CurrentSearchIndex = i;
                                    Controller.Search.FirstIndex         = i;
                                    break;
                                }
                            }

                            Editor.SelectAndBringToView(Index.Editor, Index.SearchList[Controller.Search.CurrentSearchIndex].Index, Controller.Search.CurrentSearch.Length);

                            StringBuilder ResultText = new StringBuilder();
                            ResultText.Append(Properties.Resources.Result);
                            ResultText.Append(Index.SearchList.Count);

                            SetSearchInfo(ResultText);
                        }
                        else
                        {
                            SetSearchInfo(Properties.Resources.NoResult);
                        }
                    }
                }
            }
            Index.State &= ~Structures.States.Searching;
        }