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.jacshow;
025:
026: import jacareto.record.Recordable;
027: import jacareto.system.Environment;
028:
029: /**
030: * A sequence event recordable.
031: *
032: * @author <a href="mailto:cspannagel@web.de">Christian Spannagel</a>
033: * @version 1.0
034: */
035: public class SequenceEventRecordable extends Recordable {
036: /** The id. */
037: private int id;
038:
039: /** When the event has been dispatched. */
040: private long when;
041:
042: /** The name of the sequence. */
043: private String name;
044:
045: /**
046: * Creates a new sequence event.
047: *
048: * @param env the environment
049: * @param name the name of the sequence
050: * @param id the event id
051: * @param when the time the element has been dispatched, in msec
052: */
053: public SequenceEventRecordable(Environment env, String name,
054: int id, long when) {
055: super (env);
056: setID(id);
057: setWhen(when);
058: setSequenceName(name);
059: }
060:
061: /**
062: * Creates a recordable with information stored in the given event.
063: */
064: public SequenceEventRecordable() {
065: this (null, null, 0, 0);
066: }
067:
068: /**
069: * Creates a recordable with default values and no environment. The environment should be
070: * defined with the method {@link
071: * jacareto.system.EnvironmentMember#setEnvironment(Environment)} before environment instances
072: * will be accessed.
073: *
074: * @param env DOCUMENT ME!
075: * @param event DOCUMENT ME!
076: */
077: public SequenceEventRecordable(Environment env, SequenceEvent event) {
078: super (env);
079: setID(event.getID());
080: setWhen(event.getWhen());
081: setSequenceName(((Sequence) event.getSource()).getName());
082:
083: System.out.println("NEW SEQUENCE EVENT: " + name + "; " + id
084: + "; " + when);
085: }
086:
087: /**
088: * Sets the id.
089: *
090: * @param id the event id
091: */
092: public void setID(int id) {
093: this .id = id;
094: fireValuesChanged();
095: }
096:
097: /**
098: * Sets when the event has been dispatched
099: *
100: * @param when the time in msec
101: */
102: public void setWhen(long when) {
103: this .when = when;
104: fireValuesChanged();
105: }
106:
107: /**
108: * Sets the name of the sequence
109: *
110: * @param name the name
111: */
112: public void setSequenceName(String name) {
113: this .name = name;
114: fireValuesChanged();
115: }
116:
117: /**
118: * Returns the id.
119: *
120: * @return the event id
121: */
122: public int getID() {
123: return id;
124: }
125:
126: /**
127: * Returns the time the event has been dispatched.
128: *
129: * @return the time, in msec
130: */
131: public long getWhen() {
132: return when;
133: }
134:
135: /**
136: * Returns the name of the sequence
137: *
138: * @return the name
139: */
140: public String getSequenceName() {
141: return name;
142: }
143:
144: /**
145: * Returns the name of the recordable
146: *
147: * @return the name
148: */
149: public String getElementName() {
150: return getLanguage().getString(
151: "JacShow.Recordables.SequenceEventRecordable.Name");
152: }
153:
154: /**
155: * Returns a String which describes the content of the recordable shortly.
156: *
157: * @return a string with a short description of the object
158: */
159: public String toShortString() {
160: String result = getElementName() + " (" + getSequenceName()
161: + " ";
162:
163: switch (getID()) {
164: case SequenceElementEvent.STARTED:
165: result += getLanguage()
166: .getString(
167: "JacShow.Recordables.SequenceEventRecordable.Started");
168:
169: break;
170:
171: case SequenceElementEvent.STOPPED:
172: result += getLanguage()
173: .getString(
174: "JacShow.Recordables.SequenceEventRecordable.Stopped");
175:
176: break;
177: }
178:
179: result += ")";
180:
181: return result;
182: }
183:
184: /**
185: * Returns a description of the recordable.
186: *
187: * @return the description
188: */
189: public String getElementDescription() {
190: return getLanguage()
191: .getString(
192: "JacShow.Recordables.SequenceEventRecordable.Description");
193: }
194:
195: public boolean hasProcTime() {
196: return false;
197: }
198: }
|