Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/GridMainDemo/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/GridMainDemo/Modules/MasterDetail.cs

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using DevExpress.XtraGrid;
using DevExpress.Utils;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors;
using DevExpress.ActiveDemos;

namespace DevExpress.XtraGrid.Demos {
    /// <summary>
    /// Summary description for MasterDetail.
    /// </summary>
    public partial class MasterDetail : TutorialControl {
        public MasterDetail() {
            //
            // Required for Windows Form Designer support
            //
            CreateWaitDialog();
            InitializeComponent();
            TutorialInfo.WhatsThisCodeFile = "CS\\GridMainDemo\\Modules\\MasterDetail.cs";
            TutorialInfo.WhatsThisXMLFile = "DevExpress.XtraGrid.Demos.CodeInfo.MasterDetail.xml";
            gridControl1.ForceInitialize();

            InitNWindData();
            InitEditing();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        public override DevExpress.XtraGrid.Views.Base.BaseView ExportView { get { return advBandedGridView1; } }
        public override bool HasActiveDemo { get { return true; } }
        protected override ActiveDemo CreateActiveDemo() {
            return new ActiveGridDemo(gridControl1);
        }
        protected override void RunGridActiveDemo(ActiveGridDemo activeDemo) {
            this.advBandedGridView1.CollapseAllDetails();
            imageComboBoxEdit1.SelectedIndex = 1;
            ceTabs.Checked = true;
            ceMain.Checked = true;

            activeDemo.ClickMasterRecordIcon(this.advBandedGridView1, 1);
            advBandedGridView1.TopRowIndex = 0;
            activeDemo.ClickMasterRecordIcon(this.advBandedGridView1, 0);
            GridView detailView = this.advBandedGridView1.GetVisibleDetailView(0) as GridView;
            activeDemo.ColumnBestFit(this.colCategoryID, detailView, Properties.Resources.ActiveGrid_BestFit);
            activeDemo.ColumnResize(this.colCategoryID, detailView, 100);
            activeDemo.ShowMessage(Properties.Resources.ActiveGrid_SynhronizedViews);
            activeDemo.ViewZoom(detailView, Properties.Resources.ActiveGrid_ViewZoom);
            activeDemo.ClickMasterRecordIcon(detailView, 1);
            activeDemo.ClickMasterRecordIcon(detailView, 0);
            if(activeDemo.Actions.Canceled) return;
            if(detailView == null) return;
            GridView subDetailView = detailView.GetVisibleDetailView(0) as GridView;
            ActiveActions.Delay(500);
            activeDemo.ViewZoom(subDetailView, Properties.Resources.ActiveGrid_ViewZoomSubDetail);
            if(activeDemo.Actions.Canceled) return;
            ActiveActions.Delay(500);
            activeDemo.ExpandCollapseRow(subDetailView, 1);
            activeDemo.MoveMouseFromPoint(200, 100);
            activeDemo.ExpandCollapseRow(subDetailView, 0);
            activeDemo.MoveMouseFromPoint(100, 200);
            activeDemo.ViewZoom(subDetailView, Properties.Resources.ActiveGrid_ViewUnzoom);
            activeDemo.MoveMouseFromPoint(200, 200);
            activeDemo.ViewZoom(detailView);
            if(activeDemo.Actions.Canceled) return;
            subDetailView.OptionsView.ShowGroupPanel = true;
            Rectangle r = activeDemo.GetGroupPanelRectangle(subDetailView);
            activeDemo.Actions.MoveMousePointTo(gridControl1, new Point(r.X + 50, r.Top + r.Height / 2));
            activeDemo.ShowMessage(Properties.Resources.ActiveGrid_JoinedGroupPanel);
            r = activeDemo.GetGroupPanelRectangle(this.advBandedGridView1);
            activeDemo.Actions.MoveMousePointTo(gridControl1, new Point(r.X + 50, r.Top + r.Height / 2));
            activeDemo.ShowMessage(Properties.Resources.ActiveGrid_JoinedGroupPanel2);
            if(activeDemo.Actions.Canceled) return;
            subDetailView.OptionsView.ShowGroupPanel = false;
            activeDemo.ClickControlNavigatorButton(NavigatorButtonType.Prev);
            activeDemo.ClickControlNavigatorButton(NavigatorButtonType.Prev);
            activeDemo.ShowMessage(Properties.Resources.ActiveGrid_EmbeddedNavigator);
            activeDemo.ClickControlNavigatorButton(NavigatorButtonType.Next);
            activeDemo.ClickControlNavigatorButton(NavigatorButtonType.Next);
            activeDemo.ClickControlNavigatorButton(NavigatorButtonType.Next);
        }
        protected override PaintView[] PaintViews {
            get {
                return new PaintView[] {
										   new PaintView(advBandedGridView1, "Pastel#1"), 
										   new PaintView(gridView1, "Pastel#2"), 						
										   new PaintView(gridView2, "Winter"),
										   new PaintView(cardView1, "Vagabond"),
				};
            }
        }
        #region Init
        private GridControl CurrentGrid { get { return gridControl1; } }
        private GridView MainView { get { return advBandedGridView1; } }
        private GridView ProductView { get { return gridView1; } }

        protected override void InitMDBData(string connectionString) {
            OleDbDataAdapter oleDBAdapter1 = new OleDbDataAdapter("SELECT * FROM Suppliers", connectionString);
            OleDbDataAdapter oleDBAdapter2 = new OleDbDataAdapter("SELECT * FROM Products", connectionString);
            OleDbDataAdapter oleDBAdapter3 = new OleDbDataAdapter("SELECT * FROM [Order Details]", connectionString);
            OleDbDataAdapter oleDBAdapter4 = new OleDbDataAdapter("SELECT * FROM CategoryProducts", connectionString);

            SetWaitDialogCaption(Properties.Resources.LoadingSuppliers);
            oleDBAdapter1.Fill(dsNWindSupplier1.Suppliers);

            SetWaitDialogCaption(Properties.Resources.LoadingProducts);
            oleDBAdapter2.Fill(dsNWindSupplier1.Products);

            SetWaitDialogCaption(Properties.Resources.LoadingOrderDetails);
            oleDBAdapter3.Fill(dsNWindSupplier1.Order_Details);

            SetWaitDialogCaption(Properties.Resources.LoadingCategoryProducts);
            oleDBAdapter4.Fill(dsNWindSupplier1.CategoryProducts);
        }
        protected override void InitXMLData(string dataFileName) {
            DataSet ds = new DataSet();
            SetWaitDialogCaption(Properties.Resources.LoadingTables);
            ds.ReadXml(dataFileName);
            gridControl1.DataSource = ds.Tables["Suppliers"];
        }

        private void InitMasterDetailAppearance() {
            MainView.BeginUpdate();
            MainView.FocusedRowHandle = 0;
            MainView.SetMasterRowExpanded(MainView.FocusedRowHandle, true);
            GridView gv = MainView.GetVisibleDetailView(MainView.FocusedRowHandle) as GridView;
            if(gv != null) gv.SetMasterRowExpanded(0, true);
            MainView.SetMasterRowExpandedEx(1, 1, true);
            seVertIndent.Value = 4;
            MainView.EndUpdate();
        }
        private void InitEditing() {
            InitCheckButtons();
            SetZoom(imageComboBoxEdit1.SelectedIndex);
        }
        private void InitCheckButtons() {
            ceTabs.Checked = MainView.OptionsDetail.ShowDetailTabs;
            ceToolTips.Checked = MainView.OptionsDetail.EnableDetailToolTip;
            ceMain.Checked = MainView.OptionsDetail.EnableMasterViewMode;
        }
        private void MasterDetail_Load(object sender, System.EventArgs e) {
            InitMasterDetailAppearance();
        }
        #endregion
        #region Editing
        //<imageComboBoxEdit1>
        private void SetZoom(bool allow, bool auto) {
            MainView.OptionsDetail.AllowZoomDetail = allow;
            MainView.OptionsDetail.AutoZoomDetail = auto;
            ProductView.OptionsDetail.AllowZoomDetail = allow;
            ProductView.OptionsDetail.AutoZoomDetail = auto;
        }

        void SetZoom(int index) {
            switch(index) {
                case 0: //"Auto Zoom"
                    SetZoom(true, true);
                    break;
                case 1: //"Manual Zoom"
                    SetZoom(true, false);
                    break;
                case 2: //"No Zoom"
                    SetZoom(false, false);
                    break;
            }
            MainView.CollapseAllDetails();
        }

        private void imageComboBoxEdit1_SelectedIndexChanged(object sender, System.EventArgs e) {
            SetZoom(imageComboBoxEdit1.SelectedIndex);
        }
        //</imageComboBoxEdit1>
        //<ceTabs>
        private void ceTabs_CheckedChanged(object sender, System.EventArgs e) {
            CheckEdit ce = sender as CheckEdit;
            MainView.OptionsDetail.ShowDetailTabs = ce.Checked;
            MainView.CollapseAllDetails();
        }
        //</ceTabs>
        //<ceToolTips>
        private void ceToolTips_CheckedChanged(object sender, System.EventArgs e) {
            CheckEdit ce = sender as CheckEdit;
            MainView.OptionsDetail.EnableDetailToolTip = ce.Checked;
        }
        //</ceToolTips>
        //<ceMain>
        private void ceMain_CheckedChanged(object sender, System.EventArgs e) {
            CheckEdit ce = sender as CheckEdit;
            MainView.OptionsDetail.EnableMasterViewMode = ce.Checked;
            MainView.OptionsView.ShowChildrenInGroupPanel = ce.Checked;
            //<skip>
            imageComboBoxEdit1.Enabled = ceTabs.Enabled = ceToolTips.Enabled = ce.Checked;
            seVertIndent.Enabled = ce.Checked;
            //</skip>
        }
        //</ceMain>
        //<seVertIndent>
        private void seVertIndent_EditValueChanged(object sender, EventArgs e) {
            foreach(DevExpress.XtraGrid.Views.Base.BaseView view in gridControl1.Views) {
                GridView gView = view as GridView;
                if(gView != null)
                    gView.DetailVerticalIndent = (int)seVertIndent.Value;
            }
        }
        //</seVertIndent>
        #endregion
    }
}