+ 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
+ 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 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("") || 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(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));
+ ArrayList<Person> personArrayList = this.getPersonArrayList();
+ //Utils.displayArrayList(personArrayList);
+ Utils.computeDistanceFrom(getPersonObj(), personArrayList);
+ personArrayList.sort(getPersonObj());
+ //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);
+ }