示例#1
0
 public XCommand()
 {
     ActionOpen      = new ActionOpen(this);
     ActionSave      = new ActionSave(this);
     ActionAddTab    = new ActionAddTab(this);
     ActionSelectTab = new ActionSelectTab(this);
     ActionLanguage  = new ActionLanguage(this);
 }
示例#2
0
    /// <summary>
    /// Processes the command key.
    /// </summary>
    /// <seealso cref="M:System.Windows.Forms.Form.ProcessCmdKey(Message@,Keys)"/>
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (Globals.IsReady)
        {
            switch (keyData)
            {
            // Top menu system
            case Keys.Alt | Keys.S:
                ActionSettings.ShowDropDown();
                return(true);

            case Keys.Alt | Keys.I:
                ActionInformation.ShowDropDown();
                return(true);

            case Keys.F9:
                ActionPreferences.PerformClick();
                return(true);

            case Keys.Alt | Keys.Control | Keys.F4:
                ActionExit.PerformClick();
                return(true);

            case Keys.Escape:
                if (!EditESCtoExit.Checked || EditMeanings.IsCurrentCellInEditMode)
                {
                    break;
                }
                ActionExit.PerformClick();
                return(true);

            // Rotate view
            case Keys.Control | Keys.Shift | Keys.Tab:
                if (Globals.AllowClose)
                {
                    SetView(Settings.CurrentView.Previous(ViewMode.Notebook));// TODO notebook remove when ready
                }
                return(true);

            case Keys.Control | Keys.Tab:
                if (Globals.AllowClose)
                {
                    SetView(Settings.CurrentView.Next(ViewMode.Notebook));// TODO notebook remove when ready
                }
                return(true);

            // Change view
            case Keys.F1:
                ActionViewAnalysis.PerformClick();
                return(true);

            case Keys.F2:
                ActionViewLetters.PerformClick();
                return(true);

            case Keys.F3:
                if (!Globals.IsDebugExecutable)
                {
                    break;                         // TODO remove when ready
                }
                ActionViewNotebook.PerformClick();
                return(true);

            // Application functions
            case Keys.F5:
            case Keys.Control | Keys.F:
                ActionSearchTerm.PerformClick();
                return(true);

            case Keys.Control | Keys.N:
                ActionNewInstance.PerformClick();
                return(true);

            // Top menu system
            case Keys.Alt | Keys.T:
                ActionTools.ShowDropDown();
                return(true);

            case Keys.Alt | Keys.L:
                if (ActionWebLinks.Enabled)
                {
                    ActionWebLinks.ShowDropDown();
                }
                return(true);

            // Data edition
            case Keys.Control | Keys.S:
                ActionSave.PerformClick();
                return(true);

            case Keys.Control | Keys.Back:
                ActionUndo.Focus();
                ActionUndo.PerformClick();
                return(true);
            }
        }
        // Letters navigation
        if (Globals.AllowClose && Settings.CurrentView == ViewMode.Letters)
        {
            switch (keyData)
            {
            case Keys.Control | Keys.Home:
                LettersNavigator.ActionFirst.PerformClick();
                return(true);

            case Keys.Control | Keys.End:
                LettersNavigator.ActionLast.PerformClick();
                return(true);

            case Keys.Control | Keys.PageUp:
                LettersNavigator.ActionPrevious.PerformClick();
                return(true);

            case Keys.Control | Keys.PageDown:
                LettersNavigator.ActionNext.PerformClick();
                return(true);
            }
        }
        return(base.ProcessCmdKey(ref msg, keyData));
    }
