Beispiel #1
0
        /// <summary>
        /// Обработать событие при закрытии дочерней формы
        /// </summary>
        private void ChildFormClosed(object sender, FormClosedEventArgs e)
        {
            // очистка ссылки на форму, связанную с узлом дерева
            IWinControllable itfWin   = sender as IWinControllable;
            TreeNode         treeNode = itfWin == null || itfWin.WinInfo == null ? null : itfWin.WinInfo.TreeNode;

            if (treeNode == null)
            {
                foreach (TreeNode node in allNodes)
                {
                    NodeInfo nodeInfo = node.Tag as NodeInfo;
                    if (nodeInfo != null && nodeInfo.Form == sender)
                    {
                        nodeInfo.Form = null;
                        break;
                    }
                }
            }
            else
            {
                NodeInfo nodeInfo = treeNode.Tag as NodeInfo;
                if (nodeInfo != null)
                {
                    nodeInfo.Form = null;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Выполнить действие, связанное с узлом дерева
        /// </summary>
        private void ExecNodeAction(TreeNode node)
        {
            NodeInfo nodeInfo = node.Tag as NodeInfo;

            if (nodeInfo != null)
            {
                if (nodeInfo.Form == null)
                {
                    FrmTable frmTable = null;
                    string   imageKey = "table.gif";

                    try
                    {
                        int      param    = -1;
                        object[] paramArr = nodeInfo.Params;
                        if (paramArr != null && paramArr.Length > 0 && paramArr[0] is int)
                        {
                            param = (int)paramArr[0];
                        }
                        string nodeText = node.Text;

                        switch (nodeInfo.NodeAction)
                        {
                        case NodeActions.Obj:
                            frmTable = NewTableForm(nodeText, Tables.GetObjTable());
                            break;

                        case NodeActions.CommLine:
                            frmTable = NewTableForm(nodeText, Tables.GetCommLineTable());
                            break;

                        case NodeActions.KP:
                            frmTable = NewTableForm(nodeText, Tables.GetKPTable());
                            break;

                        case NodeActions.InCnl:
                            frmTable = NewTableForm(nodeText, Tables.GetInCnlTable());
                            frmTable.GridContextMenu = contextInCnls;
                            break;

                        case NodeActions.InCnlObj:
                            frmTable = NewTableForm(CommonPhrases.InCnlTable + " - " + nodeText,
                                                    Tables.GetInCnlTableByObjNum(param));
                            frmTable.GridContextMenu = contextInCnls;
                            imageKey = "object.gif";
                            break;

                        case NodeActions.InCnlKP:
                            frmTable = NewTableForm(CommonPhrases.InCnlTable + " - " + nodeText,
                                                    Tables.GetInCnlTableByKPNum(param));
                            frmTable.GridContextMenu = contextInCnls;
                            imageKey = "kp.gif";
                            break;

                        case NodeActions.CtrlCnl:
                            frmTable = NewTableForm(nodeText, Tables.GetCtrlCnlTable());
                            break;

                        case NodeActions.CtrlCnlObj:
                            frmTable = NewTableForm(CommonPhrases.CtrlCnlTable + " - " + nodeText,
                                                    Tables.GetCtrlCnlTableByObjNum(param));
                            imageKey = "object.gif";
                            break;

                        case NodeActions.CtrlCnlKP:
                            frmTable = NewTableForm(CommonPhrases.CtrlCnlTable + " - " + nodeText,
                                                    Tables.GetCtrlCnlTableByKPNum(param));
                            imageKey = "kp.gif";
                            break;

                        case NodeActions.Role:
                            frmTable = NewTableForm(nodeText, Tables.GetRoleTable());
                            break;

                        case NodeActions.User:
                            frmTable = NewTableForm(nodeText, Tables.GetUserTable());
                            break;

                        case NodeActions.Interface:
                            frmTable = NewTableForm(nodeText, Tables.GetInterfaceTable());
                            break;

                        case NodeActions.Right:
                            frmTable = NewTableForm(nodeText, Tables.GetRightTable());
                            break;

                        case NodeActions.CnlType:
                            frmTable = NewTableForm(nodeText, Tables.GetCnlTypeTable());
                            break;

                        case NodeActions.CmdType:
                            frmTable = NewTableForm(nodeText, Tables.GetCmdTypeTable());
                            break;

                        case NodeActions.EvType:
                            frmTable = NewTableForm(nodeText, Tables.GetEvTypeTable());
                            break;

                        case NodeActions.KPType:
                            frmTable = NewTableForm(nodeText, Tables.GetKPTypeTable());
                            break;

                        case NodeActions.Param:
                            frmTable = NewTableForm(nodeText, Tables.GetParamTable());
                            break;

                        case NodeActions.Unit:
                            frmTable = NewTableForm(nodeText, Tables.GetUnitTable());
                            break;

                        case NodeActions.CmdVal:
                            frmTable = NewTableForm(nodeText, Tables.GetCmdValTable());
                            break;

                        case NodeActions.Format:
                            frmTable = NewTableForm(nodeText, Tables.GetFormatTable());
                            break;

                        case NodeActions.Formula:
                            frmTable = NewTableForm(nodeText, Tables.GetFormulaTable());
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        AppUtils.ProcError(ex.Message);
                        frmTable = null;
                    }

                    if (frmTable != null)
                    {
                        IWinControllable itfWin = frmTable as IWinControllable;
                        itfWin.WinInfo          = new WinInfo();
                        itfWin.WinInfo.TreeNode = node;

                        frmTable.FormClosed += ChildFormClosed;
                        nodeInfo.Form        = frmTable;

                        winControl.AddForm(frmTable, "", ilTree.Images[imageKey]);
                    }
                }
                else
                {
                    winControl.ActivateForm(nodeInfo.Form);
                }
                SetItemsEnabledOnWindowAction();
            }
        }