Mini Kabibi Habibi

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

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using DevExpress.XtraTreeList;
using DevExpress.Utils;
using DevExpress.XtraBars;
using DevExpress.DXperience.Demos;
using DevExpress.XtraEditors;

namespace DevExpress.XtraTreeList.Demos {
    /// <summary>
    /// Summary description for TreeListStyles.
    /// </summary>
    public partial class TreeListStyles : TutorialControl {
        public TreeListStyles() {
            InitializeComponent();
            InitData();
            InitEditors();
            InitStyles();
        }

        private DataView dataView;
        protected override string BarName { get { return "Styles"; } }
        protected override BarManager Manager { get { return barManager1; } }
        protected override void InitBarInfo() {
            this.BarInfos.Add(new BarInfo("AutoWidth", new ItemClickEventHandler(AutoWidthClick), imageList2.Images[0], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Indent As RowStyle", new ItemClickEventHandler(ShowIndentAsRowStyleClick), imageList2.Images[1], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Buttons", new ItemClickEventHandler(ShowButtonsClick), imageList2.Images[2], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Root", new ItemClickEventHandler(ShowRootClick), imageList2.Images[3], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Focused Frame", new ItemClickEventHandler(ShowFocusedFrameClick), imageList2.Images[4], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Indicator", new ItemClickEventHandler(ShowIndicatorClick), imageList2.Images[5], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Columns", new ItemClickEventHandler(ShowColumnsClick), imageList2.Images[6], true, false, false));
            this.BarInfos.Add(new BarInfo("Show VertLines", new ItemClickEventHandler(ShowVertLinesClick), imageList2.Images[7], true, false, false));
            this.BarInfos.Add(new BarInfo("Show HorzLines", new ItemClickEventHandler(ShowHorzLinesClick), imageList2.Images[8], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Row Footer Summary", new ItemClickEventHandler(ShowRowFooterSummaryClick), imageList2.Images[13], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Summary Footer", new ItemClickEventHandler(ShowSummaryFooterClick), imageList2.Images[14], true, false, false));
            this.BarInfos.Add(new BarInfo("Show Button Mode", null, imageList2.Images[10], false, false, true,
                new BarInfo[] {new BarInfo("Show Always", new ItemClickEventHandler(ShowAlwaysClick), null, true, treeList1.ShowButtonMode == ShowButtonModeEnum.ShowAlways, false), 
				new BarInfo("Show For Focused Cell", new ItemClickEventHandler(ShowForFocusedCellClick), null, true, treeList1.ShowButtonMode == ShowButtonModeEnum.ShowForFocusedCell, false),
				new BarInfo("Show For Focused Row", new ItemClickEventHandler(ShowForFocusedRowClick), null, true, treeList1.ShowButtonMode == ShowButtonModeEnum.ShowForFocusedRow, false),
				new BarInfo("Show Only In Editor", new ItemClickEventHandler(ShowOnlyInEditorClick), null, true, treeList1.ShowButtonMode == ShowButtonModeEnum.ShowOnlyInEditor, false)}, 1));
            this.BarInfos.Add(new BarInfo("TreeLine Style", null, imageList2.Images[11], false, false, false,
                new BarInfo[] {new BarInfo("Dark", new ItemClickEventHandler(DarkClick), null, true, treeList1.TreeLineStyle == LineStyle.Dark, false), 
				new BarInfo("Large", new ItemClickEventHandler(LargeClick), null, true, treeList1.TreeLineStyle == LineStyle.Large, false),
				new BarInfo("Light", new ItemClickEventHandler(LightClick), null, true, treeList1.TreeLineStyle == LineStyle.Light, false),
				new BarInfo("Percent50", new ItemClickEventHandler(Percent50Click), null, true, treeList1.TreeLineStyle == LineStyle.Percent50, false),
				new BarInfo("Solid", new ItemClickEventHandler(SolidClick), null, true, treeList1.TreeLineStyle == LineStyle.Solid, false),
				new BarInfo("Wide", new ItemClickEventHandler(WideClick), null, true, treeList1.TreeLineStyle == LineStyle.Wide, false), 
				new BarInfo("None", new ItemClickEventHandler(NoneClick), null, true, treeList1.TreeLineStyle == LineStyle.None, false)}, 2));
            this.BarInfos.Add(new BarInfo("Show Customization Form", new ItemClickEventHandler(ShowCustomizationFormClick), imageList2.Images[15], true, false, true));
            this.BarInfos.Add(new BarInfo("Drag Nodes", new ItemClickEventHandler(DragNodesClick), imageList2.Images[12], true, false, false));
            this.BarInfos.Add(new BarInfo("Print Preview", new ItemClickEventHandler(PrintPreviewClick), imageList2.Images[16], false, false, true));
            this.BarInfos.Add(new BarInfo("Print Designer", new ItemClickEventHandler(PrintDesignerClick), imageList2.Images[17], false, false, false));

            InitOptions();
        }