示例#3
0
        public SaveAction()
        {
            //Sprawdzamy czy wszystko jest dozwolone do zapisu i czy czegoś nie brakuje;
            if (!CheckPermisionToSave())
            {
                return;
            }

            if (ActionID.Singleton.ID != 0)
            {
                ActionDB NewAction;
                OriginalAction = ActionController.Load_ID(ActionID.Singleton.ID);
                NewAction      = ActionSave.Save();

                if (ActionID.Singleton.ActionModification)
                {
                    ActionController.ModificationAction(OriginalAction, NewAction);
                    //ActionID.Delete();
                    ActionID.Singleton.ID = NewAction.ID;
                }

                //Jeśli zmianie ulegają ANC to tedy ma działać
                if (ActionID.Singleton.ANCModification)
                {
                    IEnumerable <ANCChangeDB> ANCs = ANCChangeSave.ANCSave();
                    if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                    {
                        ANCChangeController.UpdateANC(OriginalAction.ID, NewAction.ID, ANCs);
                    }
                    else
                    {
                        ANCChangeController.UpdateANC(OriginalAction.ID, OriginalAction.ID, ANCs);
                    }
                }
                else
                {
                    //Update tylko ID akcji
                    if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                    {
                        ANCChangeController.UpdateActionID(OriginalAction.ID, NewAction.ID);
                    }
                }

                //Jeśli jest zmiana w Mass Calculation to ma coś zmienić
                if (ActionID.Singleton.MassModification)
                {
                    if (NewAction.Group_Calc && OriginalAction.Group_Calc)
                    {
                        CalculationMassDB Mass = CalculationMassSave.Mass();
                        if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                        {
                            CalculationMassController.Update(OriginalAction.ID, NewAction.ID, Mass);
                        }
                        else
                        {
                            CalculationMassController.Update(OriginalAction.ID, OriginalAction.ID, Mass);
                        }
                    }
                    else if (NewAction.Group_Calc && !OriginalAction.Group_Calc)
                    {
                        CalculationMassDB Mass = CalculationMassSave.Mass();

                        Mass.ActionID = NewAction.ID;
                        CalculationMassController.Add(Mass);
                    }
                    else if (!NewAction.Group_Calc && OriginalAction.Group_Calc)
                    {
                        CalculationMassController.Deactivation(OriginalAction.ID);
                    }
                }
                else
                {
                    if (OriginalAction.Group_Calc)
                    {
                        //Update tylko ID akcji
                        if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                        {
                            ANCChangeController.UpdateActionID(OriginalAction.ID, NewAction.ID);
                        }
                    }
                }

                //Jeśli jest zmiania w liście PNC to ma zmienic
                if (ActionID.Singleton.PNCModification)
                {
                    if (NewAction.PNC && OriginalAction.PNC)
                    {
                        IEnumerable <PNCListDB> PNCList = PNCSave.Save();
                        if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                        {
                            PNCListController.UpatePNCList(OriginalAction.ID, NewAction.ID, PNCList);
                        }
                        else
                        {
                            PNCListController.UpatePNCList(OriginalAction.ID, OriginalAction.ID, PNCList);
                        }
                    }
                    else if (NewAction.PNC && !OriginalAction.PNC)
                    {
                        IEnumerable <PNCListDB> PNCList = PNCSave.Save();
                        foreach (PNCListDB PNC in PNCList)
                        {
                            PNC.ActionID = NewAction.ID;
                        }

                        PNCListController.Add(PNCList);
                    }
                    else if (!NewAction.PNC && OriginalAction.PNC)
                    {
                        PNCListController.Deactivation(OriginalAction.ID);
                    }
                }
                else
                {
                    //Update tylko ID akcji
                    if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                    {
                        PNCListController.UpdateID(OriginalAction.ID, NewAction.ID);
                    }
                }

                if (ActionID.Singleton.PNCSpecModification)
                {
                    if (NewAction.PNCSpec && OriginalAction.PNCSpec)
                    {//Update
                        IEnumerable <PNCSpecialDB> List = PNCSpecialSave.Save();
                        if (OriginalAction.ID != NewAction.ID && NewAction.ID != 0)
                        {
                            PNCSpecialController.UpdateList(List, OriginalAction.ID, NewAction.ID);
                        }
                        else
                        {
                            PNCSpecialController.UpdateList(List, OriginalAction.ID, OriginalAction.ID);
                        }
                    }
                    else if (NewAction.PNCSpec && !OriginalAction.PNCSpec)
                    {//Nowe
                        IEnumerable <PNCSpecialDB> List = PNCSpecialSave.Save();
                        foreach (PNCSpecialDB PNC in List)
                        {
                            PNC.ActionID = NewAction.ID;
                        }
                        PNCSpecialController.Add(List);
                    }
                    else if (!NewAction.PNCSpec && OriginalAction.PNCSpec)
                    {//Usuwamy
                        PNCSpecialController.Deactivation(OriginalAction.ID);
                    }
                }
            }
            else
            {
                ActionDB ActionToSave = ActionSave.Save();
                ActionToSave.Rev = 1;
                ActionToSave.ActionIDOriginal = 0;
                ActionController.NewAction(ActionToSave);
                OriginalAction = ActionController.FindAction(ActionToSave.Name, ActionToSave.StartYear);

                //IEnumerable<ANCChangeDB> ListANC = ANCChangeSave.ANCSave();
                //foreach(var ANC in ListANC)
                //{
                //    ANC.ActionID = OriginalAction.ID;
                //    ANC.Rev = 1;
                //}
                //ANCChangeController.Add(ListANC);

                //if (OriginalAction.ANCSpec)
                //{
                //    CalculationMassDB MassList = CalculationMassSave.Mass();
                //    MassList.ActionID = OriginalAction.ID;
                //    MassList.Rev = 1;
                //    CalculationMassController.Add(MassList);
                //}
                //else if(OriginalAction.PNC)
                //{
                //    IEnumerable<PNCListDB> PNCList = PNCSave.Save();
                //    foreach(var Row in PNCList)
                //    {
                //        Row.ActionID = OriginalAction.ID;
                //        Row.Rev = 1;
                //    }
                //}
                //else if(OriginalAction.PNCSpec)
                //{
                //    IEnumerable<PNCSpecialDB> PNCSpecialList = PNCSpecialSave.Save();
                //    foreach(var Row in PNCSpecialList)
                //    {
                //        Row.ActionID = OriginalAction.ID;
                //        Row.Rev = 1;
                //    }
                //}
            }
        }
