Beispiel #1
0
        private void FilterControl(Guid g_mid, DEBoxObject o_box, int i_pos)
        {
            string filterPos = "";

            if (o_box.FilterType == 1)
            {
                filterPos = o_box.FilterPos;
                if (filterPos.Trim().Length > 0)
                {
                    ArrayList posValue = new ArrayList();
                    posValue = this.GetPosValue(filterPos);
                    for (int i = 0; i < posValue.Count; i++)
                    {
                        int         num2 = (int)posValue[i];
                        DEBoxObject obj2 = (DEBoxObject)this.al_all[num2];
                        if (obj2.ShowType == "UCGrid")
                        {
                            DEMetaAttribute metaObject         = (DEMetaAttribute)o_box.MetaObject;
                            DEMetaClass     class2             = ModelContext.MetaModel.GetClass(metaObject.LinkedResClass);
                            UCResGrid       grid               = (UCResGrid)this.al_control[num2];
                            string          filterRefTableName = this.GetFilterRefTableName(o_box, num2);
                            grid.ReLoad(g_mid, class2.Name, filterRefTableName, false);
                        }
                    }
                }
            }
        }
Beispiel #2
0
 private void InitControl(DEBoxObject o_box, int i_len, int i_jg, bool b_isdrwaline)
 {
     this.utEditor[i_jg]             = new UltraTextEditor();
     this.utEditor[i_jg].BorderStyle = UIElementBorderStyle.None;
     this.utEditor[i_jg].Location    = new Point(i_len + (4 * i_jg), 0);
     this.utEditor[i_jg].Text        = o_box.CONVALUE.ToString();
     this.utEditor[i_jg].Size        = new Size(o_box.Width, 0x15);
     this.utEditor[i_jg].Appearance.FontData.SizeInPoints = o_box.Height - 4;
     this.utEditor[i_jg].SupportThemes = false;
     new ArrayList();
     if (o_box.ControlType.Equals("UltraTextBox"))
     {
         DEMetaAttribute metaObject = (DEMetaAttribute)o_box.MetaObject;
         DEMetaClass     class2     = ModelContext.MetaModel.GetClass(metaObject.LinkedResClass);
         this.DrawDropDownTBtn(this.utEditor[i_jg], class2.Name, i_jg);
     }
     else
     {
         this.al_control.Add(this.utEditor[i_jg]);
     }
     base.Controls.Add(this.utEditor[i_jg]);
     if (b_isdrwaline)
     {
         this.DrawLine(((i_len + o_box.Width) + (4 * i_jg)) + 1, 0, 2, base.Height);
     }
 }
Beispiel #3
0
        private void ActiveDropDownUC(UltraTextEditor txtEditor, string str_clsname, bool b_isTree, int i_pos)
        {
            DEMetaAttribute metaAttr = new DEMetaAttribute();
            DEBoxObject     obj2     = (DEBoxObject)this.al_all[i_pos];

            metaAttr = (DEMetaAttribute)obj2.MetaObject;
            if (b_isTree)
            {
                ArrayList list  = new ArrayList();
                Guid      empty = Guid.Empty;
                list.Add(empty);
                string refTableName = this.GetRefTableName(obj2, i_pos);
                list.Add(refTableName);
                DEMetaClass class2 = ModelContext.MetaModel.GetClass(metaAttr.LinkedResClass);
                list.Add(class2.Name);
                UCResTree tree = new UCResTree(list, i_pos);
                this.al_control.Add(tree);
                DropDownEditorButton button = txtEditor.ButtonsRight["SelectRes"] as DropDownEditorButton;
                button.Control    = tree;
                this.handler      = new SelectResHandler(this.ucUser_ResSelected);
                tree.ResSelected += this.handler;
            }
            else
            {
                this.ucUser = new UCResGrid(str_clsname, metaAttr, i_pos);
                this.al_control.Add(this.ucUser);
                DropDownEditorButton button2 = txtEditor.ButtonsRight["SelectRes"] as DropDownEditorButton;
                button2.Control          = this.ucUser;
                this.handler             = new SelectResHandler(this.ucUser_ResSelected);
                this.ucUser.ResSelected += this.handler;
            }
        }