        void AutoWidthClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.AutoWidth = GetBarItemPushed(0);
        }
        void ShowIndentAsRowStyleClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowIndentAsRowStyle = GetBarItemPushed(1);
        }
        void ShowButtonsClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowButtons = GetBarItemPushed(2);
        }
        void ShowRootClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowRoot = GetBarItemPushed(3);
        }
        void ShowFocusedFrameClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowFocusedFrame = GetBarItemPushed(4);
        }
        void ShowIndicatorClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowIndicator = GetBarItemPushed(5);
        }
        void ShowColumnsClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowColumns = GetBarItemPushed(6);
        }
        void ShowVertLinesClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowVertLines = GetBarItemPushed(7);
        }
        void ShowHorzLinesClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowHorzLines = GetBarItemPushed(8);
        }
        void ShowRowFooterSummaryClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowRowFooterSummary = GetBarItemPushed(9);
        }
        void ShowSummaryFooterClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsView.ShowSummaryFooter = GetBarItemPushed(10);
        }
        void ShowCustomizationFormClick(object sender, ItemClickEventArgs e) {
            if(GetBarItemPushed(13)) treeList1.ColumnsCustomization();
            else treeList1.DestroyCustomization();
        }
        void DragNodesClick(object sender, ItemClickEventArgs e) {
            treeList1.OptionsBehavior.DragNodes = GetBarItemPushed(14);
        }

        void PrintPreviewClick(object sender, ItemClickEventArgs e) {
            Cursor currentCursor = Cursor.Current;
            Cursor.Current = Cursors.WaitCursor;
            treeList1.ShowPrintPreview();
            Cursor.Current = currentCursor;
        }

        void PrintDesignerClick(object sender, ItemClickEventArgs e) {
            Cursor currentCursor = Cursor.Current;
            Cursor.Current = Cursors.WaitCursor;
            DevExpress.XtraEditors.XtraForm frm = new DevExpress.XtraEditors.XtraForm();
            frm.Text = "Print Designer";
            DevExpress.XtraTreeList.Frames.TreeListPrinting print = new DevExpress.XtraTreeList.Frames.TreeListPrinting();
            print.InitFrame(treeList1, "PrintingReport management", null);
            print.Dock = DockStyle.Fill;
            frm.Controls.Add(print);
            frm.Size = print.UserControlSize;
            frm.StartPosition = FormStartPosition.CenterScreen;
            frm.ShowDialog();
            Cursor.Current = currentCursor;
        }

        void ShowAlwaysClick(object sender, ItemClickEventArgs e) {
            treeList1.ShowButtonMode = ShowButtonModeEnum.ShowAlways;
        }

        void ShowForFocusedCellClick(object sender, ItemClickEventArgs e) {
            treeList1.ShowButtonMode = ShowButtonModeEnum.ShowForFocusedCell;
        }

        void ShowForFocusedRowClick(object sender, ItemClickEventArgs e) {
            treeList1.ShowButtonMode = ShowButtonModeEnum.ShowForFocusedRow;
        }

        void ShowOnlyInEditorClick(object sender, ItemClickEventArgs e) {
            treeList1.ShowButtonMode = ShowButtonModeEnum.ShowOnlyInEditor;
        }

        void DarkClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Dark;
        }

        void LargeClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Large;
        }

        void LightClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Light;
        }

        void Percent50Click(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Percent50;
        }

        void SolidClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Solid;
        }

        void WideClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.Wide;
        }

        void NoneClick(object sender, ItemClickEventArgs e) {
            treeList1.TreeLineStyle = LineStyle.None;
        }
        private void InitOptions() {
            SetBarItemChecked(0, treeList1.OptionsView.AutoWidth);
            SetBarItemChecked(1, treeList1.OptionsView.ShowIndentAsRowStyle);
            SetBarItemChecked(2, treeList1.OptionsView.ShowButtons);
            SetBarItemChecked(3, treeList1.OptionsView.ShowRoot);
            SetBarItemChecked(4, treeList1.OptionsView.ShowFocusedFrame);
            SetBarItemChecked(5, treeList1.OptionsView.ShowIndicator);
            SetBarItemChecked(6, treeList1.OptionsView.ShowColumns);
            SetBarItemChecked(7, treeList1.OptionsView.ShowVertLines);
            SetBarItemChecked(8, treeList1.OptionsView.ShowHorzLines);
            SetBarItemChecked(9, treeList1.OptionsView.ShowRowFooterSummary);
            SetBarItemChecked(10, treeList1.OptionsView.ShowSummaryFooter);
            SetBarItemChecked(14, treeList1.OptionsBehavior.DragNodes);
        }

        private void InitData() {
            string DBFileName = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, "Data\\Departments.xml");
            if(DBFileName != "") {
                DataSet dataSet = new DataSet();
                dataSet.ReadXml(DBFileName);
                treeList1.DataSource = dataView = dataSet.Tables[0].DefaultView;
                treeList1.PopulateColumns();
                treeList1.ExpandAll();
                treeList1.BestFitColumns();
            }
        }

        private void InitEditors() {
            DevExpress.XtraEditors.Repository.RepositoryItemComboBox cb = new DevExpress.XtraEditors.Repository.RepositoryItemComboBox();
            treeList1.RepositoryItems.Add(cb);
            DevExpress.XtraEditors.Repository.RepositoryItemSpinEdit se = new DevExpress.XtraEditors.Repository.RepositoryItemSpinEdit();
            treeList1.RepositoryItems.Add(se);

            string s, oldLocation = "";
            DataView dv = new DataView(dataView.Table);
            dv.Sort = "[Location] ASC";
            for(int i = 0; i < dv.Count; i++) {
                s = dv[i].Row.ItemArray.GetValue(5) as string;
                if(s != oldLocation)
                    cb.Items.Add(s);
                oldLocation = s;
            }
            cb.DropDownRows = 10;

            DevExpress.XtraTreeList.Columns.TreeListColumn col;

            treeList1.Columns["Location"].ColumnEdit = cb;
            col = treeList1.Columns["Budget"];
            col.ColumnEdit = se;
            col.Format.FormatString = "c";
            col.RowFooterSummary = col.SummaryFooter = SummaryItemType.Sum;
            col.RowFooterSummaryStrFormat = col.SummaryFooterStrFormat = "Sum={0:c}";
            col.AllNodesSummary = true;
            col = treeList1.Columns["Check"];
            col.RowFooterSummary = SummaryItemType.Sum;
            col.RowFooterSummaryStrFormat = "Checked: {0}";
        }

        private void TreeListStyles_Load(object sender, System.EventArgs e) {
            chbAlphaBlending.Checked = false;
        }

        private void InitStyles() {
            xapp = new DevExpress.XtraTreeList.Design.XAppearances(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System) + "\\DevExpress.XtraTreeList.Appearances.xml", ceNewStyles.Checked);
            lsStyles.Items.AddRange(xapp.FormatNames);
            lsStyles.SelectedIndex = lsStyles.Items.Count > 1 ? 1 : 0;
            InitAppearanceList(treeList1);
        }

        void InitAppearanceList(TreeList tl) {
            lbcAppearances.Items.Clear();
            PropertyDescriptorCollection collection = TypeDescriptor.GetProperties(tl.Appearance);
            for(int i = 0; i < collection.Count; i++)
                if(collection[i].PropertyType == typeof(AppearanceObject))
                    lbcAppearances.Items.Add(collection[i].Name);
            lbcAppearances.SelectedIndex = 0;
        }

        private void lsStyles_SelectedIndexChanged(object sender, System.EventArgs e) {
            if(lsStyles.SelectedItem != null)
                xapp.LoadScheme(lsStyles.SelectedItem.ToString(), treeList1);
            treeList1.SetDefaultRowHeight();
            if(chbAlphaBlending.Checked) xtraTreeListBlending1.RefreshStyles();
        }

        private void ceNewStyles_CheckedChanged(object sender, System.EventArgs e) {
            if(xapp != null) xapp.ShowNewStylesOnly = ceNewStyles.Checked;
            int index = lsStyles.SelectedIndex;
            lsStyles.Items.Clear();
            lsStyles.Items.AddRange(xapp.FormatNames);
            lsStyles.SelectedIndex = index;
        }

        private void lbcAppearances_SelectedIndexChanged(object sender, System.EventArgs e) {
            propertyGrid1.SelectedObjects = SelectedObjects;
        }

        AppearanceObject GetAppearanceObjectByName(TreeList tl, string name) {
            if(tl.Appearance == null) return null;
            else return tl.Appearance.GetAppearance(name);
        }
        object[] SelectedObjects {
            get {
                if(lbcAppearances.SelectedItem == null) return null;
                ArrayList ret = new ArrayList();
                for(int i = 0; i < lbcAppearances.SelectedIndices.Count; i++) {
                    object obj = GetAppearanceObjectByName(treeList1, lbcAppearances.GetItem(lbcAppearances.SelectedIndices[i]).ToString());
                    ret.Add(obj);
                }
                return ret.ToArray();
            }
        }

        private void treeList1_GetSelectImage(object sender, DevExpress.XtraTreeList.GetSelectImageEventArgs e) {
            if(e.FocusedNode)
                e.NodeImageIndex += 7;
        }

        private void chbAlphaBlending_CheckedChanged(object sender, System.EventArgs e) {
            DevExpress.XtraEditors.CheckEdit chb = sender as DevExpress.XtraEditors.CheckEdit;
            xtraTreeListBlending1.Enabled = chb.Checked;
            btnAlphaBlending.Enabled = chb.Checked;
        }

        private void btnAlphaBlending_Click(object sender, System.EventArgs e) {
            xtraTreeListBlending1.ShowDialog();
        }

        private void treeList1_ShowCustomizationForm(object sender, System.EventArgs e) {
            SetBarItemChecked(13, true);
        }

        private void treeList1_HideCustomizationForm(object sender, System.EventArgs e) {
            SetBarItemChecked(13, false);
        }
    }
}