X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FRegionView.java;h=c5921d6a881b6ac4a59297a2463c4bcf7fbced1a;hb=64418ffb240e30ec22560aafd85b07792ac71c80;hp=1a28f5a3c5100d0826619f3717def39b197c7493;hpb=f56708fa0a19755ac5ec0313d9ee9c45a9aef0ce;p=Persons_Comparator.git diff --git a/src/RegionView.java b/src/RegionView.java index 1a28f5a..c5921d6 100644 --- a/src/RegionView.java +++ b/src/RegionView.java @@ -1,17 +1,92 @@ import javax.swing.*; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreeSelectionModel; +import java.util.ListIterator; public class RegionView extends JPanel { private Region regionObj; - private JLabel label; + private JTree tree; RegionView(Region regionObj) { setRegionObj(regionObj); - this.label = new JLabel(); - this.label.setText("Region"); + DefaultMutableTreeNode top = new DefaultMutableTreeNode("Region"); + + for (String continent : regionObj.getContinents()) { + DefaultMutableTreeNode topContinent = new DefaultMutableTreeNode(continent); + if (continent.equals("Europe")) { + ListIterator iter = regionObj.getCountryArrayListEurope().listIterator(); + while (iter.hasNext()) { + Country countryCursor = iter.next(); + topContinent.add(new DefaultMutableTreeNode(countryCursor.getName())); + top.add(topContinent); + } + } else if (continent.equals("Africa")) { + ListIterator iter = regionObj.getCountryArrayListAfrica().listIterator(); + while (iter.hasNext()) { + Country countryCursor = iter.next(); + topContinent.add(new DefaultMutableTreeNode(countryCursor.getName())); + top.add(topContinent); + } + } else if (continent.equals("Americas")) { + ListIterator iter = regionObj.getCountryArrayListAmericas().listIterator(); + while (iter.hasNext()) { + Country countryCursor = iter.next(); + topContinent.add(new DefaultMutableTreeNode(countryCursor.getName())); + top.add(topContinent); + } + } else if (continent.equals("Asia")) { + ListIterator iter = regionObj.getCountryArrayListAsia().listIterator(); + while (iter.hasNext()) { + Country countryCursor = iter.next(); + topContinent.add(new DefaultMutableTreeNode(countryCursor.getName())); + top.add(topContinent); + } + } else if (continent.equals("Oceania")) { + ListIterator iter = regionObj.getCountryArrayListOceania().listIterator(); + while (iter.hasNext()) { + Country countryCursor = iter.next(); + topContinent.add(new DefaultMutableTreeNode(countryCursor.getName())); + top.add(topContinent); + } + } + } + sortTree(top); + tree = new JTree(top); + tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + add(new JScrollPane(tree)); + } + + private void sortTree(DefaultMutableTreeNode root) { + { + for (int i = 0; i < root.getChildCount() - 1; i++) { + DefaultMutableTreeNode node = (DefaultMutableTreeNode) root.getChildAt(i); + String nt = node.getUserObject().toString(); + + for (int j = i + 1; j <= root.getChildCount() - 1; j++) { + DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) root + .getChildAt(j); + String np = prevNode.getUserObject().toString(); + if (nt.compareToIgnoreCase(np) > 0) { + root.insert(node, j); + break; + } + } + if (node.getChildCount() > 0) { + this.sortTree(node); + } + } + } + } + + public JTree getTree() { + return tree; + } + + public Region getRegionObj() { + return regionObj; } public void setRegionObj(Region regionObj) { this.regionObj = regionObj; - } }