package com.idega.block.image.presentation;
import java.sql.Connection;
import java.sql.SQLException;
import com.idega.block.image.business.ImageBusiness;
import com.idega.block.image.business.SimpleImage;
import com.idega.block.media.data.MediaProperties;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.Table;
import com.idega.presentation.ui.FileInput;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.Window;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2000-2001 idega.is All Rights Reserved
* Company: idega
*@author <a href="mailto:aron@idega.is">Aron Birkir</a>
* @version 1.1
*/
public class SimpleUploaderWindow extends Window implements SimpleImage{
String dataBaseType;
private String sessImageParameter = "image_id";
Connection Conn = null;
public SimpleUploaderWindow(){
}
public void setSessionSaveParameterName(String prmName){
this.sessImageParameter = prmName;
}
public String getSessionSaveParameterName(){
return this.sessImageParameter;
}
public void checkParameterName(IWContext iwc){
if(iwc.getParameter(sessImageParameterName)!=null){
this.sessImageParameter = iwc.getParameter(sessImageParameterName);
iwc.setSessionAttribute(sessImageParameterName,this.sessImageParameter);
}
else if(iwc.getSessionAttribute(sessImageParameterName)!=null) {
this.sessImageParameter = (String) iwc.getSessionAttribute(sessImageParameterName);
}
}
public void main(IWContext iwc){
checkParameterName(iwc);
this.setBackgroundColor("white");
this.setTitle("Idega Uploader");
control(iwc);
}
public void control(IWContext iwc){
//add("block.media");
//add(sessImageParameter);
String sContentType = iwc.getRequest().getContentType();
if(sContentType !=null && sContentType.indexOf("multipart")!=-1){
// add(sContentType);
add(parse(iwc));
}
else{
if(iwc.getParameter("save")!=null){
save(iwc);
}
else {
add(getMultiForm(iwc));
}
}
}
public Form getMultiForm(IWContext iwc){
Form f = new Form();
f.setMultiPart();
String s = iwc.getRequestURI()+"?"+com.idega.idegaweb.IWMainApplication.classToInstanciateParameter+"="+com.idega.idegaweb.IWMainApplication.getEncryptedClassName(this.getClass());
f.setAction(s);
//add(s);
f.add(new FileInput());
f.add(new SubmitButton());
return f;
}
public PresentationObject parse(IWContext iwc){
MediaProperties ip = null;
try {
ip = ImageBusiness.doUpload(iwc);
iwc.setSessionAttribute("image_props",ip);
}
catch (Exception ex) {
ex.printStackTrace();
}
if(ip!=null){
Form form = new Form();
Table T = new Table();
T.add(new Image(ip.getWebPath()),1,1);
SubmitButton save = new SubmitButton("save","Save");
save.setOnClick("top.setTimeout('top.frames.lister.location.reload()',150)");
T.add(save,1,2);
T.add(new SubmitButton("newimage","New"),1,2);
form.add(T);
return form;
}
else{
return getMultiForm(iwc);
}
}
public void save(IWContext iwc){
MediaProperties ip = null;
if(iwc.getSessionAttribute("image_props")!=null){
ip = (MediaProperties) iwc.getSessionAttribute("image_props");
iwc.removeSessionAttribute("image_props");
}
if(ip !=null){
int i = ImageBusiness.SaveImage(ip);
iwc.setSessionAttribute(this.sessImageParameter,String.valueOf(i));
try {
add(new Image(i));
}
catch (SQLException ex) {
}
}
}
}