/* * Created on 24.8.2004 * * Copyright (C) 2004 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. */ package com.idega.presentation.text; import com.idega.core.file.data.ICFile; import com.idega.idegaweb.IWMainApplication; import com.idega.io.DownloadWriter; import com.idega.io.MediaWritable; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; /** * @author aron * * DownloadLink used to download files with */ public class DownloadLink extends Link { private Class writerClass = null; /** * */ public DownloadLink() { super(); setMediaWriterClass(DownloadWriter.class); } /** * * @param absolutepath */ public DownloadLink(String text) { super(text); setMediaWriterClass(DownloadWriter.class); } //THIS CAN CONFUSE PEOPLE BECAUSE THERE IS NO CONSTRUCTOR FOR RELATIVE PATH. IT'S BETTER TO FORCE PEOPLE TO USE THE CORRECT SET METHODS // public DownloadLink(String text,String absolutepath) { // this(text); // setMediaWriterClass(DownloadWriter.class); // setAbsoluteFilePath(absolutepath); // } /** * @param icFileId */ public DownloadLink(int icFileId) { this(); setMediaWriterClass(DownloadWriter.class); setFile(icFileId); } /** * @param mo */ public DownloadLink(PresentationObject mo) { super(mo); setMediaWriterClass(DownloadWriter.class); } /** * @param text */ public DownloadLink(Text text) { super(text); setMediaWriterClass(DownloadWriter.class); // TODO Auto-generated constructor stub } /** * @param text */ public DownloadLink(Text text,String absolutepath) { super(text); addParameter(DownloadWriter.PRM_ABSOLUTE_FILE_PATH,absolutepath); // TODO Auto-generated constructor stub } /* (non-Javadoc) * @see com.idega.presentation.text.Link#setFile(com.idega.core.file.data.ICFile) */ public void setFile(ICFile file) { addParameter(DownloadWriter.PRM_FILE_ID,((Integer)file.getPrimaryKey()).intValue()); } /* (non-Javadoc) * @see com.idega.presentation.text.Link#setFile(int) */ public void setFile(int fileId) { addParameter(DownloadWriter.PRM_FILE_ID,fileId); } public void setMediaWriterClass(Class writerClass){ this.writerClass = writerClass; } public void main(IWContext iwc)throws Exception{ super.main(iwc); setURL(iwc.getIWMainApplication().getMediaServletURI()); if(this.writerClass!=null){ addParameter(MediaWritable.PRM_WRITABLE_CLASS, IWMainApplication.getEncryptedClassName(this.writerClass)); } } public void setRelativeFilePath(String relativeFilePath){ addParameter(DownloadWriter.PRM_RELATIVE_FILE_PATH,relativeFilePath); } public void setAlternativeFileName(String name){ addParameter(DownloadWriter.PRM_FILE_NAME,name); } public void setAbsoluteFilePath(String absoluteFilePath){ addParameter(DownloadWriter.PRM_ABSOLUTE_FILE_PATH,absoluteFilePath); } public void print(IWContext iwc) throws Exception{ //because of jsf problems main(iwc); super.print(iwc); } }