HashMap<FamilyType, QTreeWidgetItem> familyItems = new HashMap<FamilyType, QTreeWidgetItem>();
HashMap<String, QTreeWidgetItem> subFamilyItems = new HashMap<String, QTreeWidgetItem>();
for(String partName : FileTools.getAvailableParts()){
FamilyType type = PartNameTools.getFamilyTypeFromPart(partName);
QTreeWidgetItem familyItem = familyItems.get(type);
if(familyItem == null){
familyItem = new QTreeWidgetItem(treeWidget);
familyItem.setText(0, PartNameTools.getFormalFamilyNameFromType(type));
familyItems.put(type, familyItem);
}
String subFamilyName = PartNameTools.getSubFamilyFromPart(partName);
QTreeWidgetItem partItem = null;
QTreeWidgetItem parent = familyItem;
if(subFamilyName != null){
QTreeWidgetItem subFamilyItem = subFamilyItems.get(type.toString() + subFamilyName);
if(subFamilyItem == null){
subFamilyItem = new QTreeWidgetItem(parent);
subFamilyItem.setText(0, subFamilyName);
subFamilyItems.put(type.toString() + subFamilyName, subFamilyItem);
}
parent = subFamilyItem;
}
partItem = new QTreeWidgetItem(parent);
partItem.setText(0, partName);
partItem.setData(0, ItemDataRole.AccessibleDescriptionRole, partName);
}
return treeWidget;
}