Beispiel #4
0
 public UCSelectClassPLM(bool IsQuickSch, bool leafClassOnly, SelectClassConstraint constraint) : this()
 {
     this.ucClassTree = new UCClassTree(null, leafClassOnly, constraint);
     this.ucClassTree.ClassTree.Nodes.RemoveByKey("资源");
     this.ucClassTree.ClassTree.Nodes.RemoveByKey("业务状态");
     for (int i = 0; i < this.ucClassTree.ClassTree.Nodes.Count; i++)
     {
         TreeNode    node = this.ucClassTree.ClassTree.Nodes[i];
         DEMetaClass tag  = node.Tag as DEMetaClass;
         if (tag != null)
         {
             if (tag.Name == "RESOURCE")
             {
                 this.ucClassTree.ClassTree.Nodes.Remove(node);
                 i--;
             }
             else
             {
                 this.NodeClear(node);
                 if ((node.Nodes.Count == 0) && ((!tag.IsSearchable || !ModelContext.MetaModel.IsVisibleCustomizedClass(tag.Name)) || (tag.IsGrantable && (PLGrantPerm.CanDoClassOperation(ClientData.LogonUser.Oid, tag.Name, Guid.Empty, "ClaRel_SEARCH") != 1))))
                 {
                     this.ucClassTree.ClassTree.Nodes.Remove(node);
                     i--;
                 }
             }
         }
     }
     this.popupContainer.Controls.Add(this.ucClassTree);
     base.Properties.PopupControl.Size = new Size(base.Width, this.ucClassTree.Height);
     this.ucClassTree.Dock             = DockStyle.Fill;
     this.handler = new SelectClassHandler(this.ucClassTree_ClassSelected);
     this.ucClassTree.ClassSelected += this.handler;
     this.handler2 = new DoubClickClassHandler(this.ucClassTree_DoubleClikedcls);
     this.ucClassTree.DoubClicked += this.handler2;
 }
Beispiel #5
0
        private void ucClassTree_ClassSelected(DEMetaClass meta)
        {
            bool flag = false;

            if (meta == null)
            {
                if ((meta == null) && (base.Tag != null))
                {
                    flag = true;
                }
                this.Text = "";
                base.Tag  = null;
            }
            else
            {
                if ((base.Tag == null) || (meta.Oid != ((DEMeta)base.Tag).Oid))
                {
                    flag = true;
                }
                this.Text = meta.Label;
                base.Tag  = meta;
            }
            if (flag && (this.SelectedClassChanged != null))
            {
                this.SelectedClassChanged(meta);
            }
        }
Beispiel #6
0
 private DEMetaAttribute GetMetaAttr(string strAttrLbl)
 {
     foreach (DEMetaAttribute attribute in this.AL_unCodeMetaAttr)
     {
         if (attribute.Label == strAttrLbl)
         {
             return(attribute);
         }
     }
     if (!this.b_isAdd)
     {
         DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.ClassOid);
         if (class2 == null)
         {
             foreach (DEMetaAttribute attribute2 in ModelContext.MetaModel.GetAttributes(class2.Name))
             {
                 if (attribute2.Label == strAttrLbl)
                 {
                     return(attribute2);
                 }
             }
         }
     }
     return(null);
 }
Beispiel #7
0
        private int GetResDataCount()
        {
            int num = 0;

            if (ResFunc.IsOnlineOutRes(this.curFolder.ClassOid))
            {
                return(ResFunc.GetDataCount(this.curFolder, this.attrList, this.attrOuter, emResourceType.OutSystem));
            }
            if (ResFunc.IsRefRes(this.curFolder.ClassOid))
            {
                PLSPL       plspl    = new PLSPL();
                DEMetaClass class2   = ModelContext.MetaModel.GetClass(this.curFolder.ClassOid);
                DEMetaClass class3   = ModelContext.MetaModel.GetClass(class2.RefClass);
                ArrayList   attrList = new ArrayList();
                foreach (DEMetaAttribute attribute in this.attrList)
                {
                    if (this.ISDefAttrViewable(attribute))
                    {
                        attrList.Add(attribute);
                    }
                }
                return(plspl.GetSPLCount(class3.Name, attrList, ClientData.LogonUser.Oid, this.curFolder.FilterString, this.curFolder.FilterValue));
            }
            if (ResFunc.IsTabRes(this.curFolder.ClassOid))
            {
                ArrayList list2 = new ArrayList();
                num = ResFunc.GetDataCount(this.curFolder, list2, this.attrOuter, emResourceType.Customize);
            }
            return(num);
        }
