Explorar o código

trying to add stars to the header bar

tarfeef101 %!s(int64=6) %!d(string=hai) anos
pai
achega
1c4b6432e0

+ 210 - 17
assignments/a3/src/main/java/Controls.java

@@ -13,14 +13,13 @@ import javax.swing.JFileChooser;
 public class Controls extends JPanel implements Observer, Serializable
 {
   private Model model;
-  private JSlider rating;
   private JRadioButton grid;
   private JRadioButton list;
   private class customListener implements ActionListener
   {
     public void actionPerformed(ActionEvent e)
     {
-      if (e.getSource() ==grid)
+      if (e.getSource() == grid)
       {
         grid.setSelected(true);
         list.setSelected(false);
@@ -34,17 +33,187 @@ public class Controls extends JPanel implements Observer, Serializable
       }
     }
   }
+  private class customListener2 implements ActionListener
+  {
+    public void actionPerformed(ActionEvent e)
+    {
+      if (e.getSource() == star1)
+      {
+        if (star1.isSelected())
+        {
+          star1.setSelected(false);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(emptyStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(0);
+        }
+        else
+        {
+          star1.setSelected(true);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(fullStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(1);
+        }
+      }
+      else if (e.getSource() == star2)
+      {
+        if (star1.isSelected())
+        {
+          star1.setSelected(false);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(emptyStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(0);
+        }
+        else
+        {
+          star1.setSelected(true);
+          star2.setSelected(true);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(fullStarIcon);
+          star2.setIcon(fullStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(2);
+        }
+      }
+      else if (e.getSource() == star3)
+      {
+        if (star1.isSelected())
+        {
+          star1.setSelected(false);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(emptyStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(0);
+        }
+        else
+        {
+          star1.setSelected(true);
+          star2.setSelected(true);
+          star3.setSelected(true);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(fullStarIcon);
+          star2.setIcon(fullStarIcon);
+          star3.setIcon(fullStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(3);
+        }
+      }
+      else if (e.getSource() == star4)
+      {
+        if (star1.isSelected())
+        {
+          star1.setSelected(false);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(emptyStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(0);
+        }
+        else
+        {
+          star1.setSelected(true);
+          star2.setSelected(true);
+          star3.setSelected(true);
+          star4.setSelected(true);
+          star5.setSelected(false);
+          star1.setIcon(fullStarIcon);
+          star2.setIcon(fullStarIcon);
+          star3.setIcon(fullStarIcon);
+          star4.setIcon(fullStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(4);
+        }
+      }
+      else
+      {
+        if (star1.isSelected())
+        {
+          star1.setSelected(false);
+          star2.setSelected(false);
+          star3.setSelected(false);
+          star4.setSelected(false);
+          star5.setSelected(false);
+          star1.setIcon(emptyStarIcon);
+          star2.setIcon(emptyStarIcon);
+          star3.setIcon(emptyStarIcon);
+          star4.setIcon(emptyStarIcon);
+          star5.setIcon(emptyStarIcon);
+          model.changeFilter(0);
+        }
+        else
+        {
+          star1.setSelected(true);
+          star2.setSelected(true);
+          star3.setSelected(true);
+          star4.setSelected(true);
+          star5.setSelected(true);
+          star1.setIcon(fullStarIcon);
+          star2.setIcon(fullStarIcon);
+          star3.setIcon(fullStarIcon);
+          star4.setIcon(fullStarIcon);
+          star5.setIcon(fullStarIcon);
+          model.changeFilter(5);
+        }
+      }
+    }
+  }
   private customListener customlistener;
+  private customListener customlistener2;
   private ButtonGroup layouts;
-  private Image starImg;
+  private ButtonGroup stars;
+  private Image emptyStarImg;
+  private Image fullStarImg
   private Image gridImg;
   private Image listImg;
   private Image folderImg;
-  private ImageIcon starIcon;
+  private ImageIcon emptyStarIcon;
+  private ImageIcon fullStarIcon;
   private ImageIcon gridIcon;
   private ImageIcon listIcon;
   private ImageIcon folderIcon;
   private JButton fileButton;
+  private JRadioButton star1;
+  private JRadioButton star2;
+  private JRadioButton star3;
+  private JRadioButton star4;
+  private JRadioButton star5;
   private JFileChooser fileChooser;
 
   // Bob the Builder this shit
@@ -52,6 +221,7 @@ public class Controls extends JPanel implements Observer, Serializable
   {
     this.model = model;
     this.customlistener = new customListener();
+    this.customlistener2 = new customListener2();
     this.setBackground(new Color(255, 75, 50));
     this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
     this.setPreferredSize(new Dimension(1280,75));
@@ -59,7 +229,12 @@ public class Controls extends JPanel implements Observer, Serializable
     
     try
     {
-      this.starImg = ImageIO.read(new File("src/main/resources/star.png"));
+      this.fullStarImg = ImageIO.read(new File("src/main/resources/fullStar.png"));
+    } catch(IOException e) {}
+    
+    try
+    {
+      this.emptyStarImg = ImageIO.read(new File("src/main/resources/emptyStar.png"));
     } catch(IOException e) {}
 
     try
@@ -78,11 +253,13 @@ public class Controls extends JPanel implements Observer, Serializable
     } catch(IOException e) {}
     
     
-    this.starImg = starImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
+    this.fullStarImg = fullStarImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
+    this.emptyStarImg = emptyStarImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
     this.gridImg = gridImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
     this.listImg = listImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
     this.folderImg = folderImg.getScaledInstance(50, 50,  java.awt.Image.SCALE_SMOOTH);
-    this.starIcon = new ImageIcon(starImg);
+    this.fullStarIcon = new ImageIcon(fullStarImg);
+    this.emptyStarIcon = new ImageIcon(emptyStarImg);
     this.gridIcon = new ImageIcon(gridImg);
     this.listIcon = new ImageIcon(listImg);
     this.folderIcon = new ImageIcon(folderImg);
@@ -118,19 +295,35 @@ public class Controls extends JPanel implements Observer, Serializable
       }
     });
     
-    this.rating = new JSlider(0, 5, 0);
-    rating.addChangeListener(new ChangeListener()
-    {
-      public void stateChanged(ChangeEvent e)
-      {
-        model.changeFilter(rating.getValue());
-      }
-    });
-    this.rating.setPreferredSize(new Dimension(280, 75));
+    this.star1 = new JRadioButton(emptyStar, false);
+    star1.addActionListener(customlistener2);
+    this.star2 = new JRadioButton(emptyStar, false);
+    star2.addActionListener(customlistener2);
+    this.star3 = new JRadioButton(emptyStar, false);
+    star3.addActionListener(customlistener2);
+    this.star4 = new JRadioButton(emptyStar, false);
+    star4.addActionListener(customlistener2);
+    this.star5 = new JRadioButton(emptyStar, false);
+    star5.addActionListener(customlistener2);
+    this.stars = new ButtonGroup();
+    stars.add(star1);
+    stars.add(star2);
+    stars.add(star3);
+    stars.add(star4);
+    stars.add(star5);
+    star1.setSelected(false);
+    star2.setSelected(false);
+    star3.setSelected(false);
+    star4.setSelected(false);
+    star5.setSelected(false);
 
     this.add(grid);
     this.add(list);
-    this.add(rating);
+    this.add(star1);
+    this.add(star2);
+    this.add(star3);
+    this.add(star4);
+    this.add(star5);
     this.add(fileButton);
     model.addObserver(this);
   }

BIN=BIN
assignments/a3/src/main/resources/emptyStar.png


BIN=BIN
assignments/a3/src/main/resources/fullStar.png