package edu.cmu.minorthird.util.gui; import javax.swing.*; import java.util.HashMap; import java.util.Map; /** * Some test cases for viewers. * * @author William cohen * */ public class TestViewer{ static private Viewer parallelStringViewer(){ Viewer lc=new ComponentViewer(){ static final long serialVersionUID=20080517L; @Override public boolean canReceive(Object o){ return o instanceof String; } @Override public JComponent componentFor(Object o){ String s=(String)o; System.out.println("converting "+s+" to lower case!"); return new JTextArea(s.toLowerCase()); } }; Viewer uc=new ComponentViewer(){ static final long serialVersionUID=20080517L; @Override public boolean canReceive(Object o){ return o instanceof String; } @Override public JComponent componentFor(Object o){ String s=(String)o; System.out.println("converting "+s+" to upper case!"); return new JTextArea(s.toUpperCase()); } }; Viewer van=new VanillaViewer(); ParallelViewer par=new ParallelViewer(); par.addSubView("Original",van); par.addSubView("LowerCase",lc); par.addSubView("UpperCase",uc); return par; } static private Viewer indexViewer(){ 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"}); Viewer indexViewer=new IndexedViewer(){ static final long serialVersionUID=20080517L; @Override public Object[] indexFor(Object o){ sendSignal(TEXT_MESSAGE,"displaying the "+o+" family"); return m.get(o); } }; Viewer lnameListViewer=new ComponentViewer(){ static final long serialVersionUID=20080517L; @Override public JComponent componentFor(Object o){ Object[] array=(Object[])o; JList jlist=new JList(array); monitorSelections(jlist); return jlist; } }; lnameListViewer.setContent(m.keySet().toArray()); ZoomedViewer familyViewer= new ZoomedViewer(indexViewer,parallelStringViewer()); familyViewer.setHorizontal(); return new MessageViewer(new ZoomedViewer(lnameListViewer,familyViewer)); } public static void main(String[] argv){ try{ Viewer v=indexViewer(); /* TransformedViewer v = new TransformedViewer() { public Object transform(Object o) { System.out.println("transforming "+o); return "hello, "+o; } }; v.setSubView( parallelStringViewer() ); v.receiveContent( "world" ); */ new ViewerFrame("Test",v); }catch(Exception e){ e.printStackTrace(); } } }