package is.idega.idegaweb.project.presentation;
import com.idega.presentation.Block;
import com.idega.presentation.text.Link;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.ui.TextInput;
import com.idega.presentation.ui.Form;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.CloseButton;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.text.Text;
import com.idega.idegaweb.IWResourceBundle;
import is.idega.idegaweb.project.business.ProjectBusiness;
import is.idega.idegaweb.project.data.IPCategory;
import com.idega.presentation.ui.Window;
import java.util.List;
/**
* Title: IW Project
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a>
* @version 1.0
*/
public class ProjectCategoryModificationLink extends Block {
protected Link modifyCategoryLink = null;
protected Image optionalImage = null;
protected int _categoryTypeId = -1;
public static final String _PROJECT_BUNDLE_IDENTIFIER = "is.idega.idegaweb.project";
public ProjectCategoryModificationLink() {
super();
}
public String getBundleIdentifier(){
return _PROJECT_BUNDLE_IDENTIFIER;
}
public void setImage(Image image){
optionalImage = image;
}
public void setCategoryTypeId(int id){
_categoryTypeId = id;
}
public void main(IWContext iwc) throws Exception {
//IWBundle core = iwc.getApplication().getBundle(IW_CORE_BUNDLE_IDENTIFIER);
this.empty();
if(optionalImage != null){
modifyCategoryLink = new Link(optionalImage);
} else {
IWResourceBundle iwrb = this.getResourceBundle(iwc);
Image tmp = iwrb.getImage("modify_category.gif","modify category");
if(tmp != null){
modifyCategoryLink = new Link(tmp);
} else {
modifyCategoryLink = new Link("*");
}
}
modifyCategoryLink.setName("modify category");
modifyCategoryLink.setWindowToOpen(ModifyCategoryWindow.class);
modifyCategoryLink.addParameter(ModifyCategoryWindow._CATEGORY_TYPE, _categoryTypeId);
this.add(modifyCategoryLink);
}
public static class ModifyCategoryWindow extends Window{
private static final String _CATEGORY_TYPE = "ip_c_t";
private static final String _PRM_NAME = "ip_c_name";
private static final String _PRM_DELETE = "ip_c_del";
private static final String _PRM_ID = "ip_c_id";
public ModifyCategoryWindow(){
super("Modify Categories");
this.setAllMargins(0);
this.setWidth(300);
this.setHeight(300);
//this.setBackgroundColor("#d4d0c8");
}
public void main(IWContext iwc) throws Exception {
Form myForm = new Form();
myForm.maintainParameter(_CATEGORY_TYPE);
int typeId = -1;
try {
typeId = Integer.parseInt(iwc.getParameter(_CATEGORY_TYPE));
}
catch (Exception ex) {
// do Nothing
}
if(iwc.getParameter("commit") != null){
//Save
ProjectBusiness business = ProjectBusiness.getInstance();
String[] names = iwc.getParameterValues(_PRM_NAME);
String[] ids = iwc.getParameterValues(_PRM_ID);
String[] del = iwc.getParameterValues(_PRM_DELETE);
if(names != null && ids != null){
System.out.println(" id\tname");
for (int i = 0; i < names.length; i++) {
System.out.println(" "+ids[i]+"\t"+names[i]);
business.updateIPCategory(Integer.parseInt(ids[i]),names[i],null);
}
if(del != null){
for (int i = 0; i < del.length; i++) {
System.out.print(del[i]);
System.out.print(", ");
business.deleteIPCategory(Integer.parseInt(del[i]));
}
}
}else{
System.out.println("names = "+ names +", ids = "+ ids);
}
this.setParentToReload();
this.close();
} else {
CategoryList cList = new CategoryList(_PRM_DELETE,_PRM_NAME, _PRM_ID, typeId);
myForm.add(cList);
myForm.add(new SubmitButton("commit"," OK "));
myForm.add(new CloseButton(" Cancel "));
this.add(myForm);
}
}
}
public static class CategoryList extends AbstractContentList {
private String _checkboxName = null;
private String _textinputName = null;
private String _hiddeninputName = null;
private int _catTypeId = -1;
private CategoryList() {
super();
}
private CategoryList(String checkboxName, String textinputName, String hiddeninputName, int catTypeId) {
this();
_catTypeId = catTypeId;
_checkboxName = checkboxName;
_textinputName = textinputName;
_hiddeninputName = hiddeninputName;
}
public synchronized Object clone(){
ModifyCategoryWindow obj = (ModifyCategoryWindow)super.clone();
return obj;
}
public List getEntityList(IWContext iwc) throws Exception {
List l = null;
if(_catTypeId != -1){
l = ProjectBusiness.getInstance().getCategories(_catTypeId);
}
return l;
}
public void initColumns(IWContext iwc) throws java.lang.Exception {
//this.setColumns(6);
//this.setWidth("567");
this.setColumns(3);
this.setWidth("240");
this.setExtraRowsAtBeginning(1);
this.setColumnWidth(1,"40");
this.setColumnWidth(2,"150");
this.setColumnWidth(3,"1");
}
public PresentationObject getObjectToAddToColumn(int colIndex, int rowIndex, Object item, IWContext iwc, boolean beforeEntities)throws Exception{
if(item == null){
if(beforeEntities && (rowIndex == 1)){
Text text = new Text();
text.setBold();
switch (colIndex) {
case 1:
text.setText("Ey�a");
break;
case 2:
text.setText("Nafn");
break;
case 3:
return null;
}
return text;
}
} else {
IPCategory ipc = (IPCategory)item;
switch (colIndex) {
case 1:
return getCheckBox(ipc.getID());
case 2:
return getTextInput(ipc.getName());
case 3:
return getHiddenInput(ipc.getID());
}
}
return null;
}
public CheckBox getCheckBox(int catId){
CheckBox box = new CheckBox(_checkboxName);
box.setValue(catId);
return box;
}
public TextInput getTextInput(String value){
TextInput input = new TextInput(_textinputName,value);
return input;
}
public HiddenInput getHiddenInput(int id){
HiddenInput input = new HiddenInput(_hiddeninputName,Integer.toString(id));
return input;
}
} // InnerClass CategoryList
}