Beispiel #8
0
        private void LoadRelationData(string str_clsname)
        {
            ArrayList   relations = ModelContext.MetaModel.GetRelations();
            DEMetaClass parent    = ModelContext.MetaModel.GetParent(str_clsname);

            this.lv_relation.Items.Clear();
            foreach (DEMetaRelation relation in relations)
            {
                if (parent == null)
                {
                    if (relation.RightClassName == this.str_RightClsName)
                    {
                        ListViewItem item = new ListViewItem {
                            Text     = relation.Label,
                            SubItems = { relation.LeftClassLabel },
                            Tag      = relation
                        };
                        this.lv_relation.Items.Add(item);
                    }
                }
                else if ((relation.RightClassName == this.str_RightClsName) || (relation.RightClassName == parent.Name))
                {
                    ListViewItem item2 = new ListViewItem {
                        Text     = relation.Label,
                        SubItems = { relation.LeftClassLabel },
                        Tag      = relation
                    };
                    this.lv_relation.Items.Add(item2);
                }
            }
        }
Beispiel #9
0
 private void comBoxAttrName_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(this.comBoxAttrName.Text))
     {
         string text = this.comBoxAttrName.Text;
         this.pnlValue.Controls.Clear();
         ComboBoxEditPLM tplm     = new ComboBoxEditPLM();
         DEMetaAttribute metaAttr = this.GetMetaAttr(text);
         if (metaAttr != null)
         {
             DEMetaClass myCls = ModelContext.MetaModel.GetClass(metaAttr.LinkedResClass);
             if (myCls != null)
             {
                 ResFunc func = new ResFunc();
                 foreach (DEMetaAttribute attribute2 in func.GetResAttrs(myCls))
                 {
                     if ((!attribute2.IsSystem && (attribute2.DataType2 == PLMDataType.String)) && (attribute2.Name != "OID"))
                     {
                         tplm.Properties.Items.Add(attribute2.Label);
                     }
                 }
                 if (tplm.Properties.Items.Count > 0)
                 {
                     this.pnlValue.Controls.Add(tplm);
                     tplm.Dock = DockStyle.Fill;
                 }
             }
         }
     }
 }
Beispiel #10
0
 private void InitLeftTree(DEMetaClass cls)
 {
     TreeNode node = new TreeNode(cls.Label) {
         Tag = cls
     };
     this.TV_Class.Nodes.Add(node);
     UIDataModel.FillClassesTree(this.TV_Class, cls.Name, 0, 0);
 }
Beispiel #11
0
 public FrmSortDef(Guid g_clsoid, bool b_isLocalhost, Guid g_saveoid)
 {
     this.InitializeComponent();
     this.g_ClsOid      = g_clsoid;
     this.g_SaveOid     = g_saveoid;
     this.b_isLocalhost = b_isLocalhost;
     this.myCls         = ModelContext.MetaModel.GetClass(g_clsoid);
 }
Beispiel #12
0
        private ArrayList GetAllReferenceLst()
        {
            ArrayList   list   = new ArrayList();
            PLDataModel model  = new PLDataModel();
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.ClsName);

            return(model.GetReferences(class2.Oid));
        }
Beispiel #13
0
 public void SetInput(Guid ClsOid, ArrayList al_unCodeMetaAttr, DECodeAttribute codeAttr, bool isAdd)
 {
     this.ClassOid          = ClsOid;
     this.theCls            = PLDataModel.Agent2.GetMetaClass(ClsOid);
     this.AL_unCodeMetaAttr = al_unCodeMetaAttr;
     this.b_IsAdd           = isAdd;
     this.ca_input          = codeAttr;
     this.SetEditText(codeAttr);
 }
Beispiel #14
0
 public FrmSortDef(Guid g_clsoid, bool b_isLocalhost, Guid g_saveoid, bool b_isrefcls, ArrayList al_sortAttr)
 {
     this.InitializeComponent();
     this.g_ClsOid      = g_clsoid;
     this.g_SaveOid     = g_saveoid;
     this.b_isLocalhost = b_isLocalhost;
     this.b_isRefCls    = b_isrefcls;
     this.al_NewAttr    = al_sortAttr;
     this.myCls         = ModelContext.MetaModel.GetClass(g_clsoid);
 }
