protected override void OnSelectedItemIsChanged(object sender, SelectedItemEventArgs e) { //this is special observer that operates on IModelNodeAdvance (it requires references between nodes) //this event returns IModelNode, so we must change it to IModelNodeAdvance // //here we do not know wheter we receive: // - e.SelectedIModelNode as IModelNodeAdvance // - e.SelectedIModelNode as IWrapperTreeNode //the code belows perform the conversion but this is very unclear situation //TODO: this should be changed in the future, see: //http://itrserver.hq.cas.com.pl/Bugs/BugDetail.aspx?bid=2253 //http://itrserver.hq.cas.com.pl/Bugs/BugDetail.aspx?bid=2254 IModelNodeAdvance imna = null; if (e.SelectedIModelNode is IModelNodeAdvance) { imna = (IModelNodeAdvance)e.SelectedIModelNode; } if (e.SelectedIModelNode is IWrapperTreeNode) { imna = ((IWrapperTreeNode)e.SelectedIModelNode).IModelNodeAdvance; } if (this.Visible) { InitializeScene(imna); } else { previousMessage = imna; } }
/// <summary> /// Gets the information about data type design outputs. /// </summary> /// <param name="iModelNodeAdvance">The i model node advance.</param> /// <param name="tbls">The table structure.</param> private static void GetInformationAboutDataTypeDesignParameters(IModelNodeAdvance iModelNodeAdvance, TableStructure tbls) { foreach (IModelNodeAdvance argument in GetFolder(iModelNodeAdvance, FolderType.Fields)) { Dictionary <string, string> row = GetDocumentation(argument.Wrapper4PropertyGrid); tbls.AddRow(row); } }
private void View3DModelObserver_VisibleChanged(object sender, EventArgs e) { if (this.Visible && previousMessage != null) { InitializeScene(previousMessage); previousMessage = null; } }
private void stateMachineEditorToolStripMenuItem_Click(object sender, EventArgs e) { IModelNodeAdvance imna = m_MainContol.SelectedIModelNodeAdvanced; if ((imna != null) && (imna.NodeClass == NodeClassesEnum.ObjectType)) { StateMachineEditorMain.AnalizeStateMachine(imna); return; } MessageBox.Show(Resources.ProblemWithStateMachine_Header, Resources.ProblemWithStateMachine_Info, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); }
/// <summary> /// Gets the information about variable type children. /// </summary> /// <param name="iModelNodeAdvance">The i model node advance.</param> /// <param name="tbls">The TBLS.</param> private static void GetInformationAboutVariableTypeChildren(IModelNodeAdvance iModelNodeAdvance, TableStructure tbls) { List <List <string> > allTableRows = new List <List <string> >(); foreach (IModelNodeAdvance imna in GetFolder(iModelNodeAdvance, FolderType.Children)) { Dictionary <string, string> row = GetDocumentation(imna.Wrapper4PropertyGrid); row.Add(referenceString, hasPropertyString); row.Add(nodeClassString, imna.NodeClass.ToString()); tbls.AddRow(row); } }
private void InitializeScene(IModelNodeAdvance imna) { if (imna != null) { IModelNodeAdvanceMeshTo3DView <NodePoint3DSizedLabeledIModelNodeAdvance, IModelNodeAdvance> myTreeViewTo3DView = new IModelNodeAdvanceMeshTo3DView <NodePoint3DSizedLabeledIModelNodeAdvance, IModelNodeAdvance>(imna); panel3DUserControl1.Clear(); myTreeViewTo3DView.AddContentToScene(panel3DUserControl1); panel3DUserControl1.RefreshScene(); panel3DUserControl1.TryAutoZoom(); } }
/// <summary> /// Gets the information about references. /// </summary> /// <param name="iModelNodeAdvance">The i model node advance.</param> /// <param name="tbls">The TBLS.</param> private static void GetInformationAboutReferences(IModelNodeAdvance iModelNodeAdvance, TableStructure tbls) { IEnumerable <IModelNodeAdvance> rf = GetFolder(iModelNodeAdvance, FolderType.References); if (rf != null) { foreach (IModelNodeAdvance referenceFromTheReferencesFolder in rf) { Dictionary <string, string> row = GetDocumentation(referenceFromTheReferencesFolder.Wrapper4PropertyGrid); tbls.AddRow(row); } } }
/// <summary> /// Analizes the state machine from tree. /// </summary> /// <param name="imna">The analized node.</param> internal static void AnalizeStateMachine(IModelNodeAdvance imna) { if (CustomEditors.IsLicensed) { if ((((TypeDesign <Opc.Ua.ModelCompiler.ObjectTypeDesign>)imna.Wrapper4PropertyGrid).BaseType.ToString() == finiteStateMachineTypeString)) { TypeDesign <Opc.Ua.ModelCompiler.ObjectTypeDesign> selectedNodeObjectTypeDesign = (TypeDesign <Opc.Ua.ModelCompiler.ObjectTypeDesign>)imna.Wrapper4PropertyGrid; try { string symbolicNameNameSpace = selectedNodeObjectTypeDesign.SymbolicName.NameSpace; ObjectTypeDesign machineObjectDesign = (ObjectTypeDesign)selectedNodeObjectTypeDesign.Parent; List <string> allStates = new List <string>(); List <Transition> allTransitions = new List <Transition>(); Dictionary <FolderType, IEnumerable <IModelNodeAdvance> > folders = imna.GetFolders(); foreach (Folder folder in folders.Values) { if (folder is ChildrenFolder) { foreach (IModelNode machineIModelNode in folder) { if (machineIModelNode.NodeClass == NodeClassesEnum.Object) { FindStatesAndTransitionsInStateMachine((InstanceDesign <Opc.Ua.ModelCompiler.ObjectDesign>)machineIModelNode.Wrapper4PropertyGrid, allStates, allTransitions); } } } } bool transitionAnalized = false; while (transitionAnalized == false) { transitionAnalized = StateMachineCrossTable.AddImagesOnTransitionButtons(allStates, allTransitions, symbolicNameNameSpace, machineObjectDesign, imna.IsReadOnly); } } catch (Exception) { MessageBox.Show(Resources.ProblemWithStateMachine_Header, Resources.ProblemwithDisplayingStateMachine_Info, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } } else { MessageBox.Show(Resources.ProblemWithStateMachine_Header, Resources.ProblemWithStateMachine_Info, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } } else { MessageBox.Show(Resources.ModelDesignerProLicenseWarning); } }
/// <summary> /// Gets the information about method design inputs or outputs. /// </summary> /// <param name="iModelNodeAdvance">The i model node advance.</param> /// <param name="tbls">The TBLS.</param> private static void GetInformationAboutMethodDesignInputsOrOutputs(IModelNodeAdvance iModelNodeAdvance, TableStructure tbls, FolderType ft) { List <List <string> > allTableRows = new List <List <string> >(); IEnumerable <IModelNodeAdvance> pf = null; pf = GetFolder(iModelNodeAdvance, ft); if (pf != null) { foreach (IModelNodeAdvance argument in pf) { Dictionary <string, string> row = GetDocumentation(argument.Wrapper4PropertyGrid); tbls.AddRow(row); } } }
/// <summary> /// Exports to document. /// </summary> /// <param name="tn">The tree node</param> /// <param name="typeOfTheDocument">The type of the document.</param> #region creatorsOfTermWithDefinition /// <summary> /// Gets the folder. /// </summary> /// <param name="imna">The IModelNodeAdvance.</param> /// <param name="type">The folder type.</param> /// <returns></returns> private static IEnumerable <IModelNodeAdvance> GetFolder(IModelNodeAdvance imna, FolderType type) { if (imna == null) { return(null); } Dictionary <FolderType, IEnumerable <IModelNodeAdvance> > folders = imna.GetFolders(); if (folders == null) { return(null); } if (folders.ContainsKey(type)) { return(folders[type]); } return(null); }
internal static void ExportToDocument(IModelNodeAdvance imna, TypeOfTheDocument typeOfTheDocument) { if (!CheckIfExportIsPossibleAndPrepareListOfTerms(imna, out List <TermWithDefinitionStructure> listOfAllTerms)) { return; } IASMDExporter exporter = null; switch (typeOfTheDocument) { case TypeOfTheDocument.Maml: exporter = new MamlCreator(); break; case TypeOfTheDocument.Docx: exporter = new DocxCreator(); break; } string FileName = string.Empty; FileName = SelectFileCreateDocumentAndSave(listOfAllTerms, exporter, FileName); }
protected override void OnSelectedItemIsChanged(object sender, SelectedItemEventArgs e) { //this is special observer that operates also on IModelNodeAdvance //this event returns IModelNode, so we must change it to IModelNodeAdvance // //here we do not know wheter we receive: // - e.SelectedIModelNode as IModelNodeAdvance // - e.SelectedIModelNode as IWrapperTreeNode //the code belows perform the conversion but this is very unclear situation //TODO: this should be changed in the future, see: //http://itrserver.hq.cas.com.pl/Bugs/BugDetail.aspx?bid=2253 //http://itrserver.hq.cas.com.pl/Bugs/BugDetail.aspx?bid=2254 if (e.SelectedIModelNode is IModelNodeAdvance) { this.IModelNodeAdvance = (IModelNodeAdvance)e.SelectedIModelNode; } if (e.SelectedIModelNode is IWrapperTreeNode) { this.IModelNodeAdvance = ((IWrapperTreeNode)e.SelectedIModelNode).IModelNodeAdvance; } this.IModelNode = e.SelectedIModelNode; }
/// <summary> /// Gets the information about children. /// </summary> /// <param name="iModelNodeAdvance">The i model node advance.</param> /// <param name="tbls">The table structure.</param> private static void GetInformationAboutChildren(IModelNodeAdvance iModelNodeAdvance, TableStructure tbls) { List <List <string> > allTableRows = new List <List <string> >(); IEnumerable <IModelNodeAdvance> folder = GetFolder(iModelNodeAdvance, FolderType.Children); if (folder != null) { foreach (IModelNodeAdvance imna in folder) { Dictionary <string, string> row = GetDocumentation(imna.Wrapper4PropertyGrid); if (imna.NodeClass == NodeClassesEnum.Property) { row.Add(referenceString, hasPropertyString); } else { row.Add(referenceString, hasComponentString); } row.Add(nodeClassString, imna.NodeClass.ToString()); tbls.AddRow(row); } } }
private static bool CheckIfExportIsPossibleAndPrepareListOfTerms(IModelNodeAdvance imna, out List <TermWithDefinitionStructure> listOfAllTerms) { if (imna == null) { MessageBox.Show(Resources.ExportTool_NoNodeIsSelected, Resources.ExportTool_Window_Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); listOfAllTerms = null; return(false); } listOfAllTerms = new List <TermWithDefinitionStructure>(); if (imna.NodeType == NodeTypeEnum.ProjectNode) { foreach (IModelNodeAdvance imnaInDictionary in ((imna.GetFolders()).Values)) { if (imnaInDictionary.NodeType == NodeTypeEnum.ModelNode) { List <TermWithDefinitionStructure> temp_listOfAllTerms = new List <TermWithDefinitionStructure>(); if (CheckIfExportIsPossibleAndPrepareListOfTerms(imnaInDictionary, out temp_listOfAllTerms)) { listOfAllTerms.AddRange(temp_listOfAllTerms); } } } } else { TermWithDefinitionStructure term = null; if (imna.NodeType == NodeTypeEnum.ModelNode) { foreach (KeyValuePair <FolderType, IEnumerable <IModelNodeAdvance> > item in imna.GetFolders()) { foreach (IModelNodeAdvance imnaInProject in item.Value) { term = CreateTermWithDefinition(imnaInProject); if (term != null) { listOfAllTerms.Add(term); } } } } else { term = CreateTermWithDefinition(imna); if (term != null) { listOfAllTerms.Add(term); foreach (FolderType folderType in FolderType.GetValues(typeof(FolderType))) { if (GetFolder(imna, folderType) != null) { foreach (IModelNodeAdvance imnaInFolder in GetFolder(imna, folderType)) { term = CreateTermWithDefinition(imnaInFolder); if (term != null) { listOfAllTerms.Add(term); } } } } } else { MessageBox.Show(Resources.ExportTool_cannot_expot_wrong_node, Resources.ExportTool_Window_Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); return(false); } } } return(true); }
private void MeshDiagramViewport3D_IModelVisualIsSelected(object sender, EventArgs e) { IModelNodeAdvance imna = panel3DUserControl1.MeshDiagramViewport3D.SelectedIModelVisual.Tag as IModelNodeAdvance; RaiseSelectedItemIsChanged(new SelectedItemEventArgs(imna, false)); }