/* * ------------------------------------------------------------------------- * $Id: WallStreet.java,v 1.8 2004/05/26 19:20:43 estewart Exp $ * ------------------------------------------------------------------------- * Copyright (c) 1999 Visual Numerics Inc. All Rights Reserved. * * This software is confidential information which is proprietary to * and a trade secret of Visual Numerics, Inc. Use, duplication or * disclosure is subject to the terms of an appropriate license * agreement. * * VISUAL NUMERICS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. VISUAL * NUMERICS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR * ITS DERIVATIVES. *-------------------------------------------------------------------------- */ package com.imsl.demo.WallStreet; import com.imsl.demo.gallery.Describe; import java.awt.Dimension; /** * * @author brophy * @created January 24, 2002 */ public class WallStreet { /** Creates new WallStreet */ public WallStreet(boolean exitOnClose) throws Exception { // read file sp500hst.txt and save to sp500hst.db //Database database = new Database("com/imsl/demo/WallStreet/sp500hst.txt"); //database.save("sp500hst.db"); // load the db created above //Database database = Database.load("sp500hst.db"); // read the db compressed into a Jar java.io.InputStream is = getClass().getClassLoader().getResourceAsStream("sp500hst.db"); Database database = Database.load(is); is.close(); String tickers[] = database.getTickers(); Model model = new Model(database); ChartStock chartStock = new ChartStock(tickers, model); if (!exitOnClose) { Object l[] = chartStock.getListeners(java.awt.event.WindowListener.class); for (int k = 0; k < l.length; k++) { chartStock.removeWindowListener((java.awt.event.WindowListener)l[k]); } } SelectTicker selectTicker = new SelectTicker(chartStock, tickers, model); Options options = new Options(chartStock, model); // position windows Describe des = new Describe(chartStock, "/com/imsl/demo/WallStreet/WallStreet.html"); des.show(); Dimension ds = des.getSize(); Dimension ss = chartStock.getToolkit().getScreenSize(); int w = ss.width - 250; int h = (int)Math.min(0.6*w,ss.height-ds.height-64); w = (int)(h/0.6); // preserve aspect ratio chartStock.setSize(w, h); chartStock.setLocation(ss.width-w, ds.height); Dimension st = selectTicker.getSize(); Dimension o = options.getSize(); selectTicker.setSize(o.width, h-o.height); selectTicker.setLocation(ss.width-w-o.width, ds.height); options.setLocation(ss.width-w-o.width, ds.height+h-o.height); model.setActive(); selectTicker.setVisible(true); options.setVisible(true); chartStock.setVisible(true); } /** * @param args the command line arguments */ public static void main(String args[]) throws Exception { if (args.length == 2 && args[0].equals("-createDB")) { // read file and save to sp500hst.db new Database(args[1]).save("sp500hst.db"); } else { boolean exitOnClose = true; if (args.length > 0 && args[0].equals("-noexit")) exitOnClose = false; new WallStreet(exitOnClose); } } }