Beispiel #15
0
        public FrmModelDef(Guid g_clsid, string str_clsLabel, emResourceType emResType)
        {
            this.InitializeComponent();
            this.g_ClsOid = g_clsid;
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(g_clsid);

            this.className   = class2.Name;
            this.myEmResType = emResType;
            this.SetFolder();
        }
Beispiel #16
0
 private void btnOK_Click(object sender, EventArgs e)
 {
     this.id = this.txtId.Text.Trim();
     if (this.id.Length == 0)
     {
         if (this.itemType == BusinessItemType.Folder)
         {
             MessageBoxPLM.Show("请输入文件夹名称。");
         }
         else
         {
             MessageBoxPLM.Show("请输入对象的新代号。");
         }
         this.txtId.SelectAll();
     }
     else if (this.id.Length > 0x40)
     {
         MessageBoxPLM.Show("代号的长度不能超过64。");
         this.txtId.SelectAll();
     }
     else
     {
         if (this.itemType != BusinessItemType.Folder)
         {
             if (this.cobSecurityLevel.SelectedIndex > -1)
             {
                 this.securityLevel = Convert.ToInt32(this.cobSecurityLevel.SelectedItem);
             }
             else
             {
                 DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.className);
                 if (class2 != null)
                 {
                     this.securityLevel = class2.SecurityLevel;
                 }
                 else
                 {
                     this.securityLevel = 1;
                 }
             }
             if ((this.cobGroup.SelectedItem != null) && (this.cobGroup.SelectedItem is DEOrganization))
             {
                 this.groupOid = ((DEOrganization)this.cobGroup.SelectedItem).Oid;
             }
             else
             {
                 this.groupOid = Guid.Empty;
             }
         }
         this.revLabel     = this.txtRevLabel.Text.Trim();
         this.effway       = (this.cobFolderEffWay.SelectedIndex == 0) ? RevisionEffectivityWay.LastRev : RevisionEffectivityWay.PreciseIter;
         base.DialogResult = DialogResult.OK;
     }
 }
Beispiel #17
0
        public UCRes(string clsName, DEMetaAttribute metaAttr) : this()
        {
            this.className   = clsName;
            this.deMetaAttri = metaAttr;
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.className);

            if (class2 != null)
            {
                this.classOid = class2.Oid;
                this.InitializeData();
            }
        }
        private void ConvertOuterDSHeader(DataSet ds_ret, Guid g_clsoid)
        {
            ArrayList   attrList = new ArrayList();
            ArrayList   outList  = new ArrayList();
            DEResFolder defolder = new DEResFolder {
                ClassOid = g_clsoid
            };
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(g_clsoid);

            attrList = this.GetAttributes(class2.Name);
            outList  = ResFunc.GetOuterAttr(defolder);
            this.ReplaceAttrName(ds_ret, outList, attrList);
        }
Beispiel #19
0
        public UCResSelect(Guid classOid, DEMetaAttribute metaAttr, int i_pos) : this()
        {
            this.classOid    = classOid;
            this.deMetaAttri = metaAttr;
            this.i_pos       = i_pos;
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.classOid);

            if (class2 != null)
            {
                this.className = class2.Name;
                this.InitializeData();
            }
        }
Beispiel #20
0
 private void TV_Class_AfterSelect(object sender, TreeViewEventArgs e)
 {
     if (this.TV_Class.SelectedNode != null)
     {
         DEMetaClass tag = (DEMetaClass) this.TV_Class.SelectedNode.Tag;
         this.classOid = tag.Oid;
         this.className = tag.Name;
         this.Attrs.Clear();
         this.al_guid.Clear();
         this.al_mid.Clear();
         this.InitializeData();
     }
 }
