Beispiel #1
0
        //Returns all connections which refer to the selcted elements either way
        private static List<XmlSbpmConnection> searchConnectionsForElement(XmlSbpmEntireModelSubject model, XmlSbpmModelingElement selectedObject)
        {
            List<XmlSbpmConnection> connFound = new List<XmlSbpmConnection>(); ;

            foreach (XmlSbpmConnection connection in model.Connection)
            {
                if (connection.endPoint2.UUID.Equals(selectedObject.UUID))
                {
                    connFound.Add(connection);
                }
            }

            return connFound;
        }
Beispiel #2
0
        public static List<XmlSbpmModelingElement> getDirectSuccessor(XmlSbpmEntireModelSubject model, XmlSbpmModelingElement selectedObject)
        {
            List<XmlSbpmModelingElement> successingObjects = new List<XmlSbpmModelingElement>();

            foreach (XmlSbpmModelingElement obj in model.Element)
            {
                if (obj.UUID.Equals(selectedObject.UUID))
                {
                    List<XmlSbpmConnection> connections = searchConnectionsForElement(model, selectedObject);
                    successingObjects = findElementsUsedInConnections(model, connections, selectedObject);
                }
            }

            return successingObjects;
        }
Beispiel #3
0
        private static List<XmlSbpmModelingElement> findElementsUsedInConnections(XmlSbpmEntireModelSubject model, List<XmlSbpmConnection> connections, XmlSbpmModelingElement selectedObject)
        {
            List<XmlSbpmModelingElement> elements = new List<XmlSbpmModelingElement>();

            foreach (XmlSbpmConnection con in connections)
            {
                foreach (XmlSbpmModelingElement element in model.Element)
                {
                    if (element.UUID.Equals(con.endPoint1.UUID) &&
                        !element.UUID.Equals(selectedObject.UUID)
                        ||
                        element.UUID.Equals(con.endPoint2.UUID) &&
                        !element.UUID.Equals(selectedObject.UUID))
                    {
                        elements.Add(element);
                    }
                }
            }

            return elements;
        }
Beispiel #4
0
        private static List<List<XmlSbpmEntireModelSubject>> replaceIdWithObjects(List<List<int>> differentSubjects, XmlSbpmEntireModelSubject[] subjects)
        {
            if (differentSubjects != null && subjects != null)
            {
                List<List<XmlSbpmEntireModelSubject>> modelList = new List<List<XmlSbpmEntireModelSubject>>();

                foreach (List<int> list in differentSubjects)
                {
                    List<XmlSbpmEntireModelSubject> tmpList = new List<XmlSbpmEntireModelSubject>();
                    foreach (int i in list)
                    {
                        XmlSbpmEntireModelSubject tmpSub = new XmlSbpmEntireModelSubject();
                        tmpSub = subjects[(i - 1)];

                        tmpList.Add(tmpSub);
                    }
                    modelList.Add(tmpList);
                }

                return modelList;
            }

            return null;
        }
Beispiel #5
0
        public static List<List<XmlSbpmEntireModelSubject>> findCommonNameForSubjects(List<List<XmlSbpmEntireModelSubject>> subjectsModel)
        {
            List<XmlSbpmEntireModelSubject> commonNameSubjects = new List<XmlSbpmEntireModelSubject>();
            List<List<XmlSbpmEntireModelSubject>> listCommonNameSubjects = new List<List<XmlSbpmEntireModelSubject>>();
            List<string> oldNames = new List<string>();

            foreach (List<XmlSbpmEntireModelSubject> list in subjectsModel)
            {
                if (list.Count > 1)
                {
                    XmlSbpmEntireModelSubject mergedSubject = new XmlSbpmEntireModelSubject();
                    List<XmlSbpmConnection> connectionsList = new List<XmlSbpmConnection>();
                    List<XmlSbpmModelingElement> elementsList = new List<XmlSbpmModelingElement>();

                    string commonName = printSubjectsAndAskForCommonName(list);

                    if (commonName != null)
                    {
                        if (commonName.Equals(""))
                        {
                            commonName = list[0].SubjectName;
                        }

                        foreach (XmlSbpmEntireModelSubject subject in list)
                        {
                            oldNames.Add(subject.SubjectName);

                            if (subject.Connection != null)
                            {
                                foreach (XmlSbpmConnection con in subject.Connection)
                                {
                                    connectionsList.Add(con);
                                }
                            }

                            if (subject.Element != null)
                            {
                                foreach (XmlSbpmModelingElement element in subject.Element)
                                {
                                    elementsList.Add(element);
                                }

                            }
                        }
                    }
                    mergedSubject.SubjectName = commonName;
                    mergedSubject.RealName = commonName;
                    mergedSubject.Connection = connectionsList.ToArray();
                    mergedSubject.Element = elementsList.ToArray();

                    commonNameSubjects.Add(mergedSubject);
                    listCommonNameSubjects.Add(commonNameSubjects);

                    listCommonNameSubjects = replaceOldNamesWithCommonName(listCommonNameSubjects, oldNames, commonName);
                }
                else
                {
                    listCommonNameSubjects.Add(list);
                }
            }

            return listCommonNameSubjects;
        }