123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- import java.io.*;
- import java.io.File;
- import java.util.*;
- import java.awt.*;
- import javax.swing.*;
- import javax.swing.event.*;
- import java.awt.event.*;
- import javax.swing.ImageIcon;
- import java.awt.image.*;
- import javax.imageio.ImageIO;
- import javax.swing.JFileChooser;
- public class Controls extends JPanel implements Observer, Serializable
- {
- private Model model;
- private JRadioButton grid;
- private JRadioButton list;
- private class customListener implements ActionListener, Serializable
- {
- public void actionPerformed(ActionEvent e)
- {
- if (e.getSource() == grid)
- {
- grid.setSelected(true);
- list.setSelected(false);
- model.switchLayout(true);
- grid.setBorderPainted(true);
- list.setBorderPainted(false);
- }
- else
- {
- grid.setSelected(false);
- list.setSelected(true);
- model.switchLayout(false);
- list.setBorderPainted(true);
- grid.setBorderPainted(false);
- }
- }
- }
- private class superListener implements ActionListener, Serializable
- {
- public void actionPerformed(ActionEvent e)
- {
- if (e.getSource() == star1)
- {
- if (!(star1.isSelected()) || model.getFilter() == 1)
- {
- 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 (!(star2.isSelected()) || model.getFilter() == 2)
- {
- 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 (!(star3.isSelected()) || model.getFilter() == 3)
- {
- 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 (!(star4.isSelected()) || model.getFilter() == 4)
- {
- 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 (!(star5.isSelected()) || model.getFilter() == 5)
- {
- 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 superListener superlistener;
- private ButtonGroup layouts;
- private ButtonGroup stars;
- private transient Image emptyStarImg;
- private transient Image fullStarImg;
- private transient Image gridImg;
- private transient Image listImg;
- private transient Image lightGridImg;
- private transient Image lightListImg;
- private transient Image folderImg;
- private ImageIcon emptyStarIcon;
- private ImageIcon fullStarIcon;
- private ImageIcon gridIcon;
- private ImageIcon listIcon;
- private ImageIcon lightGridIcon;
- private ImageIcon lightListIcon;
- 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
- public Controls(Model model)
- {
- this.model = model;
- this.customlistener = new customListener();
- this.superlistener = new superListener();
- this.setBackground(Color.white);
- this.setLayout(new BorderLayout(0 , 0));
- this.setPreferredSize(new Dimension(1280,75));
- this.setMinimumSize(new Dimension(320, 75));
-
- try
- {
- 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
- {
- this.gridImg = ImageIO.read(new File("src/main/resources/grid.png"));
- } catch(IOException e) {}
- try
- {
- this.listImg = ImageIO.read(new File("src/main/resources/list.png"));
- } catch(IOException e) {}
-
- try
- {
- this.lightGridImg = ImageIO.read(new File("src/main/resources/invertedgrid.png"));
- } catch(IOException e) {}
- try
- {
- this.lightListImg = ImageIO.read(new File("src/main/resources/invertedlist.png"));
- } catch(IOException e) {}
-
- try
- {
- this.folderImg = ImageIO.read(new File("src/main/resources/folder.jpg"));
- } catch(IOException e) {}
-
-
- 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.lightGridImg = lightGridImg.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
- this.lightListImg = lightListImg.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
- this.folderImg = folderImg.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
- 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);
-
- this.grid = new JRadioButton(gridIcon, true);
- grid.addActionListener(customlistener);
-
- this.list = new JRadioButton(listIcon, false);
- list.addActionListener(customlistener);
-
- this.layouts = new ButtonGroup();
- layouts.add(grid);
- layouts.add(list);
- grid.setSelected(true);
- list.setSelected(false);
-
- this.fileChooser = new JFileChooser();
- this.fileButton = new JButton(folderIcon);
- fileButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- int retval = fileChooser.showOpenDialog(null);
-
- if (retval == JFileChooser.APPROVE_OPTION)
- {
- File file = fileChooser.getSelectedFile();
- if (file.isFile())
- {
- model.newPic(file.getAbsolutePath(), file.getName(), file.length(), file.lastModified());
- }
- }
- }
- });
-
- 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);
- JPanel tempPanel = new JPanel();
- tempPanel.setLayout(new BoxLayout(tempPanel, BoxLayout.X_AXIS));
- tempPanel.add(grid);
- tempPanel.add(list);
- this.add(tempPanel, BorderLayout.LINE_START);
- this.add(new JLabel("Fotag!", JLabel.CENTER), BorderLayout.CENTER);
- JPanel tempPanel2 = new JPanel();
- tempPanel2.setLayout(new BoxLayout(tempPanel2, BoxLayout.X_AXIS));
- tempPanel2.add(star1);
- tempPanel2.add(star2);
- tempPanel2.add(star3);
- tempPanel2.add(star4);
- tempPanel2.add(star5);
- tempPanel2.add(fileButton);
- this.add(tempPanel2, BorderLayout.LINE_END);
- model.addObserver(this);
- }
- public void update(Object observable)
- {
- revalidate();
- repaint();
- }
- }
|