001 /* PAVLOV -- Multiple Choice Study System
002 * Copyright (C) 2000 - 2004 T.J. Willis
003 *
004 * This program is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU General Public License
006 * as published by the Free Software Foundation; either version 2
007 * of the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * GNU General Public License for more details.
013 *
014 * You should have received a copy of the GNU General Public License
015 * along with this program; if not, write to the Free Software
016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
017 *
018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/pluglets/feedback/random/AudioFeedback.java,v 1.5 2004/07/01 05:50:20 tj_willis Exp $
019 */
020 package net.sourceforge.pavlov.pluglets.feedback.random;
021
022 import javax.swing.*;
023
024 import net.sourceforge.pavlov.event.*;
025 import net.sourceforge.pavlov.feedback.old.*;
026 import net.sourceforge.pavlov.randommedia.RandomRightWrongAudioFactory;
027 import net.sourceforge.pavlov.randommedia.ImageIconUtilities;
028 import net.sourceforge.pavlov.event.MediaRootChangedListener;
029
030 /**
031 * <code>AudioFeedback</code> is an old-style feedback module. It shouldn't
032 * be used.
033 * @author <a href="mailto:"></a>
034 * @version $Revision: 1.5 $
035 */
036 public class AudioFeedback extends AbstractFeedbackPanel
037 implements AnswerListener, MediaRootChangedListener {
038 /**
039 * Describe variable <code>rights</code> here.
040 *
041 */
042 protected int rights = 0;
043 /**
044 * Describe variable <code>ifac</code> here.
045 *
046 */
047 protected RandomRightWrongAudioFactory ifac;
048 public static final String PLUGLET_FEEDBACK_AUDIO = "pluglet.feedback.audio";
049 public static final String PLUGLET_FEEDBACK_AUDIO_DESCRIPTION = "pluglet.feedback.audio.description";
050 private String correct;
051 private String incorrect;
052
053 /**
054 * Describe <code>getName</code> method here.
055 *
056 * @return a <code>String</code> value
057 */
058 public String getName(){ return rb.getString(PLUGLET_FEEDBACK_AUDIO,"Audio Feedback"); }
059
060 /**
061 * Describe <code>getDescription</code> method here.
062 *
063 * @return a <code>String</code> value
064 */
065 public String getDescription() { return rb.getString(PLUGLET_FEEDBACK_AUDIO_DESCRIPTION,"Old style audio-feedback"); }
066
067 /**
068 * Creates a new <code>AudioFeedback</code> instance.
069 *
070 */
071 public AudioFeedback() {
072 super();
073
074 correct = rb.getString(rb.CORRECT);
075 incorrect = rb.getString(rb.INCORRECT);
076
077 ifac = new RandomRightWrongAudioFactory(); //.getInstance();
078 //ifac.addMediaRootChangedListener(this);
079 setNumberOfActiveItems(ifac.getNumberOfEnabledItems());
080
081 //setBackground(java.awt.Color.white);
082 // FIXME: should use an abstract getLogoName()
083 ImageIcon la = ImageIconUtilities.getNamedImageIcon("file:resources/audioLogo.jpg");
084 setMessage("");
085 jLabel4.setVisible(false);
086 jCheckBox1.setVisible(false);
087 // FIXME: should use an abstract getDirectoryName()
088 setDirectoryName("resources/audio/");
089 imageLabel.setIcon(la);
090 pack();
091 }
092
093 /**
094 * Describe <code>makeTitle</code> method here.
095 *
096 * @deprecated Broken in 1.0 push.
097 *
098 */
099 @Deprecated protected void makeTitle() {
100 String x = null;
101 // display sound's url
102 // if(cacheObject!=null)
103 // x = cacheObject.getFileShortName();
104
105 if (x != null){
106 super.setTitle( x);
107 }
108 }
109
110 /**
111 * Describe <code>answerEvent</code> method here.
112 *
113 * @param e an <code>AnswerEvent</code> value
114 */
115 public void answerEvent(AnswerEvent e) {
116 if(!isVisible()) return;
117 String msg = correct;//"Correct!";
118 if(e.isCorrect()){
119 ifac.playRandomRightClip();
120 } else {
121 ifac.playRandomWrongClip();
122 msg = incorrect;//"Incorrect.";
123 }
124 //String msg = "<HTML>";
125 //msg += mode.getMessage();
126 setMessage(msg);
127 pack();
128 }
129
130 /**
131 * Describe <code>setMessage</code> method here.
132 *
133 * @param pre a <code>String</code> value
134 * @deprecated Broken in 1.0 push.
135 */
136 @Deprecated protected void setMessage(String pre)
137 {
138 }
139
140
141 /**
142 * Describe <code>mediaRootChanged</code> method here.
143 *
144 */
145 public void mediaRootChanged()
146 {
147 // FIXME: This doesn't appear to be registered as a mediarootchangedlistener with ifac.
148 setNumberOfActiveItems(ifac.getNumberOfEnabledItems());
149 }
150
151 }
152
153
154
155
156
157
158
159