001: /*
002: * Jacareto Copyright (c) 2002-2005
003: * Applied Computer Science Research Group, Darmstadt University of
004: * Technology, Institute of Mathematics & Computer Science,
005: * Ludwigsburg University of Education, and Computer Based
006: * Learning Research Group, Aachen University. All rights reserved.
007: *
008: * Jacareto is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation; either
011: * version 2 of the License, or (at your option) any later version.
012: *
013: * Jacareto is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016: * General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public
019: * License along with Jacareto; if not, write to the Free
020: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
021: *
022: */
023:
024: package jacareto.record;
025:
026: import jacareto.system.Environment;
027:
028: import java.awt.Dimension;
029: import java.awt.Toolkit;
030:
031: import javax.swing.LookAndFeel;
032: import javax.swing.UIManager;
033:
034: /**
035: * Stores system information like screen width, screen height, look & feel, ....
036: *
037: * @author <a href="mailto:cspannagel@web.de">Christian Spannagel</a>
038: * @version 1.0
039: */
040: public class SystemInfoRecordable extends Recordable {
041: /** The screen width. */
042: private int screenWidth;
043:
044: /** The screen height. */
045: private int screenHeight;
046:
047: /** The java version. */
048: private String javaVersion;
049:
050: /** The class name of the look and feel. */
051: private String lookAndFeelName;
052:
053: /**
054: * Creates a new user with values determined by the current system
055: *
056: * @param env the environment
057: */
058: public SystemInfoRecordable(Environment env) {
059: super (env);
060:
061: Toolkit toolkit = Toolkit.getDefaultToolkit();
062: LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
063:
064: Dimension screenDim = toolkit.getScreenSize();
065:
066: setScreenWidth(screenDim.width);
067: setScreenHeight(screenDim.height);
068: setLookAndFeelName(lookAndFeel.getClass().getName());
069: setJavaVersion(System.getProperty("java.version"));
070: }
071:
072: /**
073: * Creates a system info recordable with values determined by the current system and no
074: * environment. The environment should be defined with the method {@link
075: * jacareto.system.EnvironmentMember#setEnvironment(Environment)} before environment instances
076: * will be accessed.
077: */
078: public SystemInfoRecordable() {
079: this (null);
080: }
081:
082: /**
083: * Creates a new user with the specified values.
084: *
085: * @param env the environment
086: * @param screenWidth the width of the screen
087: * @param screenHeight the height of the screen
088: * @param javaVersion the java version
089: * @param lookAndFeelName the class name of the look & feel
090: */
091: public SystemInfoRecordable(Environment env, int screenWidth,
092: int screenHeight, String javaVersion, String lookAndFeelName) {
093: super (env);
094: setScreenWidth(screenWidth);
095: setScreenHeight(screenHeight);
096: setJavaVersion(javaVersion);
097: setLookAndFeelName(lookAndFeelName);
098: }
099:
100: /**
101: * Sets the screen width.
102: *
103: * @param screenWidth DOCUMENT ME!
104: */
105: public void setScreenWidth(int screenWidth) {
106: this .screenWidth = screenWidth;
107: fireValuesChanged();
108: }
109:
110: /**
111: * Sets the screen height.
112: *
113: * @param screenHeight DOCUMENT ME!
114: */
115: public void setScreenHeight(int screenHeight) {
116: this .screenHeight = screenHeight;
117: fireValuesChanged();
118: }
119:
120: /**
121: * Sets the class name of the look and feel.
122: *
123: * @param lookAndFeelName DOCUMENT ME!
124: */
125: public void setLookAndFeelName(String lookAndFeelName) {
126: this .lookAndFeelName = lookAndFeelName;
127: fireValuesChanged();
128: }
129:
130: /**
131: * Sets the java version.
132: *
133: * @param javaVersion DOCUMENT ME!
134: */
135: public void setJavaVersion(String javaVersion) {
136: this .javaVersion = javaVersion;
137: fireValuesChanged();
138: }
139:
140: /**
141: * Returns the screen width.
142: *
143: * @return DOCUMENT ME!
144: */
145: public int getScreenWidth() {
146: return screenWidth;
147: }
148:
149: /**
150: * Returns the screen height.
151: *
152: * @return DOCUMENT ME!
153: */
154: public int getScreenHeight() {
155: return screenHeight;
156: }
157:
158: /**
159: * Returns the class name of the look and feel.
160: *
161: * @return DOCUMENT ME!
162: */
163: public String getLookAndFeelName() {
164: return lookAndFeelName;
165: }
166:
167: /**
168: * Returns the java version.
169: *
170: * @return DOCUMENT ME!
171: */
172: public String getJavaVersion() {
173: return javaVersion;
174: }
175:
176: /**
177: * Returns the name of the user as Recordable
178: *
179: * @return the name
180: */
181: public String getElementName() {
182: return getLanguage().getString(
183: "Recordables.SystemInfoRecordable.Name");
184: }
185:
186: /**
187: * Returns a description of the Recordable.
188: *
189: * @return the description
190: */
191: public String getElementDescription() {
192: return getLanguage().getString(
193: "Recordables.SystemInfoRecordable.Description");
194: }
195:
196: /**
197: * Returns a String which describes the content of the Recordable shortly.
198: *
199: * @return a string with a short description of the Recordable
200: */
201: public String toShortString() {
202: return getElementName();
203: }
204:
205: public boolean hasProcTime() {
206: return false;
207: }
208: }
|