protected void onGroupFieldChange()
        {
            ReconciliationFilterTemplateEditorItem page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();
            string name  = page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.textBox.Text;
            BGroup group = page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.Group;

            ((ReconciliationFilterTemplateSideBar)SideBar).TemplateGroup.TemplateTreeview.updateTemplate(name, page.Title, true);
            page.EditedObject.group = group;
            OnChange();
        }
        protected virtual void UpdateGridForm(ReconciliationFilterTemplateBottomGrid grid)
        {
            ReconciliationFilterTemplateEditorItem page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            page.getForm().EditedObject = page.EditedObject;
            grid.displayObject();
        }
        protected override void Rename(string name)
        {
            ReconciliationFilterTemplateEditorItem page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Text = name;
            //page.EditedObject.name = name;
            base.Rename(name);
        }
        public override Misp.Kernel.Domain.SubjectType SubjectTypeFound()
        {
            ReconciliationFilterTemplateEditorItem editorPage = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            if (editorPage == null)
            {
                return(Misp.Kernel.Domain.SubjectType.INPUT_GRID);
            }
            if (editorPage.getForm().SelectedIndex == 0)
            {
            }
            else if (editorPage.getForm().SelectedIndex == 1)
            {
                return(Misp.Kernel.Domain.SubjectType.RECONCILIATION_FILTER);
            }
            return(Misp.Kernel.Domain.SubjectType.INPUT_GRID);
        }
        protected virtual void UpdateGridForm(ReconciliationFilterTemplateGrid grid)
        {
            ReconciliationFilterTemplateEditorItem page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            page.getForm().EditedObject = page.EditedObject;
            grid.GrilleBrowserForm.displayObject();
            grid.Search(grid.EditedObject.GrilleFilter != null ? grid.EditedObject.GrilleFilter.page : 1);

            /*page.getForm().displayObjectInGridForm();
             * Search(page.EditedObject.GrilleFilter != null ? page.EditedObject.GrilleFilter.page : 1);*/
        }
        private void onNameTextChange(object sender, KeyEventArgs args)
        {
            ReconciliationFilterTemplateEditorItem page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            if (args.Key == Key.Escape)
            {
                page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Text = page.Title;
            }
            else if (args.Key == Key.Enter)
            {
                ValidateEditedNewName();
                OnChange();
            }
        }
        protected virtual void removePageHandlers(EditorItem <ReconciliationFilterTemplate> page)
        {
            //base.removePageHandlers(page);
            ReconciliationFilterTemplateEditorItem editorPage = (ReconciliationFilterTemplateEditorItem)page;

            editorPage.getForm().SelectionChanged -= OnSelectedTabChange;
            if (ApplicationManager.User != null && ApplicationManager.User.IsAdmin())
            {
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.Changed -= onGroupFieldChange;
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.ItemChanged -= OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.WriteOffConfigPanel.ItemChanged -= OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.ItemChanged -= OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.KeyUp -= onNameTextChange;
                editorPage.getForm().FormChanged -= OnFormChanged;
            }
            if (editorPage.getForm().AdministrationBar != null)
            {
                editorPage.getForm().AdministrationBar.Changed -= OnChangeEventHandler;
            }
        }
        protected virtual OperationState ValidateEditedNewName(string newName = "")
        {
            ReconciliationFilterTemplateEditorItem page  = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();
            ReconciliationFilterTemplate           table = page.EditedObject;

            if (string.IsNullOrEmpty(newName))
            {
                newName = page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Text.Trim();
            }
            if (string.IsNullOrEmpty(newName))
            {
                DisplayError("Empty Name", "The Filter Template name can't be mepty!");
                page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.SelectAll();
                page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Focus();
                return(OperationState.STOP);
            }


            foreach (ReconciliationFilterTemplateEditorItem unInputTable in getEditor().getPages())
            {
                if (unInputTable != getEditor().getActivePage() && newName == unInputTable.Title)
                {
                    DisplayError("Duplicate Name", "There is another Filter Template  named: " + newName);
                    page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Text = page.Title;
                    page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.SelectAll();
                    page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.Focus();
                    return(OperationState.STOP);
                }
            }
            if (!IsRenameOnDoubleClick)
            {
                if (table.name.ToUpper().Equals(newName.ToUpper()))
                {
                    return(OperationState.CONTINUE);
                }
            }

            ((ReconciliationFilterTemplateSideBar)SideBar).TemplateGroup.TemplateTreeview.updateTemplate(newName, table.name, false);
            table.name = newName;
            page.Title = newName;
            return(OperationState.CONTINUE);
        }
        protected virtual void PerformSelectionChange()
        {
            ReconciliationFilterTemplatePropertyBar bar  = (ReconciliationFilterTemplatePropertyBar)this.PropertyBar;
            ReconciliationFilterTemplateEditorItem  page = (ReconciliationFilterTemplateEditorItem)getEditor().getActivePage();

            if (page.getForm().SelectedIndex == 0)
            {
                ApplicationManager.MainWindow.displayPropertyBar(null);
                if (page.getForm().LeftGrid.GrilleBrowserForm.gridBrowser.RebuildGrid)
                {
                    UpdateGridForm(page.getForm().LeftGrid);
                }
                if (page.getForm().RightGrid.GrilleBrowserForm.gridBrowser.RebuildGrid)
                {
                    UpdateGridForm(page.getForm().RightGrid);
                }
                if (page.getForm().BottomGrid.GridBrowser.RebuildGrid)
                {
                    UpdateGridForm(page.getForm().BottomGrid);
                }

                page.getForm().LeftGrid.CustomizeDC();
                page.getForm().RightGrid.CustomizeDC();
            }
            else if (ApplicationManager.Instance.User.IsAdmin())
            {
                ApplicationManager.MainWindow.displayPropertyBar(this.PropertyBar);
                //if (!bar.Pane.Children.Contains(bar.DesignLayoutAnchorable)) bar.Pane.Children.Add(bar.DesignLayoutAnchorable);
                //if (bar.AdministratorLayoutAnchorable != null && !bar.Pane.Children.Contains(bar.AdministratorLayoutAnchorable)) bar.Pane.Children.Add(bar.AdministratorLayoutAnchorable);

                bar.Pane.Children.Remove(bar.FilterLayoutAnchorable);
                if (page.getForm().SelectedIndex == 1)
                {
                    ConfigurationPropertiesPanel configPane = page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel;
                    configPane.displayObject();
                    bar.DesignLayoutAnchorable.Content = page.getForm().ConfigurationPanel.ConfigurationPropertiesPanel;
                    bar.DesignLayoutAnchorable.Title   = "Filter Properties";
                }
                else if (page.getForm().SelectedIndex == 2)
                {
                    bar.DesignLayoutAnchorable.Content = page.getForm().LeftGridProperties.InputGridPropertiesPanel;
                    bar.DesignLayoutAnchorable.Title   = "Left Grid Properties";
                    bar.FilterLayoutAnchorable.Content = page.getForm().LeftGrid.GrilleBrowserForm.filterForm;
                    bar.FilterLayoutAnchorable.Title   = "Left Filter Properties";

                    bar.Pane.Children.Insert(1, bar.FilterLayoutAnchorable);
                }
                else if (page.getForm().SelectedIndex == 3)
                {
                    bar.DesignLayoutAnchorable.Content = page.getForm().RightGridProperties.InputGridPropertiesPanel;
                    bar.DesignLayoutAnchorable.Title   = "Right Grid Properties";
                    bar.FilterLayoutAnchorable.Content = page.getForm().RightGrid.GrilleBrowserForm.filterForm;
                    bar.FilterLayoutAnchorable.Title   = "Right Filter Properties";

                    bar.Pane.Children.Insert(1, bar.FilterLayoutAnchorable);
                }
                else if (page.getForm().SelectedIndex == 4)
                {
                    bar.DesignLayoutAnchorable.Content = page.getForm().BottomGridProperties.InputGridPropertiesPanel;
                    bar.DesignLayoutAnchorable.Title   = "Bottom Grid Properties";
                }
            }
        }
        protected override void initializePageHandlers(EditorItem <ReconciliationFilterTemplate> page)
        {
            base.initializePageHandlers(page);
            ReconciliationFilterTemplateEditorItem editorPage = (ReconciliationFilterTemplateEditorItem)page;

            editorPage.getForm().SelectionChanged += OnSelectedTabChange;
            if (ApplicationManager.User != null && ApplicationManager.User.IsAdmin())
            {
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.GroupService = GetService().GroupService;
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.subjectType = SubjectTypeFound();
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.groupField.Changed += onGroupFieldChange;
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.ItemChanged += OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.WriteOffConfigPanel.ItemChanged += OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.ItemChanged += OnConfigurationChanged;
                editorPage.getForm().ConfigurationPanel.ConfigurationPropertiesPanel.NameTextBox.KeyUp += onNameTextChange;
                editorPage.getForm().FormChanged += OnFormChanged;
            }
            if (editorPage.getForm().AdministrationBar != null)
            {
                editorPage.getForm().AdministrationBar.Changed += OnChangeEventHandler;
            }
        }