X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FEyeView.java;h=48ad0b5636d36d28b8f1cbaa9565d19e7b0d905d;hb=d418dae1d4529879f8d604d062df75008bb3e585;hp=aa54c8b8d76bdf0109e9fc294d8a21d63feacf63;hpb=f1e9d6d2fcc7253b117278c4439b656a1e532e68;p=Persons_Comparator.git diff --git a/src/EyeView.java b/src/EyeView.java index aa54c8b..48ad0b5 100644 --- a/src/EyeView.java +++ b/src/EyeView.java @@ -1,28 +1,31 @@ import javax.swing.*; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import java.awt.*; +import java.util.Arrays; -public class EyeView extends JComponent { +public class EyeView extends JPanel implements ListSelectionListener { private Eye eyeObj; private JLabel label; private JList colorsList; - EyeView() { - setEyeObj(new Eye()); + /** + * @param eyeObj + */ + EyeView(Eye eyeObj) { + setEyeObj(eyeObj); this.label = new JLabel(); this.label.setText("Eyes color"); - this.colorsList = new JList(getEyeObj().getColorsList()); + this.colorsList = new JList<>(this.getEyeObj().getColorsList()); this.colorsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); this.colorsList.setLayoutOrientation(JList.VERTICAL); + this.colorsList.setSelectedIndex(Arrays.asList(this.getEyeObj().getColorsList()).indexOf(this.getEyeObj().getStrColor())); + this.colorsList.setCellRenderer(new EyeCellRenderer()); + this.colorsList.addListSelectionListener(this); add(label); add(colorsList); } - /** - * @param eyeObj - */ - EyeView(Eye eyeObj) { - setEyeObj(eyeObj); - } - /** * @return */ @@ -36,4 +39,28 @@ public class EyeView extends JComponent { public void setEyeObj(Eye eyeObj) { this.eyeObj = eyeObj; } + + public JList getColorsList() { + return colorsList; + } + + @Override + public void valueChanged(ListSelectionEvent listSelectionEvent) { + Eye currentEye = new Eye((String) getColorsList().getSelectedValue()); + PersonLeftPanel personLeftPanel = MainWindowsView.getInstance().getCurrentPersonView().getPersonPanel().getLeftPanel(); + personLeftPanel.drawEyes(currentEye.getColor()); + } + + private static class EyeCellRenderer extends DefaultListCellRenderer { + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + Eye currentEye = new Eye((String) list.getModel().getElementAt(index)); + c.setBackground(currentEye.getColor()); + c.setForeground(Color.WHITE); + if (isSelected) { + setBackground(getBackground().darker()); + } + return c; + } + } }