/*
* Created on Jun 21, 2003
*
* To change this generated comment go to
* Window>Preferences>Java>Code Generation>Code Template
*/
package com.idega.builder.presentation;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.FinderException;
import com.idega.builder.business.BuilderLogic;
import com.idega.core.component.data.ICObject;
import com.idega.core.component.data.ICObjectBMPBean;
import com.idega.core.component.data.ICObjectHome;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.idegaweb.IWConstants;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.ui.AbstractChooserWindow;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
/**
* <p>Title: idegaWeb</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: idega Software</p>
* @author aron
* @version 1.0
*/
public class IBObjectChooserWindow extends AbstractChooserWindow {
public static String PRM_FILTER = "ico_filter";
private static final int _width = 280;
private static final int _height = 400;
private static final String _linkStyle = "font-family:Arial,Helvetica,sans-serif;font-size:8pt;color:#000000;text-decoration:none;";
public IBObjectChooserWindow() {
setTitle("Object chooser");
setWidth(_width);
setHeight(_height);
setCellpadding(5);
setScrollbar(true);
this.getLocation().setApplicationClass(this.getClass());
this.getLocation().isInPopUpWindow(true);
}
/* (non-Javadoc)
* @see com.idega.presentation.ui.AbstractChooserWindow#displaySelection(com.idega.presentation.IWContext)
*/
public void displaySelection(IWContext iwc) {
IWResourceBundle iwrb = iwc.getIWMainApplication().getBundle(BuilderLogic.IW_BUNDLE_IDENTIFIER).getResourceBundle(iwc);
addTitle(iwrb.getLocalizedString("select_object", "Select object"), IWConstants.BUILDER_FONT_STYLE_TITLE);
setStyles();
debugParameters(iwc);
boolean useClassValue = iwc.isParameterSet(IBObjectChooser.USE_CLASS_VALUE);
Form form = new Form();
Table table = new Table();
String[] filters = iwc.getParameterValues(PRM_FILTER);
try {
if(filters!=null){
Collection collection;
Link icoLink;
int col;
for (int i = 0; i < filters.length; i++) {
int row = 1;
col = i+1;
table.add(filters[i],col,row++);
collection = getFilteredComponents(filters[i]);
for (Iterator iter = collection.iterator(); iter.hasNext();) {
ICObject item = (ICObject) iter.next();
icoLink = new Link(item.getBundle(iwc.getIWMainApplication()).getComponentName(item.getClassName(), iwc.getCurrentLocale()));
//icoLink.setOnClick(getOnSelectionCode( item.getPrimaryKey().toString(),item.getName()));
//icoLink.setOnClick(getOnSelectionCode( "'"+item.getName()+"'", item.getPrimaryKey().toString() ));
//icoLink.setOnClick(getOnSelectionCode(item.getPrimaryKey().toString()));
if(useClassValue) {
icoLink.setOnClick(getOnSelectionCode("'"+item.getName()+"'","'"+item.getClassName()+"'"));
}
else {
icoLink.setOnClick(getOnSelectionCode( "'"+item.getName()+"'", item.getPrimaryKey().toString() ));
}
icoLink.setURL(Link.JAVASCRIPT);
table.add(icoLink,col,row++);
//addComponentToTable(element,table,i+1,row++);
}
}
}
else {
DropdownMenu drp = getTypeFiltersDrop();
drp.setToSubmit(true);
form.add(drp);
}
}
catch (IDOLookupException e) {
add(e.getMessage());
e.printStackTrace();
}
catch (FinderException e) {
add(e.getMessage());
e.printStackTrace();
}
form.maintainParameter(FORM_ID_PARAMETER);
form.maintainParameter(SCRIPT_SUFFIX_PARAMETER);
form.maintainParameter(DISPLAYSTRING_PARAMETER_NAME);
form.maintainParameter(VALUE_PARAMETER_NAME);
form.maintainParameter(IBObjectChooser.USE_CLASS_VALUE);
form.add(table);
add(form);
}
private void addComponentToTable(ICObject object,Table table, int column,int row){
}
private DropdownMenu getTypeFiltersDrop(){
DropdownMenu drp = new DropdownMenu(PRM_FILTER);
Collection types = ICObjectBMPBean.getAvailableComponentTypes();
drp.addDisabledMenuElement("","Types");
for (Iterator iter = types.iterator(); iter.hasNext();) {
String element = (String) iter.next();
drp.addMenuElement(element);
}
return drp;
}
private Collection getFilteredComponents(String filter)throws FinderException,IDOLookupException{
ICObjectHome home = (ICObjectHome) IDOLookup.getHome(ICObject.class);
return home.findAllByObjectType(filter);
}
private void setStyles() {
String _linkStyle = "font-family:Arial,Helvetica,sans-serif;font-size:8pt;color:#000000;text-decoration:none;";
String _linkHoverStyle = "font-family:Arial,Helvetica,sans-serif;font-size:8pt;color:#FF8008;text-decoration:none;";
if (getParentPage() != null) {
getParentPage().setStyleDefinition("A", _linkStyle);
//getParentPage().setStyleDefinition("A."+STYLE_NAME+":visited",_linkStyle);
//getParentPage().setStyleDefinition("A."+STYLE_NAME+":active",_linkStyle);
getParentPage().setStyleDefinition("A:hover", _linkHoverStyle);
}
}
}