Change the EyeView for a JComboList, store the color string inside the Eye class...
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 11 Jan 2019 14:54:20 +0000 (15:54 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 11 Jan 2019 14:54:20 +0000 (15:54 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/Eye.java
src/EyeView.java

index bf83b8a0410ac43b17604fdae45f82f8935aa655..6b71f354d6cd9e3d8a7bb043680efda045a1b573 100644 (file)
@@ -1,17 +1,34 @@
 import java.awt.Color;
+import java.util.Arrays;
 
 public class Eye implements Comparable<Eye> {
+    private String strColor;
     private Color color;
-    private String[] colorsList = {"black", "green", "blue", "brown"};
+    private String[] colorsList = {"black", "blue", "brown", "green"};
 
     Eye() {
+        sortColorList();
     }
 
     /**
      * @param color
      */
     Eye(String color) {
+        setStrColor(color);
         setColor(color);
+        sortColorList();
+    }
+
+    public String getStrColor() {
+        return strColor;
+    }
+
+    public void setStrColor(String strColor) {
+        if (validateColor(strColor)) {
+            this.strColor = strColor;
+        } else {
+            throw new IllegalArgumentException("Color must be" + new Eye().colorListToString());
+        }
     }
 
     public String[] getColorsList() {
@@ -36,7 +53,7 @@ public class Eye implements Comparable<Eye> {
                 this.color = Color.getColor(color);
 
         } else {
-            throw new IllegalArgumentException("Color must be" + new Eye().toString());
+            throw new IllegalArgumentException("Color must be" + new Eye().colorListToString());
         }
     }
 
@@ -53,6 +70,10 @@ public class Eye implements Comparable<Eye> {
         return false;
     }
 
+    private void sortColorList() {
+        Arrays.sort(this.colorsList);
+    }
+
     /**
      * @param eye
      * @return
@@ -67,8 +88,7 @@ public class Eye implements Comparable<Eye> {
         return distance.intValue();
     }
 
-    @Override
-    public String toString() {
+    private String colorListToString() {
         StringBuilder stringBuilder = new StringBuilder();
         for (String c : colorsList) {
             stringBuilder.append(" ");
index bf047c729fd2e72cace6cb27255c92104cfaa252..f976a4e81187fea41e49e8ed4086e00bc9a01f0e 100644 (file)
@@ -3,7 +3,7 @@ import javax.swing.*;
 public class EyeView extends JComponent {
     private Eye eyeObj;
     private JLabel label;
-    private JList colorsList;
+    private JComboBox colorsList;
 
     /**
      * @param eyeObj
@@ -12,9 +12,9 @@ public class EyeView extends JComponent {
         setEyeObj(eyeObj);
         this.label = new JLabel();
         this.label.setText("Eyes color");
-        this.colorsList = new JList(this.getEyeObj().getColorsList());
-        this.colorsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        this.colorsList.setLayoutOrientation(JList.VERTICAL);
+        this.colorsList = new JComboBox<>(this.getEyeObj().getColorsList());
+        if (this.getEyeObj().getStrColor() != null)
+            this.colorsList.setSelectedItem(this.getEyeObj().getStrColor());
         add(label);
         add(colorsList);
     }