示例#4
0
    public void SetView(ViewMode view, bool first)
    {
        var viewPanels = new Dictionary <ViewMode, ViewConnector>
        {
            {
                ViewMode.ChapterVerses,
                new ViewConnector
                {
                    MenuItem = ActionViewVerses,
                    Panel    = PanelViewVerses,
                    Focused  = PanelViewVerses
                }
            },
            {
                ViewMode.VerseFiltered,
                new ViewConnector
                {
                    MenuItem = ActionViewVerseFiltered,
                    Panel    = PanelViewVerseFiltered,
                    Focused  = PanelViewVerseFiltered
                }
            },
            {
                ViewMode.ChapterTranslation,
                new ViewConnector
                {
                    MenuItem = ActionViewTranslations,
                    Panel    = PanelViewTranslations,
                    Focused  = TextBoxTranslations
                }
            },
            {
                ViewMode.ChapterOriginal,
                new ViewConnector
                {
                    MenuItem = ActionViewRawText,
                    Panel    = PanelViewOriginalText,
                    Focused  = EditChapterOriginal
                }
            },
            {
                ViewMode.BookELS50,
                new ViewConnector
                {
                    MenuItem = ActionViewELS50,
                    Panel    = PanelViewELS50,
                    Focused  = EditChapterELS50
                }
            },
            {
                ViewMode.Search,
                new ViewConnector
                {
                    MenuItem = ActionViewSearch,
                    Panel    = PanelViewSearch,
                    Focused  = SelectSearchType
                }
            }
        };

        if (Settings.CurrentView == view && !first)
        {
            if (Settings.CurrentView == ViewMode.Search)
            {
                RotateSearchTab();
            }
            return;
        }
        checkFirst();
        viewPanels[Settings.CurrentView].MenuItem.Checked = false;
        viewPanels[Settings.CurrentView].Panel.Parent     = null;
        viewPanels[view].MenuItem.Checked = true;
        viewPanels[view].Panel.Parent     = PanelMainCenter;
        if (view != ViewMode.Search)
        {
            viewPanels[view].Focused?.Focus();
        }
        Settings.CurrentView = view;
        updateControls();
        switch (view)
        {
        case ViewMode.ChapterVerses:
        case ViewMode.ChapterOriginal:
        case ViewMode.ChapterTranslation:
        case ViewMode.BookELS50:
            SetTanakItemFocus();
            break;

        case ViewMode.Search:
            SelectSearchType_Selected(null, null);
            break;

        case ViewMode.VerseFiltered:
            VerseControl.ResetMetricsRequired = true;
            WordControl.ResetMetricsRequired  = true;
            RenderVerseFiltered();
            break;
        }
        //
        void checkFirst()
        {
            if (first)
            {
                UpdateFilters(null, null);
                SelectSearchType.SelectedIndex = Settings.CurrentSearchTypeTab;
                setRadio(SelectSearchTypeTranslation, Settings.SearchTranslationRadioButtonIndex);
                setRadio(SelectSearchTypeVerses, Settings.SearchVerseRadioButtonIndex);
                void setRadio(TabPage page, int index)
                {
                    var radio = page.Controls.OfType <RadioButton>().FirstOrDefault(c => c.TabIndex == index);

                    if (radio is not null)
                    {
                        radio.Checked = true;
                    }
                }
            }
            else
            {
                ActionSave.PerformClick();
                if (!Settings.RenderAllChapterVersesKeep && Settings.RenderAllChapterVerses)
                {
                    if (view == ViewMode.VerseFiltered || view == ViewMode.Search)
                    {
                        Settings.RenderAllChapterVerses = false;
                    }
                }
            }
        }

        //
        void updateControls()
        {
            LabelTitle.Text = AppTranslations.ViewPanelTitle.GetLang(view).ToUpper();
            LabelTitle.Refresh();
            //
            PanelNavigation.Visible = view != ViewMode.VerseFiltered && view != ViewMode.Search;
            PanelMain.Refresh();
            //
            ActionCopyToClipboard.Enabled = view == ViewMode.ChapterTranslation || view == ViewMode.ChapterOriginal || view == ViewMode.BookELS50;
            SelectRenderAllVerses.Enabled = view == ViewMode.ChapterVerses;
            ActionExportBook.Enabled      = PanelNavigation.Visible;
            ActionExportChapter.Enabled   = PanelNavigation.Visible;
            //
            SelectBook.Enabled          = PanelNavigation.Visible;
            SelectBookNavigator.Enabled = SelectBook.Enabled;
            LabelSelectBook.Enabled     = SelectBook.Enabled;
            EditBookTranslation.Enabled = SelectBook.Enabled;
            ActionEditBookMemo.Enabled  = SelectBook.Enabled;
            //
            SelectChapter.Enabled          = PanelNavigation.Visible;
            SelectChapterNavigator.Enabled = SelectChapter.Enabled;
            LabelSelectChapter.Enabled     = SelectChapter.Enabled;
            EditChapterTitle.Enabled       = SelectChapter.Enabled;
            EditChapterMemo.Enabled        = SelectChapter.Enabled;
            //
            SelectVerse.Enabled          = PanelNavigation.Visible && view != ViewMode.BookELS50;
            SelectVerseNavigator.Enabled = SelectVerse.Enabled;
            LabelSelectVerse.Enabled     = SelectVerse.Enabled;
            ActionSearchVerse.Enabled    = SelectVerse.Enabled;
            //
            UpdateHistoryButtons();
        }
    }
