/home/volc/47/gshute/Desktop/cs5741/CS5741_Toolkit/src/appBase/AppBase.java |
package appBase;
import java.awt.Container;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.SwingUtilities;
import vfs.VFSRoot;
<p>
</p>
public abstract class AppBase
extends JApplet {
@return
protected abstract Container createContentPane();
@return
protected abstract String getTitle();
@return
protected JMenuBar createMenuBar() {
return null;
}
private boolean applet;
private void initializeContext(boolean applt) {
applet = applt;
}
private void createAppletGUI() {
getContentPane().add(createContentPane());
JMenuBar menuBar = createMenuBar();
if (menuBar != null) {
setJMenuBar(menuBar);
}
}
private void createApplicationGUI() {
createAppletGUI();
JFrame frame = new JFrame(getTitle());
frame.setContentPane(getContentPane());
if (getJMenuBar() != null) {
frame.setJMenuBar(getJMenuBar());
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(50, 50);
frame.setVisible(true);
}
@return
public boolean isApplet() {
return applet;
}
public VFSRoot getResourceRoot(String nm) {
return new VFSRoot(this.getClass(), nm);
}
public final void init() {
initializeContext(true);
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createAppletGUI();
}
});
} catch (Exception ex) {
System.err.println("createAppletGUI() failed");
ex.printStackTrace(System.err);
}
}
public final void installApplication() {
initializeContext(false);
try {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createApplicationGUI();
start();
}
});
} catch (Exception e) {
System.err.println("createApplicationGUI() failed");
}
}
@param
public final void setFontSize(float sz) {
FontManager.setFontSize(sz);
SwingUtilities.updateComponentTreeUI(getContentPane());
if (getJMenuBar() != null) {
SwingUtilities.updateComponentTreeUI(getJMenuBar());
}
}
@return
public final float getFontSize() {
return getContentPane().getFont().getSize2D();
}
@return
public final Action createFontSizeAction(final float sz) {
Action fontSizeAction = new AbstractAction("" + sz) {
public void actionPerformed(ActionEvent ev) {
setFontSize(sz);
}
};
return fontSizeAction;
}
}