Beispiel #21
0
        private string GetClsAttr2ResAttrLbl(DECodeAttribute ca_in)
        {
            ArrayList list = new ArrayList();

            new ArrayList();
            new ArrayList();
            new ArrayList();
            if (this.theCls != null)
            {
                foreach (DEMetaAttribute attribute in PLDataModel.Agent2.GetClassAllAttributes(this.theCls.Name))
                {
                    if ((attribute.IsViewable && !attribute.IsGrid) && !attribute.IsVirtualClass)
                    {
                        list.Add(attribute);
                    }
                }
                if (list.Count == 0)
                {
                    return("");
                }
                foreach (DEMetaAttribute attribute2 in list)
                {
                    if (attribute2.Oid == ca_in.ClassAttrOid)
                    {
                        DEMetaClass            metaClass = PLDataModel.Agent2.GetMetaClass(ca_in.ResClsOid);
                        List <DEMetaAttribute> list3     = new List <DEMetaAttribute>();
                        if (metaClass != null)
                        {
                            ArrayList resAttrs = new ResFunc().GetResAttrs(metaClass);
                            if ((resAttrs != null) && (resAttrs.Count > 0))
                            {
                                list3.AddRange((DEMetaAttribute[])resAttrs.ToArray(typeof(DEMetaAttribute)));
                            }
                        }
                        if ((list3 == null) || (list3.Count <= 0))
                        {
                            return(attribute2.Label + " -> ");
                        }
                        foreach (DEMetaAttribute attribute3 in list3)
                        {
                            if (attribute3.Oid == ca_in.ResAttrOid)
                            {
                                return(attribute2.Label + " -> " + attribute3.Label);
                            }
                        }
                    }
                }
            }
            return("");
        }
Beispiel #22
0
 public UCResGrid(string clsName, DEMetaAttribute metaAttr, int i_pos)
     : this()
 {
     this.className = clsName;
     this.deMetaAttri = metaAttr;
     this.i_pos = i_pos;
     DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.className);
     if (class2 != null)
     {
         this.classOid = class2.Oid;
         this.InitObject();
         this.InitializeData();
     }
 }
Beispiel #23
0
        private void SetGridValue(string str_res, int i_pos)
        {
            Guid      empty          = Guid.Empty;
            ArrayList list           = new ArrayList();
            string    conAttrShowPos = "";

            char[]   separator = "}".ToCharArray();
            string[] strArray  = null;
            if ((base.Tag == null) && (str_res != null))
            {
                strArray = str_res.Split(separator);
            }
            DEBoxObject obj2 = (DEBoxObject)this.al_all[i_pos];

            conAttrShowPos = obj2.ConAttrShowPos;
            if (conAttrShowPos.Trim().Length > 0)
            {
                ArrayList posValue = new ArrayList();
                posValue = this.GetPosValue(conAttrShowPos);
                for (int i = 0; i < posValue.Count; i++)
                {
                    list.Add(strArray[i].ToString().Substring(1, strArray[i].ToString().Length - 1));
                }
                for (int j = 0; j < posValue.Count; j++)
                {
                    int index = (int)posValue[j];
                    this.utEditor[index].Text = list[j].ToString();
                }
                if (obj2.IsReflex || (obj2.FilterType != 0))
                {
                    string          g          = strArray[posValue.Count].ToString().Substring(1, strArray[posValue.Count].ToString().Length - 1);
                    Guid            iterOid    = new Guid(g);
                    DEMetaAttribute metaObject = (DEMetaAttribute)obj2.MetaObject;
                    DEMetaClass     class2     = ModelContext.MetaModel.GetClass(metaObject.LinkedResClass);
                    Guid            curView    = ClientData.UserGlobalOption.CurView;
                    DEBusinessItem  item       = (DEBusinessItem)PLItem.Agent.GetBizItemByIteration(iterOid, class2.Name, curView, ClientData.LogonUser.Oid, BizItemMode.BizItem);
                    empty = item.MasterOid;
                    if (obj2.FilterType == 1)
                    {
                        this.FilterControl(empty, obj2, i_pos);
                    }
                    if (obj2.IsReflex)
                    {
                        this.ReflexControl(empty, obj2, i_pos);
                    }
                }
            }
        }
Beispiel #24
0
 private void InitObject()
 {
     if (this.IsHasChildCls(this.classOid))
     {
         this.panel1.Visible = true;
         DEMetaClass cls = ModelContext.MetaModel.GetClass(this.className);
         if (cls != null)
         {
             this.InitLeftTree(cls);
         }
     }
     else
     {
         this.panel1.Visible = false;
     }
 }
