package is.idega.demo.textviewer.presentation; import com.idega.presentation.*; import com.idega.presentation.text.*; import com.idega.core.file.data.ICFile; import com.idega.core.file.data.ICFileHome; import com.idega.idegaweb.*; import is.idega.demo.textviewer.business.*; import java.util.*; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: Idega hf * @author <a href="mail:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class TextFileViewer extends Block { private ICFile textFileFolder; private static final String IW_BUNDLE_IDENTIFIER="is.idega.demo.textviewer"; private static String PARAM_VIEW_FILE="is_tev_v_f"; private static String PARAM_VIEW_FILE_ID="is_tev_v_f_id"; private boolean aGettingFileContent=false; private boolean aGettingFileFolder=false; private Table mainTable; private int rowIndex = 1; public TextFileViewer() { } public String getBundleIdentifier(){ return this.IW_BUNDLE_IDENTIFIER; } public void setFilesFolder(ICFile file){ this.textFileFolder=file; } public ICFile getFilesFolder(){ return this.textFileFolder; } public void main(IWContext iwc){ try{ IWResourceBundle iwrb = this.getResourceBundle(iwc); parseAction(iwc); if(this.aGettingFileFolder){ if(this.getFilesFolder()!=null){ Iterator iter = getFilesFolder().getChildrenIterator(); while (iter.hasNext()) { ICFile file = (ICFile)iter.next(); Link link = new Link(file.getName()); link.addParameter(PARAM_VIEW_FILE,"Y"); link.addParameter(PARAM_VIEW_FILE_ID,file.getPrimaryKey().toString()); add(link); } } else{ add(iwrb.getLocalizedString("no_folder_specified","No folder specified")); } } else if(this.aGettingFileContent){ int fileID = Integer.parseInt(iwc.getParameter(this.PARAM_VIEW_FILE_ID)); String fileString = getFileToString(fileID,iwc); ScrambledText sc = new ScrambledText(); sc.setText(fileString); add(sc); if(!this.hasEditPermission()){ sc.setScrambled(true); } } } catch(Exception e){ add(new ExceptionWrapper(e,this)); } } public void add(PresentationObject obj){ if(mainTable==null){ mainTable = new Table(); super.add(mainTable); } mainTable.add(obj,1,rowIndex++); } public String getFileToString(int fileID,IWContext iwc)throws Exception{ //ICFile file = getFileHome().findByPrimaryKey(fileID); //return file.getName(); return getTextViewBusiness(iwc).getFileAsString(fileID); } protected TextViewBusiness getTextViewBusiness(IWContext iwc)throws java.rmi.RemoteException{ return (TextViewBusiness)com.idega.business.IBOLookup.getServiceInstance(iwc,TextViewBusiness.class); } public ICFileHome getFileHome()throws Exception{ return (ICFileHome)com.idega.data.IDOLookup.getHome(ICFile.class); } private void parseAction(IWContext iwc){ String view_file = iwc.getParameter(PARAM_VIEW_FILE); if(view_file!=null){ this.aGettingFileContent=true; } else{ this.aGettingFileFolder=true; } } }