import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
-public class PersonView extends JPanel {
+public class PersonView extends JPanel implements ActionListener {
+ private int width = 400;
+ private int height = 600;
private Person personObj;
private FirstnameView firstnameView;
private OriginView originView;
private SizeView sizeView;
private WeightView weightView;
private EyeView eyeView;
+ private JPanel personPanel = new JPanel();
+ private JButton compareButton = new JButton("Compare");
+ /*private ImageIcon originImage;
+ private ImageIcon personImage;*/
PersonView(Person personObj) {
setPersonObj(personObj);
- setFirstnameView(new FirstnameView(10, this.personObj.getFirstname()));
+ setFirstnameView(new FirstnameView(15, 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()));
+ 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);
}
public Person getPersonObj() {
public EyeView getEyeView() {
return eyeView;
}
+
+ @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 country = null;
+ if (this.getOriginView().getComboBox().getSelectedIndex() != -1)
+ country = (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) {
+ 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().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);
+ 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);
+ }
+ }
}