X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FPersonView.java;h=a98c1e7d89796ce7d1078d0b1c202252b261a104;hb=9b3bfcdd95253a04ed12a676ee29a9d777c1e496;hp=9743d391456788478ab08cfe35f0d7afd34aeaf3;hpb=6977e6142a133673703769e092e6283dda73cf4f;p=Persons_Comparator.git diff --git a/src/PersonView.java b/src/PersonView.java index 9743d39..a98c1e7 100644 --- a/src/PersonView.java +++ b/src/PersonView.java @@ -1,49 +1,156 @@ 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(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() { + return personObj; + } + + public void setPersonObj(Person personObj) { + this.personObj = personObj; + } + + /** + * @return + */ public FirstnameView getFirstnameView() { return firstnameView; } + /** + * @param firstnameView + */ public void setFirstnameView(FirstnameView firstnameView) { this.firstnameView = firstnameView; } + /** + * @return + */ public OriginView getOriginView() { return originView; } + /** + * @param originView + */ public void setOriginView(OriginView originView) { this.originView = originView; } + /** + * @return + */ public SizeView getSizeView() { return sizeView; } + /** + * @param sizeView + */ public void setSizeView(SizeView sizeView) { this.sizeView = sizeView; } + /** + * @return + */ public WeightView getWeightView() { return weightView; } - public void setWeightView(EyeView eyeView) { - this.eyeView = eyeView; + /** + * @param weightView + */ + public void setWeightView(WeightView weightView) { + this.weightView = weightView; } + /** + * @param eyeView + */ public void setEyeView(EyeView eyeView) { this.eyeView = eyeView; } + /** + * @return + */ 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 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); + } + } }