/Las/Las.WinUI/FrmDGSelector.cs
http://sgsoft-las.googlecode.com/ · C# · 203 lines · 144 code · 26 blank · 33 comment · 9 complexity · 5f6d724a04b763a04a29fe7e58c6a7ac MD5 · raw file
- /*
- * ????????????????
- * ?????????????????????????
- *
- *
- * */
-
-
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
-
- using Las.Model;
- using Las.Dal;
- using Las.Biz;
- using Aga.Controls.Tree;
- using Aga.Controls.Tree.NodeControls;
-
- namespace Las.WinUI
- {
- public partial class FrmDGSelector : Form
- {
- //???????ID
- System.Collections.Specialized.StringCollection checkedId = new System.Collections.Specialized.StringCollection();
- public FrmDGSelector()
- {
- InitializeComponent();
- SetSelectMode(rbRequired.Checked);
- dgTree.LoadOnDemand = true;//?????????
- SetupDGTree(dgTree);
- contextMenuStrip1.Enabled = false;
- }
-
- public FrmDGSelector(ITreeModel tm):this()
- {
- dgTree.Model = tm;
- if (dgTree.Root != null)
- {
- foreach (TreeNodeAdv n in dgTree.Root.Children)
- {
- n.Expand();
- }
- }
- }
-
- /// <summary>
- /// ??????
- /// </summary>
- /// <param name="requiredMode">???true???????</param>
- private void SetSelectMode(bool requiredMode)
- {
- labelCnt.Enabled = !requiredMode;
- nudCnt.Enabled =!requiredMode;
- btnSelect.Text =requiredMode?"??":"??";
- }
-
-
- #region ??????????
- private void SetupDGTree(Aga.Controls.Tree.TreeViewAdv tva)
- {
-
- tva.SelectionMode = TreeSelectionMode.Single;
- //????????contextMenu??
- tva.SelectionChanged += new EventHandler(tva_SelectionChanged);
-
-
- NodeCheckBox cb = new NodeCheckBox("IsChecked");
- cb.EditEnabled = true;
- cb.ThreeState = false;
- cb.CheckStateChanged += new EventHandler<TreePathEventArgs>(cb_CheckStateChanged);
- tva.NodeControls.Add(cb);
-
- NodeStateIcon ni = new NodeStateIcon();
- ni.DataPropertyName = "Icon";
- tva.NodeControls.Add(ni);
-
- NodeTextBox tb = new NodeTextBox();
- tb.DataPropertyName = "Text";
- tva.NodeControls.Add(tb);
- }
- #endregion
-
- void cb_CheckStateChanged(object sender, TreePathEventArgs e)
- {
- IModelNode cn = (IModelNode)e.Path.LastNode;
- MoXldg mo = cn.Tag as MoXldg;
- bool status = (bool)cn.IsChecked;
- if (status)
- {
- if (!checkedId.Contains(mo.DgId))
- {
- checkedId.Add(mo.DgId);
- }
- }
- else
- {
- checkedId.Remove(mo.DgId);
- }
-
- }
-
- void tva_SelectionChanged(object sender, EventArgs e)
- {
- Aga.Controls.Tree.TreeViewAdv tva = (Aga.Controls.Tree.TreeViewAdv)sender;
- if (tva.SelectedNodes.Count == 0)
- {
- contextMenuStrip1.Enabled = false;
- }
- else
- {
- contextMenuStrip1.Enabled = true;
- }
- }
-
- /// <summary>
- /// ???????????UI
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnSelect_Click(object sender, EventArgs e)
- {
-
- }
-
- private void rbRequired_CheckedChanged(object sender, EventArgs e)
- {
- SetSelectMode(rbRequired.Checked);
- }
-
- #region ????
- /// <summary>
- /// ???????/???? ?????
- /// </summary>
- /// <param name="tva"></param>
- /// <param name="tna"></param>
- /// <param name="status"></param>
- internal void SetCheckStatus(TreeViewAdv tva, TreeNodeAdv tna, bool status)
- {
- IModelNode drn = (IModelNode)tva.GetPath(tna).LastNode;
- MoXldg mo = drn.Tag as MoXldg;
- drn.IsChecked = status;
- if (status)
- {
- if (!checkedId.Contains(mo.DgId))
- {
- checkedId.Add(mo.DgId);
- }
- }
- else
- {
- if (checkedId.Contains(mo.DgId))
- {
- checkedId.Remove(mo.DgId);
- }
- }
-
- foreach (TreeNodeAdv n in tna.Children)
- {
- SetCheckStatus(tva, n, status);
- }
- }
-
- /// <summary>
- /// ???????????????
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void tsmiSelectAllSubNode_Click(object sender, EventArgs e)
- {
- ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;
- ContextMenuStrip cmms = (ContextMenuStrip)tsmi.Owner;
- Aga.Controls.Tree.TreeViewAdv tva = (Aga.Controls.Tree.TreeViewAdv)cmms.SourceControl;
- tva.SuspendLayout();
- SetCheckStatus(tva, tva.SelectedNode, true);
- tva.ResumeLayout(true);
- tva.Refresh();
-
-
- }
-
- /// <summary>
- /// ??????????????
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void tsmiUnSelectAllSub_Click(object sender, EventArgs e)
- {
- ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;
- ContextMenuStrip cmms = (ContextMenuStrip)tsmi.Owner;
- Aga.Controls.Tree.TreeViewAdv tva = (Aga.Controls.Tree.TreeViewAdv)cmms.SourceControl;
- tva.SuspendLayout();
- SetCheckStatus(tva, tva.SelectedNode, false);
- tva.ResumeLayout(true);
- tva.Refresh();
- }
- #endregion
-
- }
- }