示例#5
0
        public SaveAsWindowDialog(string nameQuery)
        {
            Background            = new SolidColorBrush(SystemColors.ControlColor);
            WindowStartupLocation = WindowStartupLocation.Manual;
            SizeToContent         = SizeToContent.WidthAndHeight;

            ResizeMode    = ResizeMode.NoResize;
            ShowInTaskbar = false;
            Title         = "Save Dialog";

            Action = ActionSave.NotSave;

            var border = new Border {
                BorderThickness = new Thickness(0), BorderBrush = Brushes.Gray
            };

            var root = new StackPanel {
                Margin = new Thickness(10)
            };

            border.Child = root;
            Content      = border;

            var message = new TextBlock
            {
                Text = "Save changes to the [" + nameQuery + "]?",
                HorizontalAlignment = HorizontalAlignment.Center
            };

            var bottomStack = new StackPanel
            {
                Orientation         = Orientation.Horizontal,
                HorizontalAlignment = HorizontalAlignment.Center,
                Margin = new Thickness(0, 10, 0, 0)
            };

            var buttonSaveFile = new Button {
                Width = WIDTH_BUTTON, Content = "Save to file..."
            };

            buttonSaveFile.Click += delegate
            {
                Action = ActionSave.File;
                Close();
            };

            var buttonSaveUserQuery = new Button
            {
                Width   = WIDTH_BUTTON,
                Content = "Save as User Query",
                Margin  = new Thickness(5, 0, 5, 0)
            };

            buttonSaveUserQuery.Click += delegate
            {
                Action = ActionSave.UserQuery;
                Close();
            };

            var buttonNotSave = new Button
            {
                Width   = WIDTH_BUTTON,
                Content = "Don't save",
                Margin  = new Thickness(0, 0, 5, 0)
            };

            buttonNotSave.Click += delegate
            {
                Action = ActionSave.NotSave;
                Close();
            };


            var buttonCancel = new Button {
                Width = WIDTH_BUTTON, Content = "Cancel"
            };

            buttonCancel.Click += delegate
            {
                Action = ActionSave.Continue;
                Close();
            };

            root.Children.Add(message);
            root.Children.Add(bottomStack);

            bottomStack.Children.Add(buttonSaveFile);
            bottomStack.Children.Add(buttonSaveUserQuery);
            bottomStack.Children.Add(buttonNotSave);
            bottomStack.Children.Add(buttonCancel);
        }
 private void SaveBtnClick(object sender, EventArgs e)
 {
     ActionSave?.Invoke(sender, new ActionSaveEventArgs());
 }