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; }
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); } } } }