/// <summary> /// ?abc? /// </summary> public static void Start() { MetadataDocumentManagement metaDataDocMgt = MetadataDocumentManagement.Instance; if (metaDataDocMgt.MoveElementsDoc == null) { return; } XmlNodeList pageNodeList = metaDataDocMgt.MoveElementsDoc.SelectNodes(@"./a:MovePageElements/a:Page", metaDataDocMgt.XmlNamespaceMgt); foreach (XmlNode pageNode in pageNodeList) { String pageID = pageNode.Attributes["ID"].Value; metaDataDocMgt.XmlCurrentFormNode = metaDataDocMgt.XmlDocument.SelectSingleNode("./a:Objects/a:Page[@ID='" + pageID + "']", metaDataDocMgt.XmlNamespaceMgt); if (metaDataDocMgt.XmlCurrentFormNode == null) { continue; } foreach (XmlNode pageElement in pageNode.ChildNodes) { if (pageElement.Name == "ElementToType") { String elementID = pageElement.Attributes["ID"].Value; String destinationType = pageElement.Attributes["destinationType"].Value; XmlNode idToBeMoved = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:ID[../a:ID='" + elementID + "']", metaDataDocMgt.XmlNamespaceMgt); if (idToBeMoved != null) { XmlNode nodeToMove = null; if (idToBeMoved.ParentNode.Name == "Properties") { nodeToMove = idToBeMoved.ParentNode.ParentNode; if (nodeToMove != null) { XmlNode destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:" + destinationType, metaDataDocMgt.XmlNamespaceMgt); if (destinationNode == null) { if ((nodeToMove.Name == "Control") || (nodeToMove.Name == "Group")) { destinationNode = PageControls.GetPageControlNode(destinationType); } else { destinationNode = PageActions.GetPageActionNode(destinationType); } } destinationNode.AppendChild(nodeToMove); } } else /* Action */ { nodeToMove = idToBeMoved.ParentNode; if (nodeToMove != null) { XmlNode destinationNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:" + destinationType, metaDataDocMgt.XmlNamespaceMgt); if (destinationNode == null) { destinationNode = PageActions.GetPageActionNode(destinationType); } XmlNode destinationElement = destinationNode.ParentNode; destinationElement.AppendChild(nodeToMove); } } } /* TODO append ID node from metaPage to metaPage destinationType - if type not exist then create it. */ } if (pageElement.Name == "ElementToID") { String elementID = pageElement.Attributes["ID"].Value; String destinationID = pageElement.Attributes["destinationID"].Value; XmlNode idToBeMoved = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:ID[../a:ID='" + elementID + "']", metaDataDocMgt.XmlNamespaceMgt); if (idToBeMoved != null) { XmlNode nodeToMove = null; if (idToBeMoved.ParentNode.Name == "Properties") { nodeToMove = idToBeMoved.ParentNode.ParentNode; if (nodeToMove != null) { XmlNode destinationIDNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:ID[../a:ID='" + destinationID + "']", metaDataDocMgt.XmlNamespaceMgt); XmlNode destinationElementNode = destinationIDNode.ParentNode.ParentNode; destinationElementNode.AppendChild(nodeToMove); } } else /* Action */ { nodeToMove = idToBeMoved.ParentNode; if (nodeToMove != null) { XmlNode destinationIDNode = metaDataDocMgt.XmlCurrentFormNode.SelectSingleNode(".//a:ID[../a:ID='" + destinationID + "']", metaDataDocMgt.XmlNamespaceMgt); XmlNode destinationElement = destinationIDNode.ParentNode; destinationElement.AppendChild(nodeToMove); } } } } AssignImportance(pageElement, metaDataDocMgt); } } }