-public class RegionView {
+import javax.swing.*;
+import javax.swing.tree.DefaultMutableTreeNode;
+import java.util.ListIterator;
+
+public class RegionView extends JPanel {
+ private Region regionObj;
+ private JTree tree;
+
+ RegionView(Region regionObj) {
+ setRegionObj(regionObj);
+ DefaultMutableTreeNode top = new DefaultMutableTreeNode("Region");
+
+ for (String continent : regionObj.getContinents()) {
+ DefaultMutableTreeNode topContinent = new DefaultMutableTreeNode(continent);
+ if (continent.equals("Europe")) {
+ ListIterator<Country> 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<Country> 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<Country> 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<Country> 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<Country> 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);
+ add(new JScrollPane(tree));
+ }
+
+ public static DefaultMutableTreeNode 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();
+
+ System.out.println(nt + " " + np);
+ if (nt.compareToIgnoreCase(np) > 0) {
+
+ root.insert(node, j);
+ break;
+ }
+ }
+ if (node.getChildCount() > 0) {
+ node = sortTree(node);
+ }
+ }
+
+ return root;
+ }
+ }
+
+ public void setRegionObj(Region regionObj) {
+ this.regionObj = regionObj;
+ }
}