648 @return item ID (integer) |
648 @return item ID (integer) |
649 """ |
649 """ |
650 self.__itemId += 1 |
650 self.__itemId += 1 |
651 return self.__itemId |
651 return self.__itemId |
652 |
652 |
653 def findItem(self, id): |
653 def findItem(self, itemId): |
654 """ |
654 """ |
655 Public method to find an UML item based on the ID. |
655 Public method to find an UML item based on the ID. |
656 |
656 |
657 @param id of the item to search for (integer) |
657 @param itemId of the item to search for (integer) |
658 @return item found (UMLItem) or None |
658 @return item found (UMLItem) or None |
659 """ |
659 """ |
660 for item in self.scene().items(): |
660 for item in self.scene().items(): |
661 try: |
661 try: |
662 if item.getId() == id: |
662 if item.getId() == itemId: |
663 return item |
663 return item |
664 except AttributeError: |
664 except AttributeError: |
665 continue |
665 continue |
666 |
666 |
667 return None |
667 return None |
730 if not line.startswith(("item:", "association:")): |
730 if not line.startswith(("item:", "association:")): |
731 return False, linenum |
731 return False, linenum |
732 |
732 |
733 key, value = line.split(": ", 1) |
733 key, value = line.split(": ", 1) |
734 if key == "item": |
734 if key == "item": |
735 id, x, y, itemType, itemData = value.split(", ", 4) |
735 itemId, x, y, itemType, itemData = value.split(", ", 4) |
736 try: |
736 try: |
737 id = int(id.split("=", 1)[1].strip()) |
737 itemId = int(itemId.split("=", 1)[1].strip()) |
738 x = float(x.split("=", 1)[1].strip()) |
738 x = float(x.split("=", 1)[1].strip()) |
739 y = float(y.split("=", 1)[1].strip()) |
739 y = float(y.split("=", 1)[1].strip()) |
740 itemType = itemType.split("=", 1)[1].strip() |
740 itemType = itemType.split("=", 1)[1].strip() |
741 if itemType == ClassItem.ItemType: |
741 if itemType == ClassItem.ItemType: |
742 itm = ClassItem(x=x, y=y, scene=self.scene()) |
742 itm = ClassItem(x=x, y=y, scene=self.scene()) |
743 elif itemType == ModuleItem.ItemType: |
743 elif itemType == ModuleItem.ItemType: |
744 itm = ModuleItem(x=x, y=y, scene=self.scene()) |
744 itm = ModuleItem(x=x, y=y, scene=self.scene()) |
745 elif itemType == PackageItem.ItemType: |
745 elif itemType == PackageItem.ItemType: |
746 itm = PackageItem(x=x, y=y, scene=self.scene()) |
746 itm = PackageItem(x=x, y=y, scene=self.scene()) |
747 itm.setId(id) |
747 itm.setId(itemId) |
748 umlItems[id] = itm |
748 umlItems[itemId] = itm |
749 if not itm.parseItemDataString(version, itemData): |
749 if not itm.parseItemDataString(version, itemData): |
750 return False, linenum |
750 return False, linenum |
751 except ValueError: |
751 except ValueError: |
752 return False, linenum |
752 return False, linenum |
753 elif key == "association": |
753 elif key == "association": |