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;
            }
        }
Beispiel #2
0
 /// <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;
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        /// <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();
     }
 }
Beispiel #7
0
        /// <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);
     }
 }
Beispiel #9
0
        /// <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);
                }
            }
        }
Beispiel #10
0
        /// <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);
        }
Beispiel #11
0
        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;
 }
Beispiel #13
0
        /// <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);
                }
            }
        }
Beispiel #14
0
        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));
        }