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 BaumeisterJune 21, 1997
Imprint | Data Protection