package is.idega.idegaweb.golf.block.image.presentation;
/**
* 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
*/
import is.idega.idegaweb.golf.block.image.business.ImageBusiness;
import is.idega.idegaweb.golf.block.image.business.ImageHandler;
import is.idega.idegaweb.golf.block.image.data.ImageCatagory;
import is.idega.idegaweb.golf.block.image.data.ImageCatagoryAttributes;
import is.idega.idegaweb.golf.block.image.data.ImageCatagoryHome;
import is.idega.idegaweb.golf.block.image.data.ImageEntity;
import is.idega.idegaweb.golf.block.image.data.ImageEntityHome;
import java.sql.SQLException;
import java.util.List;
import com.idega.data.IDOLookup;
import com.idega.presentation.Block;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Page;
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.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
import com.idega.presentation.ui.Window;
import com.idega.util.text.TextSoap;
public class ImageViewer extends Block{
private int categoryId = -1;
private boolean limitNumberOfImages=true;
private int numberOfDisplayedImages=9;
private int iNumberInRow = 3; //iXXXX for int
private int ifirst = 0;
private int maxImageWidth = 100;
private boolean limitImageWidth=true;
private String callingModule = "image_id";
private boolean backbutton = false;
private boolean refresh = false;
private Table outerTable = new Table(2,3);
private boolean isAdmin = false;
private String outerTableWidth = "100%";
private String outerTableHeight = "100%";
private String headerFooterColor = "#8AA7D6";
private String textColor = "#FFFFFF";
private String headerText = "";
private Image footerBackgroundImage;
private Image headerBackgroundImage;
private ImageEntity[] entities;
private String percent = "100";
private Link continueRefresh = new Link("Click here to continue...");
private String lastViewAction = "";
private Text textProxy = new Text();
private Image view;
private Image delete;
private Image use;
private Image copy;
private Image cut;
private Image edit;
private Image save;
private Image cancel;
private Image newImage;
private Image newCategory;
private Image text;
private Image reload;
private String language = "IS";
private int textSize = 1;
private String attributeName = "union_id";
private int attributeId = 3;
public ImageViewer(){
continueRefresh.addParameter("refresh","true");
}
public ImageViewer(int categoryId){
this();
this.categoryId=categoryId;
}
public ImageViewer(ImageEntity[] entities){
this();
this.entities=entities;
}
public void setConnectionAttributes(String attributeName, int attributeId) {
this.attributeName = attributeName;
this.attributeId = attributeId;
}
public void setConnectionAttributes(String attributeName, String attributeId) {
this.attributeName = attributeName;
this.attributeId = Integer.parseInt(attributeId);
}
/*
**
** not needed for single user mode
**
*/
public String getColumnString(ImageCatagoryAttributes[] attribs){
String values = "";
for (int i = 0 ; i < attribs.length ; i++) {
values += " image_catagory_id = '"+attribs[i].getImageCatagoryId()+"'" ;
if( i!= (attribs.length-1) ) values += " OR ";
}
return values;
}
/*
**
** old stuff..replace
**
*/
private void setSpokenLanguage(IWContext modinfo){
String language2 = modinfo.getParameter("language");
if (language2==null) language2 = ( String ) modinfo.getSessionAttribute("language");
if ( language2 != null) language = language2;
}
public void main(IWContext modinfo)throws Exception{
isAdmin= isAdministrator(modinfo);
setSpokenLanguage(modinfo);
ImageEntity[] image = new ImageEntity[1];
String imageId = modinfo.getParameter("image_id");
String imageCategoryId = modinfo.getParameter("image_catagory_id");
percent = modinfo.getParameter("percent");
String sEdit = modinfo.getParameter("edit");
String action = modinfo.getParameter("action");
String refreshing = (String) modinfo.getSessionAttribute("im_refresh");
String sessionImageId = (String) modinfo.getSessionAttribute("im_image_id");
String imageSessionName = (String) modinfo.getParameter("im_image_session_name");
if( imageSessionName!=null ) callingModule = imageSessionName;
if( sessionImageId!=null ){// new uploaded image
imageId = sessionImageId;
modinfo.removeSessionAttribute("im_image_id");
}
if( refreshing!=null ) refresh = true;
if( refresh ){
refresh(modinfo);
modinfo.removeSessionAttribute("im_refresh");
}
view = new Image("/pics/jmodules/image/"+language+"/view.gif","View all sizes");
delete = new Image("/pics/jmodules/image/"+language+"/delete.gif","Delete this image");
use = new Image("/pics/jmodules/image/"+language+"/use.gif","Use this image");
copy = new Image("/pics/jmodules/image/"+language+"/copy.gif","Copy this image");
cut = new Image("/pics/jmodules/image/"+language+"/cut.gif","Cut this image");
edit = new Image("/pics/jmodules/image/"+language+"/edit.gif","Edit this image");
text = new Image("/pics/jmodules/image/"+language+"/text.gif","Edit this image's text");
save = new Image("/pics/jmodules/image/"+language+"/save.gif","Save");
cancel = new Image("/pics/jmodules/image/"+language+"/cancel.gif","Cancel");
newImage = new Image("/pics/jmodules/image/"+language+"/newimage.gif","Upload a new image");
newCategory = new Image("/pics/jmodules/image/"+language+"/newcategory.gif","Edit categories");
reload = new Image("/pics/jmodules/image/"+language+"/refresh.gif","Refresh everything");
Window window = new Window("IdegaWeb : Image",800,600,"/image/editWindow.jsp");
window.setResizable(true);
Link uploadLink = new Link(newImage,window);
uploadLink.addParameter("action","upload");
Link reloads = new Link(reload);
reloads.addParameter("refresh","true");
reloads.addParameter("idega","best&"+modinfo.getQueryString());
Link categories = new Link(newCategory);
categories.addParameter("action","editcategories");
categories.addParameter("image_id","-1");//so it runs smoothly ; )
if(isAdmin && (sEdit==null) ) {
outerTable.add(reloads,2,1);
outerTable.add(uploadLink,2,1);
outerTable.add(categories,2,1);
}
outerTable.setColor(1,1,headerFooterColor);
outerTable.setColor(1,3,headerFooterColor);
outerTable.setAlignment(1,1,"left");
outerTable.setAlignment(2,1,"right");
outerTable.setAlignment(1,2,"center");
outerTable.setAlignment(1,3,"center");
outerTable.setVerticalAlignment(1,2,"top");
outerTable.setVerticalAlignment(1,1,"top");
outerTable.mergeCells(1,2,2,2);
outerTable.mergeCells(1,3,2,3);
outerTable.setWidth(outerTableWidth);
outerTable.setHeight(outerTableHeight);
outerTable.setHeight(1,1,"23");
outerTable.setHeight(1,3,"23");
outerTable.setCellpadding(2);
outerTable.setCellspacing(0);
Table links = new Table(3,1);
links.setWidth("100%");
links.setCellpadding(0);
links.setCellspacing(0);
links.setAlignment(1,1,"left");
links.setAlignment(2,1,"center");
links.setAlignment(3,1,"right");
if ( headerBackgroundImage != null ) outerTable.setBackgroundImage(1,1,headerBackgroundImage);
if ( footerBackgroundImage != null ) outerTable.setBackgroundImage(1,3,footerBackgroundImage);
if(sEdit!=null){
try{
getEditor(modinfo);
outerTable.setColor(1,2,"FFFFFF");
}
catch(Throwable e){
e.printStackTrace(System.err);
}
}
else{
if(imageId != null){
try{
if( action == null){
limitImageWidth = false;
image[0] = (ImageEntity)((ImageEntityHome)IDOLookup.getHomeLegacy(ImageEntity.class)).findByPrimaryKeyLegacy(Integer.parseInt(imageId));
Text imageName = new Text(image[0].getName());
imageName.setBold();
imageName.setFontColor(textColor);
imageName.setFontSize(3);
outerTable.add(imageName,1,1);
outerTable.add(displayImage(image[0]),1,2);
Text backtext = new Text("Bakka <<");
backtext.setBold();
Link backLink = new Link(backtext);
backLink.setFontColor(textColor);
backLink.setAsBackLink();
links.add(backLink,1,1);
outerTable.add(links,1,3);
}
else{
//continueRefresh.addParameter("idega","best&"+modinfo.getQueryString());
Text texti = new Text("");
ImageHandler handler = null;
if( "delete".equalsIgnoreCase(action) ){
texti = new Text("Image deleted.");
}
else if( "save".equalsIgnoreCase(action) ){
texti = new Text("Image saved.");
handler = (ImageHandler) modinfo.getSessionAttribute("handler");
}
else if( "savenew".equalsIgnoreCase(action) ){
texti = new Text("Image saved as a new image.");
handler = (ImageHandler) modinfo.getSessionAttribute("handler");
}
else if( "use".equalsIgnoreCase(action) ){
modinfo.setSessionAttribute(callingModule,imageId);
//debug is this legal? check if opened from another page or not. close or not
Page parent = getParentPage();
parent.close();
parent.setParentToReload();
}
else if( "editcategories".equalsIgnoreCase(action) ){
outerTable.add(getCategoryEditForm(),1,2);
Text flokkar = new Text("Myndaflokkar");
flokkar.setBold();
flokkar.setFontColor(textColor);
flokkar.setFontSize(3);
outerTable.add(flokkar,1,1);
}
else if( "savecategories".equalsIgnoreCase(action) ){
texti = new Text("Imagecategories saved.");
ImageBusiness.storeEditForm(modinfo);
}
if( !("use".equalsIgnoreCase(action)) ){
ImageBusiness.handleEvent(modinfo,handler);
texti.setBold();
texti.setFontColor("#FFFFFF");
texti.setFontSize(3);
outerTable.add(texti,1,2);
outerTable.add(Text.getBreak(),1,2);
outerTable.add(Text.getBreak(),1,2);
continueRefresh.setFontColor("#FFFFFF");
continueRefresh.setFontSize(3);
if( !("editcategories".equalsIgnoreCase(action)) ) outerTable.add(continueRefresh,1,2);
}
}
}
catch(NumberFormatException e) {
add(new Text("ImageId must be a number"));
System.err.println("ImageViewer: ImageId must be a number");
}
}
else{
try{
if ( (imageCategoryId != null) || (entities!=null) ){
ImageEntity[] imageEntity;
String sFirst = modinfo.getParameter("iv_first");//browsing from this image
if (sFirst!=null) ifirst = Integer.parseInt(sFirst);
String previousCatagory = (String)modinfo.getSessionAttribute("image_previous_catagory_id");
if ( imageCategoryId != null){
if( (previousCatagory!=null) && (!previousCatagory.equalsIgnoreCase(imageCategoryId)) ){
modinfo.getSession().removeAttribute("image_previous_catagory_id");
}
ImageEntity[] inApplication = (ImageEntity[]) modinfo.getServletContext().getAttribute("image_entities_"+imageCategoryId);
modinfo.setSessionAttribute("image_previous_catagory_id",imageCategoryId);
categoryId = Integer.parseInt(imageCategoryId);
ImageCatagory category = (ImageCatagory)((ImageCatagoryHome)IDOLookup.getHomeLegacy(ImageCatagory.class)).findByPrimaryKeyLegacy(categoryId);
if ( inApplication == null ){
imageEntity = (ImageEntity[]) category.findRelated((ImageEntity)IDOLookup.instanciateEntity(ImageEntity.class));
}
else imageEntity = inApplication;
if( imageEntity!=null ){
modinfo.getServletContext().removeAttribute("image_entities_"+imageCategoryId);
modinfo.getServletContext().setAttribute("image_entities_"+imageCategoryId,imageEntity);
}
Text categoryName = new Text(category.getName());
categoryName.setBold();
categoryName.setFontColor(textColor);
categoryName.setFontSize(3);
outerTable.add(categoryName,1,1);
if( limitNumberOfImages ) {
int too = (ifirst+numberOfDisplayedImages);
if( numberOfDisplayedImages >= imageEntity.length){
too = imageEntity.length;
numberOfDisplayedImages = too;
}
Text leftText = new Text("Fyrri myndir <<");
leftText.setBold();
Link back = new Link(leftText);
back.setFontColor(textColor);
int iback = ifirst-numberOfDisplayedImages;
if( iback<0 ) ifirst = 0;
back.addParameter("iv_first",ifirst);
back.addParameter("image_catagory_id",category.getID());
String middle = (ifirst+1)+" til "+too+" af "+(imageEntity.length);
Text middleText = new Text(middle);
middleText.setBold();
middleText.setFontColor(textColor);
Text rightText = new Text(">> N�stu myndir");
rightText.setBold();
Link forward = new Link(rightText);
forward.setFontColor(textColor);
int inext = ifirst+numberOfDisplayedImages;
if( inext > (imageEntity.length-1)) inext = (imageEntity.length-1)-numberOfDisplayedImages;
forward.addParameter("iv_first",inext);
forward.addParameter("image_catagory_id",category.getID());
links.add(back,1,1);
links.add(middleText,2,1);
links.add(forward,3,1);
}
}
else{
//for searches
Text header = new Text(headerText);
header.setBold();
header.setFontColor(textColor);
header.setFontSize(3);
outerTable.add(header,1,1);
limitNumberOfImages=false;
imageEntity=entities;
}
outerTable.add(links,1,3);
outerTable.add(displayCatagory(imageEntity),1,2);
}
}
catch(NumberFormatException e) {
add(new Text("CategoryId must be a number"));
System.err.println("ImageViewer: CategoryId must be a number");
}
}
}
add(outerTable);
}
private Table displayImage( ImageEntity image ) throws SQLException
{
String texti = image.getText();
String link = image.getLink();
int imageId = image.getID();
Table imageTable = new Table(1,2);
imageTable.setAlignment("center");
imageTable.setAlignment(1,1,"center");
imageTable.setAlignment(1,2,"center");
imageTable.setVerticalAlignment("top");
imageTable.setCellpadding(0);
Image theImage = new GolfImage(imageId);
theImage.setImageLinkZoomView();
if(limitImageWidth) {
theImage.setMaxImageWidth(maxImageWidth);
}
imageTable.add(theImage);
if(isAdmin) {
//String adminPage="/image/imageadmin.jsp";//change to same page and object
Table editTable = new Table(5,1);
Link imageEdit = new Link(delete);
imageEdit.addParameter("image_id",imageId);
imageEdit.addParameter("action","delete");
Link imageEdit2 = new Link(cut);
imageEdit2.addParameter("image_id",imageId);
imageEdit2.addParameter("action","cut");
Link imageEdit3 = new Link(copy);
imageEdit3.addParameter("image_id",imageId);
imageEdit3.addParameter("action","copy");
Link imageEdit4 = new Link(view);
imageEdit4.addParameter("image_id",imageId);
Link imageEdit5 = new Link(use);
imageEdit5.addParameter("image_id",imageId);
imageEdit5.addParameter("action","use");
Link imageEdit6 = new Link(edit);
imageEdit6.addParameter("image_id",imageId);
imageEdit6.addParameter("edit","true");
Window window = new Window("IdegaWeb : Image",350,230,"/image/editWindow.jsp");
window.setAllMargins(0);
window.setResizable(true);
Link imageEdit7 = new Link(text,window);
imageEdit7.addParameter("image_id",imageId);
imageEdit7.addParameter("action","text");
editTable.add(imageEdit,1,1);
// debug eiki add later
//editTable.add(imageEdit2,2,1);
// editTable.add(imageEdit3,3,1);
editTable.add(imageEdit4,4,1);
editTable.add(imageEdit5,5,1);
editTable.add(imageEdit6,2,1);
editTable.add(imageEdit7,3,1);
imageTable.add(editTable, 1, 2);
}
return imageTable;
}
private Table displayCatagory( ImageEntity[] imageEntity ) throws SQLException {
int k = 0;
Image image;
this.limitImageWidth = true;
if( limitNumberOfImages ) k = numberOfDisplayedImages;
else k = imageEntity.length;
int heigth = k/iNumberInRow;
if( k%iNumberInRow!=0 ) heigth++;
Table table = new Table(iNumberInRow,heigth);
table.setWidth("100%");
try {
if (ifirst < 0 ) {
ifirst = (-1)*ifirst;
}
else if (ifirst > (imageEntity.length -1)) {
ifirst = (imageEntity.length -1);
}
}
catch (NumberFormatException n) {
add(new Text("ImageViewer: sFirst must be a number"));
System.err.println("ImageViewer: sFirst must be a number");
}
int x=0;
for (int i = ifirst ; (x<k) && ( i < imageEntity.length ) ; i++ ) {
table.setVerticalAlignment((x%iNumberInRow)+1,(x/iNumberInRow)+1,"bottom");
table.setAlignment((x%iNumberInRow)+1,(x/iNumberInRow)+1,"center");
table.setWidth((x%iNumberInRow)+1,Integer.toString((int)(100/iNumberInRow))+"%");
table.add( displayImage(imageEntity[i]) ,(x%iNumberInRow)+1,(x/iNumberInRow)+1);
x++;
}
return table;
}
/**
** return a proxy for the main text. Use the standard
** set methods on this object such as .setFontSize(1) etc.
** and it will set the property for all texts.
*/
public Text getTextProxy(){
return textProxy;
}
public void setTextProxy(Text textProxy){
this.textProxy = textProxy;
}
public Text setTextAttributes( Text realText ){
Text tempText = (Text) textProxy.clone();
tempText.setText( realText.getText() );
return tempText;
}
public void setNumberOfDisplayedImages(int numberOfDisplayedImages){
this.limitNumberOfImages = true;
if( numberOfDisplayedImages<0 ) numberOfDisplayedImages = (-1)*numberOfDisplayedImages;
this.numberOfDisplayedImages = numberOfDisplayedImages;
}
public void setNumberInRow(int NumberOfImagesInOneRow){
this.iNumberInRow = NumberOfImagesInOneRow;
}
public void setHeaderText(String headerText){
this.headerText = headerText;
}
public void setHeaderFooterColor(String headerFooterColor){
this.headerFooterColor=headerFooterColor;
}
public void setHeaderBackgroundImage(Image headerBackgroundImage){
this.headerBackgroundImage=headerBackgroundImage;
}
public void setHeaderBackgroundImage(String headerBackgroundImageURL){
setHeaderBackgroundImage(new Image(headerBackgroundImageURL));
}
public void setFooterBackgroundImage(Image footerBackgroundImage){
this.footerBackgroundImage=footerBackgroundImage;
}
public void setFooterBackgroundImage(String footerBackgroundImageURL){
setFooterBackgroundImage(new Image(footerBackgroundImageURL));
}
public void setTextColor(String textColor){
this.textColor=textColor;
}
public void setMaxImageWidth(int maxImageWidth){
this.limitImageWidth=true;
this.maxImageWidth = maxImageWidth;
}
public void limitImageWidth( boolean limitImageWidth ){
this.limitImageWidth=limitImageWidth;
}
public void setTableWidth(int width){
setTableWidth(Integer.toString(width));
}
public void setTableWidth(String width){
this.outerTableWidth=width;
}
public void setTableHeight(int height){
setTableHeight(Integer.toString(height));
}
public void setTableHeight(String height){
this.outerTableHeight=height;
}
public void setViewImage(String imageName){
view = new Image(imageName);
}
public void setDeleteImage(String imageName){
delete = new Image(imageName);
}
public void setUseImage(String imageName){
use = new Image(imageName);
}
public void setCopyImage(String imageName){
copy = new Image(imageName);
}
public void setCutImage(String imageName){
cut = new Image(imageName);
}
//debug add sets for other images
public void refresh(){
this.refresh = true;
}
private void refresh(IWContext modinfo) throws SQLException{
modinfo.removeSessionAttribute("image_previous_catagory_id");
ImageCatagory[] catagories = (ImageCatagory[])((ImageCatagory)IDOLookup.instanciateEntity(ImageCatagory.class)).findAll();
if (catagories != null) {
if (catagories.length > 0 ) {
for (int i = 0 ; i < catagories.length ; i++ ) {
modinfo.getServletContext().removeAttribute("image_entities_"+catagories[i].getID());
}
}
}
}
private Table getImageInfoTable(){
Table table = new Table();
table.setColor("");
return table;
}
private Form getEditorForm(ImageHandler handler, String ImageId, IWContext modinfo) throws Exception{
Table toolbarBelow = new Table(4,2);
Table toolbarRight = new Table(2,5);
Table imageTable = new Table(2,2);
Form form = new Form();
form.setMethod("GET");
Link gray = new Link(new Image("/pics/jmodules/image/buttons/grayscale.gif","Convert the image to grayscale"));
setAction(gray,"grayscale");
toolbarBelow.add(gray,1,1);
Link emboss = new Link(new Image("/pics/jmodules/image/buttons/emboss.gif","Emboss the image"));
setAction(emboss,"emboss");
toolbarBelow.add(emboss,1,1);
Link sharpen = new Link(new Image("/pics/jmodules/image/buttons/sharpen.gif","Sharpen the image"));
setAction(sharpen,"sharpen");
toolbarBelow.add(sharpen,1,1);
Link invert = new Link(new Image("/pics/jmodules/image/buttons/invert.gif","Invert the image"));
setAction(invert,"invert");
toolbarBelow.add(invert,1,1);
Text widthtext = new Text("Width:"+Text.getBreak());
widthtext.setFontSize(1);
toolbarBelow.add(widthtext,1,2);
//debug
TextInput widthInput = new TextInput("width",""+handler.getModifiedWidth());
widthInput.setSize(5);
toolbarBelow.add(widthInput,1,2);
Text heighttext = new Text("Height:"+Text.getBreak());
heighttext.setFontSize(1);
toolbarBelow.add(heighttext,2,2);
//debug
TextInput heightInput = new TextInput("height",""+handler.getModifiedHeight());
heightInput.setSize(5);
toolbarBelow.add(heightInput,2,2);
Text con = new Text(Text.getBreak()+"Constrain?");
con.setFontSize(1);
toolbarBelow.add(con,3,2);
CheckBox constrained = new CheckBox("constraint","true");
constrained.setChecked(true);
toolbarBelow.add(constrained,3,2);
toolbarBelow.add(new SubmitButton(new Image("/pics/jmodules/image/buttons/scale.gif"),"scale","true"),4,2);
toolbarBelow.add(new HiddenInput("edit","true"),4,2);
Link undo = new Link(new Image("/pics/jmodules/image/buttons/undo.gif","Undo the last changes"));
setAction(undo,"undo");
toolbarBelow.add(undo,3,1);
Link save = new Link(new Image("/pics/jmodules/image/buttons/save.gif","Save the image"));
save.addParameter("action","save");
save.addParameter("image_id",ImageId);
toolbarBelow.add(save,4,1);
Link savenew = new Link(new Image("/pics/jmodules/image/buttons/savenew.gif","Save as a new image"));
savenew.addParameter("action","savenew");
savenew.addParameter("image_id",ImageId);
toolbarBelow.add(savenew,4,1);
Link brightness = new Link(new Image("/pics/jmodules/image/buttons/brightness.gif","Adjust the brightness of the image"));
setAction(brightness,"brightness");
toolbarRight.add(brightness,1,1);
Link contrast = new Link(new Image("/pics/jmodules/image/buttons/contrast.gif","Adjust the contrast of the image"));
setAction(contrast,"contrast");
toolbarRight.add(contrast,1,2);
Link color = new Link(new Image("/pics/jmodules/image/buttons/color.gif","Adjust the color of the image"));
setAction(color,"color");
toolbarRight.add(color,1,3);
Link quality = new Link(new Image("/pics/jmodules/image/buttons/quality.gif","Adjust the quality of the image"));
setAction(quality,"quality");
toolbarRight.add(quality,1,4);
Link revert = new Link(new Image("/pics/jmodules/image/buttons/revert.gif","Revert to the last saved version of the image"));
setAction(revert,"revert");
toolbarRight.add(revert,2,1);
Link rotate = new Link(new Image("/pics/jmodules/image/buttons/rotate.gif","Rotate the image CCW/CW"));
setAction(rotate,"rotate");
toolbarRight.add(rotate,2,2);
Link horizontal = new Link(new Image("/pics/jmodules/image/buttons/horizontal.gif","Flip the image horizontally"));
setAction(horizontal,"horizontal");
toolbarRight.add(horizontal,2,3);
Link vertical = new Link(new Image("/pics/jmodules/image/buttons/vertical.gif","Flip the image vertically"));
setAction(vertical,"vertical");
toolbarRight.add(vertical,2,4);
//debug make a better table!
Table innerTable = new Table(2,1);
innerTable.setWidth("100%");
innerTable.setWidth(1,"130");
innerTable.setAlignment(1,1,"left");
innerTable.setAlignment(2,1,"center");
innerTable.add(toolbarRight,1,1);
imageTable.add(innerTable,1,1);
imageTable.add(toolbarBelow,1,2);
imageTable.mergeCells(1,2,2,2);
imageTable.setWidth("100%");
imageTable.setHeight("100%");
imageTable.setAlignment(1,2,"center");
imageTable.setVerticalAlignment(1,1,"top");
imageTable.setVerticalAlignment(2,1,"middle");
if( handler != null) {
Image myndin = handler.getModifiedImageAsImageObject(modinfo);
String percent2 = modinfo.getParameter("percent");
if (percent2!=null) percent = TextSoap.findAndReplace(percent2,"%","");
int iPercent = 100;
if(percent==null) percent = "100";
try{
iPercent = Integer.parseInt(percent);
}
catch (NumberFormatException n) {
iPercent = 100;
percent = "100";
}
myndin.setWidth( (Integer.parseInt(myndin.getWidth())* iPercent)/100 );
myndin.setHeight( (Integer.parseInt(myndin.getHeight())* iPercent)/100 );
innerTable.add( myndin ,2,1);
Text percentText = new Text(Text.getBreak()+"Percent:"+Text.getBreak());
percentText.setFontSize(1);
imageTable.add(percentText,1,1);
TextInput percentInput = new TextInput("percent",percent+"%");
percentInput.setSize(4);
imageTable.add(percentInput,1,1);
}
toolbarBelow.mergeCells(1,1,2,1);
toolbarBelow.setAlignment(1,1,"center");
toolbarBelow.setAlignment(1,2,"left");
toolbarBelow.setAlignment(2,2,"left");
toolbarBelow.setAlignment(3,2,"left");
toolbarBelow.setAlignment(4,2,"left");
toolbarBelow.setAlignment(3,1,"right");
toolbarBelow.setAlignment(4,1,"right");
form.add(imageTable);
return form;
}
private void setAction(Link theLink, String action){
theLink.addParameter("action",action);
theLink.addParameter("edit","true");
theLink.addParameter("percent",percent);
}
private Form getCategoryEditForm(){
Form frameForm = new Form();
frameForm.add(new HiddenInput("image_id","-1"));
frameForm.add(new HiddenInput("action","savecategories"));
Table frameTable = new Table(1,2);
frameTable.setCellpadding(0);
frameTable.setCellspacing(0);
List catagories = ImageBusiness.getAllImageCatagories();
int catagorieslength = (catagories != null) ? catagories.size() : 0;
Table contentTable = new Table(3,catagorieslength+2);
contentTable.setCellpadding(0);
contentTable.setCellspacing(0);
int textInputLenth = 20;
String catagoriTextInputName = "catagory";
String deleteTextInputName = "delete";
for (int i = 0; i < catagorieslength; i++) {
TextInput catagoryInput = new TextInput(catagoriTextInputName,((ImageCatagory)catagories.get(i)).getImageCatagoryName());
catagoryInput.setLength(textInputLenth);
contentTable.add(catagoryInput,1,i+2);
contentTable.add(new HiddenInput("ids",Integer.toString(((ImageCatagory)catagories.get(i)).getID())),1,i+2);
contentTable.setHeight(i+1,"30");
contentTable.add(new CheckBox(deleteTextInputName, Integer.toString(((ImageCatagory)catagories.get(i)).getID())),3,i+2);
}
Text catagoryText = new Text("Flokkur");
catagoryText.setBold();
catagoryText.setFontColor("#FFFFFF");
Text deleteText = new Text("Ey�a");
deleteText.setBold();
deleteText.setFontColor("#FFFFFF");
contentTable.add(catagoryText,1,1);
contentTable.add(deleteText,3,1);
TextInput catagoryInput = new TextInput(catagoriTextInputName);
catagoryInput.setLength(textInputLenth);
contentTable.add(catagoryInput,1,catagorieslength+2);
frameTable.add(contentTable,1,1);
//Buttons
Table buttonTable = new Table(3,1);
buttonTable.setHeight(40);
buttonTable.setCellpadding(0);
buttonTable.setCellspacing(0);
buttonTable.setWidth(2,1,"80");
buttonTable.setWidth(3,1,"60");
buttonTable.setAlignment(2,1,"left");
buttonTable.setAlignment(3,1,"right");
buttonTable.setVerticalAlignment(2,1,"bottom");
buttonTable.setVerticalAlignment(3,1,"bottom");
SubmitButton savebutton = new SubmitButton(save);
//Link cancelLink = new Link(cancel);
//buttonTable.add(cancelLink,2,1);
buttonTable.add(savebutton,3,1);
frameTable.add(buttonTable,1,2);
frameTable.setAlignment(1,2,"right");
//Buttons ends
frameForm.add(frameTable);
return frameForm;
}
private void getEditor(IWContext modinfo) throws Exception{
String whichButton = modinfo.getParameter("submit");
String ImageId = modinfo.getParameter("image_id");
String imageInSession = (String) modinfo.getSessionAttribute("image_in_session");
ImageHandler handler = (ImageHandler) modinfo.getSessionAttribute("handler");
if (imageInSession!=null){
if (ImageId != null) {
if( !ImageId.equalsIgnoreCase(imageInSession) ){
modinfo.setSessionAttribute("image_in_session",ImageId);
handler = new ImageHandler(Integer.parseInt(ImageId));
modinfo.setSessionAttribute("handler",handler);
}
ImageBusiness.handleEvent(modinfo,handler);
outerTable.add(getEditorForm(handler,ImageId,modinfo),1,2);
}
else {
ImageId = imageInSession;
ImageBusiness.handleEvent(modinfo,handler);
outerTable.add(getEditorForm(handler,ImageId,modinfo),1,2);
}
}
else{
if( ImageId!=null ) {
modinfo.setSessionAttribute("image_in_session",ImageId);
handler = new ImageHandler(Integer.parseInt(ImageId));
modinfo.setSessionAttribute("handler",handler);
ImageBusiness.handleEvent(modinfo,handler);
outerTable.add(getEditorForm(handler,ImageId,modinfo),1,2);
}
}
}
}