001 package com.croftsoft.apps.client;
002
003 import java.awt.*;
004 import java.net.*;
005
006 import com.croftsoft.core.CroftSoftConstants;
007
008 /*********************************************************************
009 * Configuration.
010 *
011 * Can be modified to be persistent.
012 *
013 * @version
014 * $Id: ClientConfig.java,v 1.7 2006/12/09 05:24:59 croft Exp $
015 * @since
016 * 2006-10-30
017 * @author
018 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
019 *********************************************************************/
020
021 public final class ClientConfig
022 //////////////////////////////////////////////////////////////////////
023 //////////////////////////////////////////////////////////////////////
024 {
025
026 private static final String VERSION
027 = "$Date: 2006/12/09 05:24:59 $";
028
029 private static final String TITLE
030 = "CroftSoft Client";
031
032 private static final String INFO
033 = TITLE + "\n"
034 + "Version " + VERSION + "\n"
035 + CroftSoftConstants.COPYRIGHT + "\n"
036 + CroftSoftConstants.DEFAULT_LICENSE + "\n"
037 + CroftSoftConstants.HOME_PAGE + "\n";
038
039 private static final String DEFAULT_CODE_BASE_NAME
040 = "http://CroftSoft.com:8080/";
041
042 private static final int
043 FRAME_WIDTH = 600,
044 FRAME_HEIGHT = 400;
045
046 private static final double UPDATE_RATE = 85.0;
047
048 private static final String
049 SHUTDOWN_CONFIRMATION_PROMPT = "Exit " + TITLE + "?";
050
051 private static final Font FONT
052 = new Font ( "Arioso", Font.BOLD, 20 );
053
054 //
055
056 private String botId;
057
058 private URL codeBase;
059
060 //////////////////////////////////////////////////////////////////////
061 //////////////////////////////////////////////////////////////////////
062
063 public static ClientConfig load ( String [ ] args )
064 //////////////////////////////////////////////////////////////////////
065 {
066 // Could load from a persistent XML file.
067
068 return new ClientConfig ( );
069 }
070
071 //////////////////////////////////////////////////////////////////////
072 //////////////////////////////////////////////////////////////////////
073
074 public ClientConfig ( )
075 //////////////////////////////////////////////////////////////////////
076 {
077 try
078 {
079 System.setProperty (
080 "freetts.voices",
081 "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory" );
082 }
083 catch ( final Exception ex )
084 {
085 ex.printStackTrace ( );
086 }
087 }
088
089 //////////////////////////////////////////////////////////////////////
090 //////////////////////////////////////////////////////////////////////
091
092 public String getBotId ( ) { return botId; }
093
094 public URL getCodeBase ( ) { return codeBase; }
095
096 public String getDefaultCodeBaseName ( ) {
097 return DEFAULT_CODE_BASE_NAME; }
098
099 public String getInfo ( ) { return INFO; }
100
101 public Font getFont ( ) { return FONT; }
102
103 public Dimension getFrameSize ( )
104 { return new Dimension ( FRAME_WIDTH, FRAME_HEIGHT ); }
105
106 public String getFrameTitle ( ) { return TITLE; }
107
108 public String getShutdownConfirmationPrompt ( )
109 { return SHUTDOWN_CONFIRMATION_PROMPT; }
110
111 public String getThreadName ( ) { return TITLE; }
112
113 public double getUpdateRate ( ) { return UPDATE_RATE; }
114
115 //////////////////////////////////////////////////////////////////////
116 //////////////////////////////////////////////////////////////////////
117
118 public void setBotId ( final String botId )
119 //////////////////////////////////////////////////////////////////////
120 {
121 this.botId = botId;
122 }
123
124 public void setCodeBase ( final URL codeBase )
125 //////////////////////////////////////////////////////////////////////
126 {
127 this.codeBase = codeBase;
128 }
129
130 //////////////////////////////////////////////////////////////////////
131 //////////////////////////////////////////////////////////////////////
132 }