ObsStoreSizeView.java

import java.awt.*;
import store.*;
import obsstore.*;
import java.util.*;

public class ObsStoreSizeView extends Canvas implements Observer {
   ObservableStore store;
   int i = 0;

   public ObsStoreSizeView(ObservableStore s) 
      {store = s; s.addObserver(this);}

   public STORE store() { return store; }

   public void paint(Graphics g) {
      FontMetrics fm = g.getFontMetrics();
      g.drawRect(0,0,preferredSize().width,preferredSize().height);
      g.drawString(""+store.size(),5,5+fm.getMaxAscent());
   }

   public boolean mouseDown(Event e, int x, int y) {
      if (e.metaDown()) store.remove();
         else store.add(new Integer(i++));
      return true;
  }

   public Dimension minimumSize() {
      FontMetrics fm = getGraphics().getFontMetrics();
      return new Dimension(fm.stringWidth(""+store.size())+10,fm.getMaxDescent()+fm.getMaxAscent()+10);
   }

   public Dimension preferredSize() {return minimumSize();}

   public void update(Observable o, Object args) {
      resize(preferredSize());
      repaint();
   }
}


Part of mvc
Hubert Baumeister
June 21, 1997

Imprint | Data Protection