/*
* Copyright 2003-2010 Tufts University Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package tufts.vue;
import tufts.Util;
import tufts.vue.gui.GUI;
import tufts.macosx.MacOSX;
import java.awt.*;
import java.util.*;
import javax.swing.*;
/**
* Display the VUE splash screen. Show the VUE splash graphic with current version
* text drawn on top of it,
*
* @version $Revision: 1.20 $ / $Date: 2010-02-03 19:17:41 $ / $Author: mike $
* @author akumar03
*/
public class SplashScreen extends Frame
{
private final Color charcoal = new Color(36,36,36);
public SplashScreen() {
setName(tufts.vue.gui.GUI.OVERRIDE_REDIRECT); // ignore textured background if we can
setUndecorated(true);
setFocusableWindowState(false);
createSplash();
if (GUI.isMacAqua()) {
if (Util.isMacCocoaSupported()) {
pack(); // ensure peer created for MacOSX
MacOSX.setTransparent(SplashScreen.this);
} else { //if (tufts.Util.getJavaVersion() >= 1.6) {
// this doesn't work: it sets the alpha of the window AND the contents
// we only want the window to be invisible (non-opaque in the NSWindow world,
// as opposed to having an alpha) Apple hasn't added a special property
// for that.
//getRootPane().putClientProperty("Window.alpha", Float.valueOf(0));
setBackground(Color.white);
}
} else {
// This will give it a transparent "look"
// if no other window's are open on the
// users desktop.
// setBackground(SystemColor.desktop);
setBackground(charcoal);
}
setVisible(true);
if (DEBUG.INIT) System.out.println("SplashScreen: visible");
}
private void createSplash() {
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
String splashProp = null;
if (Util.isMacCocoaSupported())
splashProp = "splashScreen";
else
splashProp = "splashScreenNoTransparency";
ImageIcon icon = new ImageIcon(VueResources.getURL(splashProp)) {
public void paintIcon(Component c, Graphics g, int x, int y) {
Calendar calendar = new GregorianCalendar();
super.paintIcon(c,g,x,y);
g.setColor(charcoal);
g.setFont(new Font("Verdana", Font.PLAIN, 11));
g.drawString(VueResources.getString("splashscreen.title"),172,165);
g.drawString(VueResources.getString("splashscreen.developedby"),202,185);
g.drawString((char)169+" "+VueResources.getString("vue.build.date")+" Tufts University", 240,205);
g.drawString("Version "+VueResources.getString("vue.version"),95,215);
}
};
final int width = icon.getIconWidth();
final int height = icon.getIconHeight();
int x = (screen.width - width)/2;
int y = (screen.height - height)/2;
this.setBounds(x, y, width, height);
JLabel logoLabel = new JLabel(icon);
logoLabel.setOpaque(false);
add(logoLabel);
}
public static void main(String args[]) {
VUE.init(args);
new SplashScreen();
}
}