Bladeren bron

change controls to be contextually relevant, added a plan.txt file to show the design plan

tarfeef101 6 jaren geleden
bovenliggende
commit
b9aaf61074
3 gewijzigde bestanden met toevoegingen van 36 en 64 verwijderingen
  1. 8 0
      assignments/a3/plan.txt
  2. 19 64
      assignments/a3/src/main/java/Controls.java
  3. 9 0
      assignments/a3/src/main/java/Model.java

+ 8 - 0
assignments/a3/plan.txt

@@ -0,0 +1,8 @@
+idea:
+
+main.java is a jframe holding all the shit
+add a jcomponent which is the top control bar
+add a jcomponent which is the collection of crap, which goes between the 2 layout managers
+  this contains basically a bunch of classes which are also components, which are the pictures+metadata
+  popups are handled like i did in a2
+have a model which is just data everything observes

+ 19 - 64
assignments/a3/src/main/java/Controls.java

@@ -9,11 +9,9 @@ import javax.swing.ImageIcon;
 public class Controls extends JPanel implements Observer
 {
   private Model model;
-  private playSlider playback;
-  private JButton play;
-  private JButton rewind;
-  private JButton reset;
-  private JButton clear;
+  private starSlider rating;
+  private JButton grid;
+  private JButton list;
 
   // Bob the Builder this shit
   public Controls(Model model)
@@ -21,91 +19,48 @@ public class Controls extends JPanel implements Observer
     // Hook up this observer so that it will be notified when the model
     // changes.
     this.model = model;
+    this.setBackground(Color.cyan);
     this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
     this.setPreferredSize(new Dimension(1280,75));
     this.setMinimumSize(new Dimension(320, 75));
-    this.play = new JButton("Play");
-    play.addActionListener(new ActionListener()
+    
+    this.grid = new JButton("Grid");
+    grid.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
       {
         
       }
     });
-    this.rewind = new JButton("Rewind");
-    rewind.addActionListener(new ActionListener()
+    
+    this.list = new JButton("List");
+    list.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
       {
         
       }
     });
-    this.playback = new playSlider(0, 0, 0);
-    playback.addChangeListener(new ChangeListener()
+    
+    this.rating = new starSlider(0, 5, 0);
+    rating.addChangeListener(new ChangeListener()
     {
       public void stateChanged(ChangeEvent e)
       {
-        if (!playback.getSettingLen())
-        {
-        }
+        model.changeFilter(rating.getValue());
       }
     });
-    this.playback.setPreferredSize(new Dimension(280, 75));
-    this.reset = new JButton("End");
-    reset.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        //playback.setValue(playback.getMaximum());
-      }
-    });
-    this.clear = new JButton("Start");
-    clear.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        //playback.setValue(playback.getMinimum());
-      }
-    });
-    this.add(play);
-    this.add(rewind);
-    this.add(playback);
-    this.add(clear);
-    this.add(reset);
+    this.rating.setPreferredSize(new Dimension(280, 75));
+
+    this.add(grid);
+    this.add(list);
+    this.add(rating);
     model.addObserver(this);
   }
 
   public void update(Object observable)
   {
-    int len = 0;
-    if (len > 0)
-    {
-      playback.toggleSettingLen();
-      playback.setMaximum(len);
-      playback.toggleSettingLen();
-    }
     revalidate();
     repaint();
   }
 }
-
-class playSlider extends JSlider
-{
-  private boolean settingLen;
-  
-  public playSlider(int min, int max, int val)
-  {
-    super(min, max, val);
-    this.settingLen = false;
-  }
-  
-  public void toggleSettingLen()
-  {
-    this.settingLen = !settingLen;
-  }
-
-  public boolean getSettingLen()
-  {
-    return settingLen;
-  }
-}

+ 9 - 0
assignments/a3/src/main/java/Model.java

@@ -9,12 +9,14 @@ public class Model extends Observable
    /** The observers that are watching this model for changes. */
   private ArrayList<Observer> observers;
   private ArrayList<PicData> pics;
+  private int filter;
 
   // Constructor
   public Model()
   {
     this.observers = new ArrayList();
     this.pics = new ArrayList();
+    this.filter = 0;
     setChanged();
   }
   
@@ -25,6 +27,13 @@ public class Model extends Observable
     setChanged();
     notifyObservers();
   }
+  
+  public void changeFilter(int x)
+  {
+    this.filter = x;
+    setChanged();
+    notifyObservers();
+  }
 
   // Add observer to be notified on change
   public void addObserver(Observer observer)