package is.idega.idegaweb.golf.block.image.presentation;
/**
* Title: ImageInserter
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author Eirikur Hrafnsson, eiki@idega.is
* @version 1.0
*
*/
import is.idega.idegaweb.golf.block.image.business.ImageBusiness;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.Block;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.Window;
public class ImageInserter extends Block{
private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.image";
private int imageId = -1;
private String imSessionImageName =null;
private String sHiddenInputName = null;
//private String adminURL = "/image/insertimage.jsp";
private String adminURL = null;
private String nameOfWindow;
private String sUseBoxString;
private int maxImageWidth = 140;
private boolean hasUseBox = true;
private boolean selected = false;
private boolean openInWindow = false;
private Class windowClass = SimpleChooserWindow.class;
private Image setImage;
private boolean limitWidth = true;
public final String sessionImageParameterName = "im_image_session_name";
private String prmUseBox = "insertImage";
private IWBundle iwb;
private IWResourceBundle iwrb;
public ImageInserter(){
this.imSessionImageName="image_id";
this.sHiddenInputName = "image_id";
}
public ImageInserter(Image setImage){
this();
this.setImage=setImage;
}
public ImageInserter(int imageId) {
this.imageId=imageId;
this.imSessionImageName="image_id";
this.sHiddenInputName = "image_id";
}
public ImageInserter(String imSessionImageName) {
this.imSessionImageName=imSessionImageName;
this.sHiddenInputName = imSessionImageName;
}
public ImageInserter(String imSessionImageName, boolean hasUseBox) {
this(imSessionImageName);
setHasUseBox(hasUseBox);
}
public ImageInserter(int imageId, String imSessionImageName) {
this.imageId=imageId;
this.imSessionImageName=imSessionImageName;
this.sHiddenInputName = imSessionImageName;
}
public ImageInserter(Class WindowToOpen) {
// this.imSessionImageName=imSessionImageName;
this.sHiddenInputName = imSessionImageName;
windowClass = WindowToOpen;
openInWindow = true;
}
public void main(IWContext modinfo)throws Exception{
this.empty();
iwb = getBundle(modinfo);
iwrb = getResourceBundle(modinfo);
nameOfWindow = iwrb.getLocalizedString("new_image","New image");
sUseBoxString = iwrb.getLocalizedString("use_image","Use image");
String imageSessionId = (String) modinfo.getSession().getAttribute(imSessionImageName);
// debug
//add(imSessionImageName + " "+imageSessionId);
if ( imageSessionId != null ) {
imageId = Integer.parseInt(imageSessionId);
modinfo.removeSessionAttribute(imSessionImageName);
}
Image image=setImage;
if(image==null){
if ( imageId == -1 ) {
image = iwrb.getImage("picture.gif",iwrb.getLocalizedString("new_image","New image"),138,90);
}
else {
image = new GolfImage(imageId);
}
if( limitWidth ) image.setMaxImageWidth(this.maxImageWidth);
image.setNoImageLink();
}
Link imageAdmin = null;
if(adminURL == null){
imageAdmin = new Link(image);
imageAdmin.setWindowToOpen(windowClass);
}
else{
Window insertNewsImageWindow = new Window(nameOfWindow,ImageBusiness.IM_BROWSER_WIDTH,ImageBusiness.IM_BROWSER_HEIGHT,adminURL);
imageAdmin = new Link(image,insertNewsImageWindow);
}
imageAdmin.addParameter("submit","new");
imageAdmin.addParameter(sessionImageParameterName,imSessionImageName);
if ( imageId != -1 )
imageAdmin.addParameter(imSessionImageName,imageId);
HiddenInput hidden = new HiddenInput(sHiddenInputName,Integer.toString(imageId));
CheckBox insertImage = new CheckBox(prmUseBox,"Y");
insertImage.setChecked(selected);
Text imageText = new Text(sUseBoxString+": ");
imageText.setFontSize(1);
Table borderTable = new Table(1,1);
borderTable.setWidth("100%");
borderTable.setCellspacing(1);
borderTable.setCellpadding(0);
borderTable.setColor("#000000");
borderTable.add(imageAdmin);
Table imageTable = new Table(1,2);
imageTable.setAlignment(1,2,"right");
imageTable.add(borderTable,1,1);
if(hasUseBox){
imageTable.add(imageText,1,2);
imageTable.add(insertImage,1,2);
}
imageTable.add(hidden,1,2);
add(imageTable);
}
public void setHasUseBox(boolean useBox){
this.hasUseBox = useBox;
}
public void setHasUseBox(boolean useBox,String prmUseBox){
this.hasUseBox = useBox;
this.prmUseBox = prmUseBox;
}
public void setUseBoxParameterName(String prmUseBox){
this.prmUseBox = prmUseBox;
}
public void setSelected(boolean selected){
this.selected = selected;
}
public void setUseBoxString(String sUseBoxString){
this.sUseBoxString = sUseBoxString;
}
public void setHiddenInputName(String name){
sHiddenInputName = name;
}
public String getHiddenInputName(){
return sHiddenInputName;
}
public void setMaxImageWidth(int maxWidth){
this.maxImageWidth = maxWidth;
}
public void setAdminURL(String adminURL) {
this.adminURL=adminURL;
}
public void setImageId(int imageId) {
this.imageId=imageId;
}
public void setImSessionImageName(String imSessionImageName) {
this.imSessionImageName=imSessionImageName;
this.sHiddenInputName=imSessionImageName;
}
public String getImSessionImageName() {
return this.imSessionImageName;
}
public void setWindowClassToOpen(Class WindowClass){
windowClass = WindowClass;
openInWindow = true;
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
public void limitImageWidth(boolean limitWidth){
this.limitWidth = limitWidth;
}
}