package edu.cmu.minorthird.util.gui;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.JList;
import javax.swing.JTextArea;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.log4j.Logger;
/**
* Some test cases for viewers.
*
* @author William cohen
*
*/
public class ViewerTest extends TestCase
{
//private static Logger log = Logger.getLogger(ViewerTest.class);
private Viewer lc,uc,van,indexViewer,lnameListViewer,familyViewer,mainViewer;
private ParallelViewer par;
private JList jlist;
public ViewerTest(String name) { super(name); }
public ViewerTest() { super("ViewerTest"); }
public static Test suite() { return new TestSuite(ViewerTest.class); }
public static void main(String args[]) { junit.textui.TestRunner.run(suite()); }
public void testViewer()
{
Logger.getRootLogger().removeAllAppenders();
org.apache.log4j.BasicConfigurator.configure();
lc = new ComponentViewer() {
static final long serialVersionUID=20071023L;
public boolean canReceive(Object o) { return o instanceof String; }
public JComponent componentFor(Object o) {
String s = (String)o;
System.out.println("converting "+s+" to lower case!");
return new JTextArea(s.toLowerCase());
}
};
uc = new ComponentViewer() {
static final long serialVersionUID=20071023L;
public boolean canReceive(Object o) { return o instanceof String; }
public JComponent componentFor(Object o) {
String s = (String)o;
System.out.println("converting "+s+" to upper case!");
return new JTextArea(s.toUpperCase());
}
};
van = new VanillaViewer();
par = new ParallelViewer();
par.addSubView("Original",van);
par.addSubView("LowerCase",lc);
par.addSubView("UpperCase",uc);
final Map<String,String[]> m = new HashMap<String,String[]>();
m.put("Hurst", new String[]{"Matthew", "Wakako", "Hannah"});
m.put("Cohen", new String[]{"William", "Susan", "Joshua", "Charlie"});
m.put("Tomikoyo", new String[]{"Takashi", "Laura", "Makoto", "TBA"});
indexViewer = new IndexedViewer() {
static final long serialVersionUID=20071023L;
public Object[] indexFor(Object o) {
sendSignal(TEXT_MESSAGE,"displaying the "+o+" family");
return (Object[]) m.get(o);
}
};
lnameListViewer = new ComponentViewer() {
static final long serialVersionUID=20071023L;
public JComponent componentFor(Object o) {
Object[] array = (Object[])o;
jlist = new JList(array);
monitorSelections(jlist);
return jlist;
}
};
lnameListViewer.setContent(m.keySet().toArray());
familyViewer = new ZoomedViewer(indexViewer,par);
((ZoomedViewer)familyViewer).setHorizontal();
mainViewer = new MessageViewer(new ZoomedViewer(lnameListViewer,familyViewer));
assertNotNull( mainViewer );
}
}