Split the person panel into two sub panels : one for the current person, one for...
[Persons_Comparator.git] / src / PersonView.java
index a98c1e7d89796ce7d1078d0b1c202252b261a104..b583cd5a9a499cbfcf1d51c25de9243652dce28d 100644 (file)
@@ -4,40 +4,45 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.ArrayList;
 
-public class PersonView extends JPanel implements ActionListener {
-    private int width = 400;
+public class PersonView extends JComponent implements ActionListener {
+    private int width = 600;
     private int height = 600;
     private Person personObj;
+    private ArrayList<Person> personArrayList;
     private FirstnameView firstnameView;
     private OriginView originView;
     private SizeView sizeView;
     private WeightView weightView;
     private EyeView eyeView;
-    private JPanel personPanel = new JPanel();
+    private JPanel northPanel = new JPanel();
+    private JPanel southPanel = new JPanel();
+    private JPanel eastPanel = new JPanel();
+    private JPanel westPanel = new JPanel();
+    private PersonPanel personPanel = new PersonPanel();
     private JButton compareButton = new JButton("Compare");
-    /*private ImageIcon originImage;
-    private ImageIcon personImage;*/
 
-    PersonView(Person personObj) {
+    PersonView(Person personObj, ArrayList<Person> personArrayList) {
         setPersonObj(personObj);
-        setFirstnameView(new FirstnameView(15, this.personObj.getFirstname()));
+        setFirstnameView(new FirstnameView(14, this.personObj.getFirstname()));
         setOriginView(new OriginView(this.personObj.getOrigin()));
         setSizeView(new SizeView(this.personObj.getPersonSize()));
         setWeightView(new WeightView(this.personObj.getWeight()));
         setEyeView(new EyeView(this.personObj.getEye()));
+        setPersonArrayList(personArrayList);
 
         this.compareButton.addActionListener(this);
-        JLabel personLabel = new JLabel("Closest person found");
-        personPanel.add(personLabel);
-        setPreferredSize(new Dimension(this.width, this.height));
-        setLayout(new GridLayout(7, 1, 0, 4));
-        add(firstnameView);
-        add(originView);
-        add(sizeView);
-        add(weightView);
-        add(eyeView);
-        add(compareButton);
-        add(personPanel);
+        northPanel.setBorder(BorderFactory.createRaisedSoftBevelBorder());
+        northPanel.add(firstnameView);
+        southPanel.setBorder(BorderFactory.createRaisedSoftBevelBorder());
+        southPanel.add(compareButton);
+        eastPanel.setLayout(new BoxLayout(this.eastPanel, BoxLayout.PAGE_AXIS));
+        eastPanel.setBorder(BorderFactory.createRaisedSoftBevelBorder());
+        eastPanel.add(sizeView);
+        eastPanel.add(weightView);
+        eastPanel.add(eyeView);
+        westPanel.setLayout(new BoxLayout(this.westPanel, BoxLayout.PAGE_AXIS));
+        westPanel.setBorder(BorderFactory.createRaisedSoftBevelBorder());
+        westPanel.add(originView);
     }
 
     public Person getPersonObj() {
@@ -104,6 +109,13 @@ public class PersonView extends JPanel implements ActionListener {
         this.weightView = weightView;
     }
 
+    /**
+     * @return
+     */
+    public EyeView getEyeView() {
+        return eyeView;
+    }
+
     /**
      * @param eyeView
      */
@@ -111,11 +123,36 @@ public class PersonView extends JPanel implements ActionListener {
         this.eyeView = eyeView;
     }
 
-    /**
-     * @return
-     */
-    public EyeView getEyeView() {
-        return eyeView;
+    public ArrayList<Person> getPersonArrayList() {
+        return personArrayList;
+    }
+
+    public void setPersonArrayList(ArrayList<Person> personArrayList) {
+        this.personArrayList = personArrayList;
+    }
+
+    public Dimension getDimension() {
+        return new Dimension(this.width, this.height);
+    }
+
+    public JPanel getNorthPanel() {
+        return northPanel;
+    }
+
+    public JPanel getSouthPanel() {
+        return southPanel;
+    }
+
+    public JPanel getEastPanel() {
+        return eastPanel;
+    }
+
+    public JPanel getWestPanel() {
+        return westPanel;
+    }
+
+    public PersonPanel getPersonPanel() {
+        return personPanel;
     }
 
     @Override
@@ -139,18 +176,13 @@ public class PersonView extends JPanel implements ActionListener {
             this.getPersonObj().setPersonSize(new Size(size));
             this.getPersonObj().setWeight(new Weight(weight));
             this.getPersonObj().setEye(new Eye(eye_color));
-            //this.getPersonObj().displayPersonArrayList();
-            ArrayList<Person> personArrayList = this.getPersonObj().getPersonArrayList();
-            personArrayList.add(this.getPersonObj());
-            this.getPersonObj().displayArrayList(personArrayList);
+            ArrayList<Person> personArrayList = this.getPersonArrayList();
+            //Utils.displayArrayList(personArrayList);
+            Utils.computeDistanceFrom(getPersonObj(), personArrayList);
             personArrayList.sort(getPersonObj());
-            this.getPersonObj().displayArrayList(personArrayList);
-            Integer previousPersonIndex = personArrayList.indexOf(this.getPersonObj()) - 1;
-            Integer nextPersonIndex = personArrayList.indexOf(this.getPersonObj()) + 1;
-            //Person previousPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) - 1);
-            //Person nextPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) + 1);
-            System.out.println(previousPersonIndex);
-            System.out.println(nextPersonIndex);
+            //Utils.displayArrayList(personArrayList);
+            Person closestPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) + 1);
+            personPanel.setRightContentText(closestPerson.getFirstname().getFirstname() + " at distance " + closestPerson.getDistanceFromReference());
         }
     }
 }