001 002 package net.sourceforge.pavlov.controllers; 003 004 import net.sourceforge.pavlov.library.*; 005 import net.sourceforge.sillyview.*; 006 import javax.swing.tree.DefaultMutableTreeNode; 007 import javax.swing.event.HyperlinkListener; 008 import javax.swing.event.HyperlinkEvent; 009 import java.net.URL; 010 import java.util.Collection; 011 import org.apache.log4j.*; 012 013 /** 014 *@author Haus 015 *@created June 18, 2004 016 *@since 1.1 017 */ 018 public class LibraryController extends Widget 019 { 020 private AbstractLibrary library; 021 /** 022 * Description of the Field 023 */ 024 public final static String BOOK = "<@BOOK>"; 025 // FIXME: delete 026 /** 027 * Description of the Field 028 */ 029 public final static String CHAPTER = "<@CHAPTER>"; 030 // FIXME: delete 031 /** 032 * Description of the Field 033 */ 034 public final static String START_QUIZ = "start_quiz"; 035 /** 036 * Description of the Field 037 */ 038 public final static String START_QUIZ_COMMAND = "foobar.cgi"; 039 // FIXME 040 /** 041 * Description of the Field 042 */ 043 public final static String BOOK_NAME = "book"; 044 // FIXME: delete 045 /** 046 * Description of the Field 047 */ 048 public final static String CHAPTER_NAME = "chapter"; 049 // FIXME: delete 050 051 private VelocityModel model; 052 053 054 /** 055 * Constructor for the LibraryController object 056 * 057 *@param vu A WidgetView to display the library 058 *@param lib A library to render 059 *@exception java.io.IOException Description of the Exception 060 *@exception Exception Description of the Exception 061 */ 062 public LibraryController(WidgetView vu, AbstractLibrary lib) 063 throws java.io.IOException, Exception 064 { 065 super(vu); 066 model = (VelocityModel)view.getModel();//new VelocityModel(template); 067 Collection<AbstractBook> col = lib.getBooksReadOnly(); 068 model.setToken("books", col); 069 model.setToken("start_quiz", START_QUIZ_COMMAND); 070 // FIXED: view should be passed in as a parameter 071 //view = new JPanelView(model, JPanelView.HTMLPANE); 072 //FIXED: try to take this block out... 073 //java.io.File f = new java.io.File("resources/views/"); 074 //view.setToken("BASE_URL", f.toURL()); 075 //FIXME: get from resourcebroker 076 view.setToken(JPanelView.TITLE, "Pavlov Library"); 077 } 078 079 080 /** 081 * Sets the template attribute of the LibraryController object 082 * 083 *@param tmp The new template value 084 *@param baseDir The new template value 085 */ 086 public void setTemplate(String tmp, java.io.File baseDir) 087 { 088 model.setRawModel(tmp); 089 try { 090 view.setToken("BASE_URL", baseDir.toURL()); 091 } 092 catch (java.net.MalformedURLException e) { 093 System.out.println(e); 094 } 095 } 096 097 /** 098 * Sets the template attribute of the LibraryController object 099 * 100 *@param tmp The new template value 101 *@param baseDir The new template value 102 */ 103 public void setBaseDirectory(java.io.File baseDir) 104 { 105 try { 106 view.setToken("BASE_URL", baseDir.toURL()); 107 } 108 catch (java.net.MalformedURLException e) { 109 System.out.println(e); 110 } 111 } 112 113 114 /** 115 * Sets the hyperlinkListener attribute of the LibraryController object 116 * 117 *@param h The new hyperlinkListener value 118 */ 119 public void setHyperlinkListener(HyperlinkListener h) 120 { 121 view.setToken(JPanelView.HYPERLINK_LISTENER, h); 122 } 123 124 } 125