2 import javax
.swing
.tree
.DefaultMutableTreeNode
;
3 import javax
.swing
.tree
.TreeSelectionModel
;
4 import java
.util
.ListIterator
;
6 public class RegionView
extends JPanel
{
7 private Region regionObj
;
10 RegionView(Region regionObj
) {
11 setRegionObj(regionObj
);
12 DefaultMutableTreeNode top
= new DefaultMutableTreeNode("Region");
14 for (String continent
: regionObj
.getContinents()) {
15 DefaultMutableTreeNode topContinent
= new DefaultMutableTreeNode(continent
);
16 if (continent
.equals("Europe")) {
17 ListIterator
<Country
> iter
= regionObj
.getCountryArrayListEurope().listIterator();
18 while (iter
.hasNext()) {
19 Country countryCursor
= iter
.next();
20 topContinent
.add(new DefaultMutableTreeNode(countryCursor
.getName()));
21 top
.add(topContinent
);
23 } else if (continent
.equals("Africa")) {
24 ListIterator
<Country
> iter
= regionObj
.getCountryArrayListAfrica().listIterator();
25 while (iter
.hasNext()) {
26 Country countryCursor
= iter
.next();
27 topContinent
.add(new DefaultMutableTreeNode(countryCursor
.getName()));
28 top
.add(topContinent
);
30 } else if (continent
.equals("Americas")) {
31 ListIterator
<Country
> iter
= regionObj
.getCountryArrayListAmericas().listIterator();
32 while (iter
.hasNext()) {
33 Country countryCursor
= iter
.next();
34 topContinent
.add(new DefaultMutableTreeNode(countryCursor
.getName()));
35 top
.add(topContinent
);
37 } else if (continent
.equals("Asia")) {
38 ListIterator
<Country
> iter
= regionObj
.getCountryArrayListAsia().listIterator();
39 while (iter
.hasNext()) {
40 Country countryCursor
= iter
.next();
41 topContinent
.add(new DefaultMutableTreeNode(countryCursor
.getName()));
42 top
.add(topContinent
);
44 } else if (continent
.equals("Oceania")) {
45 ListIterator
<Country
> iter
= regionObj
.getCountryArrayListOceania().listIterator();
46 while (iter
.hasNext()) {
47 Country countryCursor
= iter
.next();
48 topContinent
.add(new DefaultMutableTreeNode(countryCursor
.getName()));
49 top
.add(topContinent
);
54 tree
= new JTree(top
);
55 tree
.getSelectionModel().setSelectionMode(TreeSelectionModel
.SINGLE_TREE_SELECTION
);
56 add(new JScrollPane(tree
));
59 public static DefaultMutableTreeNode
sortTree(DefaultMutableTreeNode root
) {
61 for (int i
= 0; i
< root
.getChildCount() - 1; i
++) {
62 DefaultMutableTreeNode node
= (DefaultMutableTreeNode
) root
.getChildAt(i
);
63 String nt
= node
.getUserObject().toString();
65 for (int j
= i
+ 1; j
<= root
.getChildCount() - 1; j
++) {
66 DefaultMutableTreeNode prevNode
= (DefaultMutableTreeNode
) root
68 String np
= prevNode
.getUserObject().toString();
69 if (nt
.compareToIgnoreCase(np
) > 0) {
74 if (node
.getChildCount() > 0) {
82 public JTree
getTree() {
86 public void setRegionObj(Region regionObj
) {
87 this.regionObj
= regionObj
;
90 public Region
getRegionObj() {