|
@@ -21,6 +21,20 @@ public class Gallery extends JPanel implements Observer, Serializable
|
|
|
this.items = new ArrayList();
|
|
|
reList();
|
|
|
reFill();
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Item.fullStarImg = ImageIO.read(new File("src/main/resources/fullStar.png"));
|
|
|
+ } catch(IOException e) {}
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Item.emptyStarImg = ImageIO.read(new File("src/main/resources/emptyStar.png"));
|
|
|
+ } catch(IOException e) {}
|
|
|
+ Item.fullStarImg = Item.fullStarImg.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
|
+ Item.emptyStarImg = Item.emptyStarImg.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
|
+ Item.fullStarIcon = new ImageIcon(Item.fullStarImg);
|
|
|
+ Item.emptyStarIcon = new ImageIcon(Item.emptyStarImg);
|
|
|
+
|
|
|
model.addObserver(this);
|
|
|
}
|
|
|
|
|
@@ -74,8 +88,18 @@ class Item extends JPanel implements Serializable
|
|
|
private ImageIcon picture;
|
|
|
private JLabel pic;
|
|
|
private JLabel name;
|
|
|
- private JLabel rating;
|
|
|
+ private JPanel rating;
|
|
|
private JLabel dateSize;
|
|
|
+ public static Image fullStarImg;
|
|
|
+ public static Image emptyStarImg;
|
|
|
+ public static ImageIcon fullStarIcon;
|
|
|
+ public static ImageIcon emptyStarIcon;
|
|
|
+ private JRadioButton star1;
|
|
|
+ private JRadioButton star2;
|
|
|
+ private JRadioButton star3;
|
|
|
+ private JRadioButton star4;
|
|
|
+ private JRadioButton star5;
|
|
|
+ private ButtonGroup stars;
|
|
|
|
|
|
private class clickListener extends MouseInputAdapter
|
|
|
{
|
|
@@ -91,11 +115,196 @@ class Item extends JPanel implements Serializable
|
|
|
}
|
|
|
}
|
|
|
private clickListener clicklistener;
|
|
|
+
|
|
|
+ private class superListener 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);
|
|
|
+ data.setRating(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);
|
|
|
+ data.setRating(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (e.getSource() == star2)
|
|
|
+ {
|
|
|
+ if (!(star2.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);
|
|
|
+ data.setRating(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);
|
|
|
+ data.setRating(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (e.getSource() == star3)
|
|
|
+ {
|
|
|
+ if (!(star3.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);
|
|
|
+ data.setRating(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);
|
|
|
+ data.setRating(3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (e.getSource() == star4)
|
|
|
+ {
|
|
|
+ if (!(star4.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);
|
|
|
+ data.setRating(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);
|
|
|
+ data.setRating(4);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!(star5.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);
|
|
|
+ data.setRating(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);
|
|
|
+ data.setRating(5);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private superListener superlistener;
|
|
|
|
|
|
public Item(PicData p)
|
|
|
{
|
|
|
this.data = p;
|
|
|
this.clicklistener = new clickListener();
|
|
|
+ this.superlistener = new superListener();
|
|
|
+ this.star1 = new JRadioButton(emptyStarIcon, false);
|
|
|
+ star1.addActionListener(superlistener);
|
|
|
+ this.star2 = new JRadioButton(emptyStarIcon, false);
|
|
|
+ star2.addActionListener(superlistener);
|
|
|
+ this.star3 = new JRadioButton(emptyStarIcon, false);
|
|
|
+ star3.addActionListener(superlistener);
|
|
|
+ this.star4 = new JRadioButton(emptyStarIcon, false);
|
|
|
+ star4.addActionListener(superlistener);
|
|
|
+ this.star5 = new JRadioButton(emptyStarIcon, false);
|
|
|
+ star5.addActionListener(superlistener);
|
|
|
+ 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.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
|
|
|
this.setPreferredSize(new Dimension(200, 300));
|
|
|
this.picture = new ImageIcon(data.getPic());
|
|
@@ -104,7 +313,13 @@ class Item extends JPanel implements Serializable
|
|
|
this.pic.setPreferredSize(new Dimension(200, 200));
|
|
|
this.name = new JLabel(data.getName(), JLabel.CENTER);
|
|
|
this.name.setPreferredSize(new Dimension(200, 25));
|
|
|
- this.rating = new JLabel(Integer.toString(data.getRating()), JLabel.CENTER);
|
|
|
+ this.rating = new JPanel();
|
|
|
+ this.rating.setLayout(new BoxLayout(this.rating, BoxLayout.X_AXIS));
|
|
|
+ this.rating.add(star1);
|
|
|
+ this.rating.add(star2);
|
|
|
+ this.rating.add(star3);
|
|
|
+ this.rating.add(star4);
|
|
|
+ this.rating.add(star5);
|
|
|
this.rating.setPreferredSize(new Dimension(200, 50));
|
|
|
this.dateSize = new JLabel(Long.toString(data.getLastmod()) + Long.toString(data.getSize()), JLabel.CENTER);
|
|
|
this.dateSize.setPreferredSize(new Dimension(200, 25));
|
|
@@ -114,4 +329,4 @@ class Item extends JPanel implements Serializable
|
|
|
this.add(dateSize);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|