Switch person class usage of Origin class to Country class and use it for distance...
[Persons_Comparator.git] / src / PersonView.java
index b583cd5a9a499cbfcf1d51c25de9243652dce28d..901ce90158131b4f237ed5ca2c96a23a6152235e 100644 (file)
@@ -11,6 +11,7 @@ public class PersonView extends JComponent implements ActionListener {
     private ArrayList<Person> personArrayList;
     private FirstnameView firstnameView;
     private OriginView originView;
+    private RegionView regionView;
     private SizeView sizeView;
     private WeightView weightView;
     private EyeView eyeView;
@@ -25,6 +26,7 @@ public class PersonView extends JComponent implements ActionListener {
         setPersonObj(personObj);
         setFirstnameView(new FirstnameView(14, this.personObj.getFirstname()));
         setOriginView(new OriginView(this.personObj.getOrigin()));
+        setRegionView(new RegionView(new Region()));
         setSizeView(new SizeView(this.personObj.getPersonSize()));
         setWeightView(new WeightView(this.personObj.getWeight()));
         setEyeView(new EyeView(this.personObj.getEye()));
@@ -42,7 +44,8 @@ public class PersonView extends JComponent implements ActionListener {
         eastPanel.add(eyeView);
         westPanel.setLayout(new BoxLayout(this.westPanel, BoxLayout.PAGE_AXIS));
         westPanel.setBorder(BorderFactory.createRaisedSoftBevelBorder());
-        westPanel.add(originView);
+        //westPanel.add(originView);
+        westPanel.add(regionView);
     }
 
     public Person getPersonObj() {
@@ -81,6 +84,14 @@ public class PersonView extends JComponent implements ActionListener {
         this.originView = originView;
     }
 
+    public RegionView getRegionView() {
+        return regionView;
+    }
+
+    public void setRegionView(RegionView regionView) {
+        this.regionView = regionView;
+    }
+
     /**
      * @return
      */
@@ -159,20 +170,23 @@ public class PersonView extends JComponent implements ActionListener {
     public void actionPerformed(ActionEvent actionEvent) {
         //TODO: one can implement a smarter way of getting all inputs values inside the main panel.
         String firstname = this.getFirstnameView().getTextField().getText();
-        String country = null;
-        if (this.getOriginView().getComboBox().getSelectedIndex() != -1)
-            country = (String) this.getOriginView().getComboBox().getSelectedObjects()[0];
+        String countryName = null;
+        if (this.getRegionView().getTree().getLastSelectedPathComponent() != null)
+            countryName = this.getRegionView().getTree().getLastSelectedPathComponent().toString();
+        /*if (this.getOriginView().getComboBox().getSelectedIndex() != -1)
+            countryName = (String) this.getOriginView().getComboBox().getSelectedObjects()[0];*/
         Integer size = (Integer) this.getSizeView().getSpinner().getValue();
         Integer weight = (Integer) this.getWeightView().getComboBox().getSelectedItem();
         String eye_color = (String) this.getEyeView().getColorsList().getSelectedValue();
-        if (firstname.equals("") || country == null || eye_color == null) {
+        if (firstname.equals("") || countryName == null || eye_color == null) {
             JOptionPane.showMessageDialog(this,
                     "Some required fields are missing.",
                     "Error",
                     JOptionPane.ERROR_MESSAGE);
         } else {
             this.getPersonObj().setFirstname(new Firstname(firstname));
-            this.getPersonObj().setOrigin(new Origin(country));
+            //this.getPersonObj().setOrigin(new Origin(countryName));
+            this.getPersonObj().setCountry(new Country(countryName));
             this.getPersonObj().setPersonSize(new Size(size));
             this.getPersonObj().setWeight(new Weight(weight));
             this.getPersonObj().setEye(new Eye(eye_color));
@@ -183,6 +197,7 @@ public class PersonView extends JComponent implements ActionListener {
             //Utils.displayArrayList(personArrayList);
             Person closestPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) + 1);
             personPanel.setRightContentText(closestPerson.getFirstname().getFirstname() + " at distance " + closestPerson.getDistanceFromReference());
+            personPanel.getRightPanel().drawPerson(closestPerson);
         }
     }
 }