/* * ------------------------------------------------------------------------- * $Id: Model.java,v 1.3 2003/04/04 14:11:41 trudisch 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 java.util.*; /** * * @author brophy * @created January 25, 2002 */ class Model { static public interface Listener /*extends EventObject*/ { void modelChanged(); } static public final int STYLE_CLOSE = 0; static public final int STYLE_CANDLESTICK = 1; static public final int STYLE_HIGH_LOW_CLOSE = 2; static public final int VOLUME_NONE = 0; static public final int VOLUME_BARS = 1; static public final int VOLUME_LINE = 2; static public final int VOLUME_AREA = 3; static public final int SCALING_LINEAR = 0; static public final int SCALING_LOG = 1; static public final int INTERVAL_YEAR = 0; static public final int INTERVAL_MONTH = 1; static public final int INTERVAL_QUARTER = 2; static public final int INTERVAL_WEEK = 3; static public final int OVERLAY_NONE = 0; static public final int OVERLAY_SAR = 1; static public final int OVERLAY_MA20 = 2; static public final int OVERLAY_KAL = 3; private int style; private int period; private String ticker; private int volumeStyle; private int scaling; private int interval; private int overlay; private boolean active; private Database database; private List listListeners; /** Creates new Model */ public Model(Database database) { this.database = database; style = STYLE_CANDLESTICK; period = GregorianCalendar.WEEK_OF_YEAR; ticker = "SUNW"; volumeStyle = VOLUME_BARS; scaling = SCALING_LINEAR; interval = INTERVAL_YEAR; overlay = OVERLAY_NONE; active = false; listListeners = new ArrayList(); } public void addListener(Listener listener) { listListeners.add(listener); } void setActive() { active = true; fireListeners(); } private void fireListeners() { if (!active) return; Iterator iter = listListeners.iterator(); while (iter.hasNext()) { ((Listener)iter.next()).modelChanged(); } } public Database getDatabase() { return database; } /** * style is one of STYLE_CLOSE, STYLE_CANDLESTICK, STYLE_HIGH_LOW_CLOSE */ public void setStyle(int style) { this.style = style; fireListeners(); } public int getStyle() { return style; } public void setPeriod(int period) { this.period = period; fireListeners(); } public int getPeriod() { return period; } public void setTicker(String ticker) { this.ticker = ticker; fireListeners(); } public String getTicker() { return ticker; } public void setVolumeStyle(int volumeStyle) { this.volumeStyle = volumeStyle; fireListeners(); } public int getVolumeStyle() { return volumeStyle; } public void setScaling(int scaling) { this.scaling = scaling; fireListeners(); } public int getScaling() { return scaling; } public void setInterval(int interval) { this.interval = interval; fireListeners(); } public int getInterval() { return interval; } public void setOverlay(int overlay) { this.overlay = overlay; fireListeners(); } public int getOverlay() { return overlay; } }