Beispiel #25
0
 public void SetValue(Guid classOid)
 {
     if (classOid == Guid.Empty)
     {
         base.Tag       = null;
         this.textValue = "";
     }
     else
     {
         DEMetaClass class2 = ModelContext.MetaModel.GetClass(classOid);
         base.Tag       = class2;
         this.textValue = class2.Label;
         this.ucClassTree.SelectClass(class2.Name);
     }
     this.Refresh();
 }
Beispiel #26
0
        public ResCombo(string clsName, DEMetaAttribute metaAttr)
        {
            this.Attrs         = new ArrayList();
            this.comColumn     = "选_中";
            this.resOid        = Guid.Empty;
            this.al_guid       = new ArrayList();
            this.al_ShowColumn = new ArrayList();
            this.InitializeConfig();
            this.className   = clsName;
            this.deMetaAttri = metaAttr;
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.className);

            if (class2 != null)
            {
                this.classOid = class2.Oid;
            }
        }
Beispiel #27
0
        public FrmFilterData(string clsName)
        {
            this.myConditon      = new StringBuilder();
            this.strFilterString = "";
            this.strFilterValue  = "";
            this.filterAttrs     = new ArrayList();
            this.clsOid          = Guid.Empty;
            this.InitializeComponent();
            this.clsName = clsName;
            DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.clsName);

            this.clsOid = class2.Oid;
            if (class2.IsOuterResClass)
            {
                this.isOnLineOutRes = true;
            }
        }
Beispiel #28
0
 private void LoadModelData()
 {
     this.myModel = new PLResModel().GetModel(this.g_ClsOid);
     this.chB_isExpand.Checked = this.myModel.PLM_ISEXPAND;
     if ((this.myModel == null) || (this.myModel.PLM_OID == Guid.Empty))
     {
         this.b_new = true;
         DEMetaClass class2 = ModelContext.MetaModel.GetClass(this.g_ClsOid);
         this.myModel                 = new DEResModel();
         this.myModel.PLM_OID         = Guid.NewGuid();
         this.myModel.PLM_CLASSOID    = this.g_ClsOid;
         this.myModel.PLM_CLASSNAME   = class2.Name;
         this.myModel.PLM_CREATOR     = ClientData.LogonUser.Oid;
         this.myModel.PLM_CREATETIME  = DateTime.Now;
         this.myModel.PLM_MODELPKLIST = new ArrayList();
         this.myModel.PLM_OPTION      = 0;
     }
 }
Beispiel #29
0
        private void ReflexControl(Guid g_mid, DEBoxObject o_box, int i_pos)
        {
            string filterPos      = "";
            string filterAttribue = "";

            for (int i = 0; i < this.al_all.Count; i++)
            {
                DEBoxObject obj2 = (DEBoxObject)this.al_all[i];
                filterPos      = obj2.FilterPos;
                filterAttribue = obj2.FilterAttribue;
                if ((((filterAttribue != null) && (filterAttribue.Length > 0)) && ((filterAttribue.IndexOf("1") != -1) && (obj2.ShowType == "UCGrid"))) && this.IsReflexFilter(filterPos, filterAttribue, i_pos))
                {
                    DEMetaAttribute metaObject         = (DEMetaAttribute)obj2.MetaObject;
                    DEMetaClass     class2             = ModelContext.MetaModel.GetClass(metaObject.LinkedResClass);
                    UCResGrid       grid               = (UCResGrid)this.al_control[i];
                    string          filterRefTableName = this.GetFilterRefTableName(obj2, i_pos);
                    grid.ReLoad(g_mid, class2.Name, filterRefTableName, true);
                }
            }
        }
Beispiel #30
0
 private void NodeClear(TreeNode node)
 {
     if (node.Nodes.Count != 0)
     {
         for (int i = 0; i < node.Nodes.Count; i++)
         {
             TreeNode    node2 = node.Nodes[i];
             DEMetaClass tag   = node2.Tag as DEMetaClass;
             if (tag != null)
             {
                 this.NodeClear(node2);
                 if ((node2.Nodes.Count == 0) && ((!tag.IsSearchable || !ModelContext.MetaModel.IsVisibleCustomizedClass(tag.Name)) || (tag.IsGrantable && (PLGrantPerm.CanDoClassOperation(ClientData.LogonUser.Oid, tag.Name, Guid.Empty, "ClaRel_SEARCH") != 1))))
                 {
                     node.Nodes.Remove(node2);
                     i--;
                 }
             }
         }
     }
 }