示例#1
0
文件: PDBrowser.cs 项目: minskowl/MY
        private void ExpandNode(TreeNode node)
        {
            if (node.FirstNode.ImageIndex != (int)ind.imitLoading)
            {
                return;
            }

            if (NodeLoaded)
            {
                return;
            }
            NodeLoaded = true;
            OnLoading();

            try
            {
                if (node.ImageIndex == (int)ind.imitPackage)
                {
                    PrintPackage(node.Nodes, (Package)node.Tag);
                }
                else if (node.ImageIndex == (int)ind.imitFolder)
                {
                    Model p = ((Model)(node.Tag));
                    if (node.Text == tTables)
                    {
                        PrintObjectCol(node.Nodes, p.Tables, true);
                    }
                    else if (node.Text == tTables)
                    {
                        PrintObjectCol(node.Nodes, p.Views, true);
                    }
                    else if (node.Text == tSPs)
                    {
                        PrintObjectCol(node.Nodes, p.Procedures, true);
                    }
                }
                else if (node.ImageIndex == (int)ind.imitTable)
                {
                    Table t;
                    t = ((Table)(node.Tag));
                    PrintObjectCol(node.Nodes, t.Columns, false);
                }
                else if (node.ImageIndex == (int)ind.imitView)
                {
                    View t;
                    t = ((View)(node.Tag));
                    PrintObjectCol(node.Nodes, t.Columns, false);
                }
                else if (node.ImageIndex == (int)ind.imitSP)
                {
                    //Procedure t = ((Procedure)(node.Tag));
                    throw new NotImplementedException("PrintSPParams(.Nodes, t)");
                }
                else if (node.ImageIndex == (int)ind.imitModel)
                {
                    try
                    {
                        if (node.Tag == null)
                        {
                            if (ChangeStatus != null)
                            {
                                ChangeStatus("imitModel :)", MessageType.mtWarning);
                            }
                            return;
                        }
                        BaseObject o = (BaseObject)node.Tag;
                        if (o.ClassName == "Workspace Model")
                        {
                            WorkspaceModel wm = (WorkspaceModel)node.Tag;
                            if (wm.ModelObject == null)
                            {
                                wm.Open();
                            }
                            node.Tag = wm.ModelObject;
                            PrintModel(node.Nodes, (Model)wm.ModelObject);
                        }
                        else if (o.ClassName == "Physical Data Model")
                        {
                            PrintModel(node.Nodes, (Model)o);
                        }
                    }
                    catch (Exception ex)
                    {
                        OnChangeStatus(ex.Message, MessageType.mtError);
                    }
                }
            }
            catch (Exception ex)
            {
                OnChangeStatus(ex.Message, MessageType.mtError);
            }
            OnLoaded();

            NodeLoaded = false;
        }
示例#2
0
        public static void OpenLibrary(Application anApp, string aName, string aLang)
        {
            PdOOM.BaseObject modelObject;
            WorkspaceModel   model = RetrieveModelByFile(anApp, aName);

            if (model == null)
            {
                Workspace activeWorkspace = (Workspace)anApp.ActiveWorkspace;
                if (activeWorkspace == null)
                {
                    throw new Exception("Unable to reach the Workspace");
                }
                modelObject = (PdOOM.BaseObject)activeWorkspace.AddDocument(aName, -1);
                if (modelObject == null)
                {
                    return;
                }
                model = (WorkspaceModel)modelObject;
            }
            Model aModel = null;

            if (model.ModelKind == 0x18112060)
            {
                modelObject = (PdOOM.BaseObject)model.ModelObject;
                if (modelObject == null)
                {
                    long interactiveMode = (long)anApp.InteractiveMode;
                    anApp.InteractiveMode = InteractiveModeValue.im_Batch;
                    try
                    {
                        modelObject = (PdOOM.BaseObject)model.Open();
                    }
                    catch (Exception exception)
                    {
                        if (LZ.Reverse.Info._bDebug)
                        {
                            LZ.Reverse.Info.Write(new string[] { exception.StackTrace });
                        }
                    }
                    finally
                    {
                        anApp.InteractiveMode = (InteractiveModeValue)((int)interactiveMode);
                    }
                }
                if (modelObject != null)
                {
                    aModel = (Model)modelObject;
                    ObjectLanguage objectLanguage = (ObjectLanguage)aModel.ObjectLanguage;
                    if (objectLanguage.Name == aLang)
                    {
                        string name;
                        if (aModel.Name != aModel.Code)
                        {
                            name = aModel.Name + " (" + aModel.Code + ")";
                        }
                        else
                        {
                            name = aModel.Name;
                        }
                        LZ.Reverse.Info.Write(new string[] { "... indexation of the library \"{0}\"", name });
                        IndexModelClassifiers(aModel);
                    }
                }
            }
        }