package com.idega.block.reports.presentation;
import java.sql.SQLException;
import com.idega.block.reports.business.ReportCondition;
import com.idega.block.reports.data.ReportCategory;
import com.idega.presentation.Block;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.InterfaceObject;
import com.idega.presentation.ui.TextInput;
import com.idega.repository.data.RefactorClassRegistry;
public class ReportObjectHandler extends Block{
public static DropdownMenu drpCategories(String sPrm,String selected) {
ReportCategory[] cat = new ReportCategory[0];
try{
cat = (ReportCategory[]) (((com.idega.block.reports.data.ReportCategoryHome)com.idega.data.IDOLookup.getHomeLegacy(ReportCategory.class)).createLegacy()).findAll();
}
catch(SQLException sql){}
DropdownMenu drp = new DropdownMenu(sPrm);
drp.addMenuElement("0","Flokkar");
for (int i = 0; i < cat.length; i++) {
drp.addMenuElement(cat[i].getID(),cat[i].getName());
}
if(!"".equalsIgnoreCase(selected)) {
drp.setSelectedElement(selected);
}
return drp;
}
public static InterfaceObject getInput(ReportCondition RC,String Name,String selected){
InterfaceObject mo = null;
String Type = RC.getItem().getConditionType();
if(Type.equalsIgnoreCase("T")) {
mo = new TextInput(Name);
}
else if(Type.equalsIgnoreCase("I")){
TextInput ti = new TextInput(Name);
ti.setAsIntegers();
mo = ti;
}
else if(Type.equalsIgnoreCase("S")) {
mo = drpEntity(Name,RC.getItem().getEntity(),RC.getItem().getField(),selected,false);
}
else if(Type.equalsIgnoreCase("C")) {
mo = drpValues(RC,Name,selected,false);
}
else if(Type.equalsIgnoreCase("D")) {
mo = drpValues(RC,Name,selected,true);
}
return mo;
}
public static DropdownMenu drpTypes(String name,String selected){
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("I","Integer");
drp.addMenuElement("T","Text");
drp.addMenuElement("S","Select All");
drp.addMenuElement("C","List with default");
drp.addMenuElement("D","List without default");
if(!selected.equalsIgnoreCase("")) {
drp.setSelectedElement(selected);
}
return drp;
}
public static DropdownMenu drpFunctions(String name,String selected){
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("","--");
drp.addMenuElement("COUNT","COUNT");
drp.addMenuElement("AVG","AVERAGE");
drp.addMenuElement("SUM","SUM");
drp.addMenuElement("MAX","MAX");
drp.addMenuElement("MIN","MIN");
drp.addMenuElement("UPPER","UPPER");
if(!selected.equalsIgnoreCase("")) {
drp.setSelectedElement(selected);
}
return drp;
}
public static DropdownMenu drpOperators(String name,String selected){
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("LIKE","LIKE");
drp.addMenuElement("=","EQUAL");
drp.addMenuElement("<=","LESS OR EQUAL");
drp.addMenuElement("<","LESS");
drp.addMenuElement(">=","GREATER OR EQUAL");
drp.addMenuElement("!=","NOT EQUAL");
drp.addMenuElement("!=","NOT EQUAL");
drp.addMenuElement("BETWEEN","BETWEEN");
drp.addMenuElement("IN","IN");
if(!selected.equalsIgnoreCase("")) {
drp.setSelectedElement(selected);
}
return drp;
}
public static DropdownMenu drpValues(ReportCondition RC,String Name,String selected,boolean disabledvalue){
DropdownMenu drp = new DropdownMenu(Name);
if(disabledvalue ) {
drp.addMenuElement("0","--");
}
String[][] data = RC.getItem().getData();
if(data != null){
if(data.length ==1 && data[0] != null){
int len = data[0].length;
for (int i = 0; i < len; i++) {
drp.addMenuElement(data[0][i]);
}
}
else if(data.length == 2 && data[0] != null && data[1] != null){
int len = data[1].length;
for (int i = 0; i < len; i++) {
drp.addMenuElement(data[0][i],data[1][i]);
}
}
if(!selected.equalsIgnoreCase("")) {
drp.setSelectedElement(selected);
}
}
return drp;
}
public static DropdownMenu drpInteger(String Name,String selected,int f,int l){
DropdownMenu drp = new DropdownMenu(Name);
for(int i = f; i < l+1; i++){
drp.addMenuElement(String.valueOf(i));
}
if(!selected.equalsIgnoreCase("")) {
drp.setSelectedElement(selected);
}
return drp;
}
private static DropdownMenu drpEntity(String Name,String Entity,String field ,String selected,boolean withID) {
java.util.List L = null;
try{
com.idega.data.IDOLegacyEntity leg = (com.idega.data.IDOLegacyEntity)com.idega.data.IDOLookup.instanciateEntity(RefactorClassRegistry.forName(Entity));
// java.lang.Class.forName(Entity)
//com.idega.data.IDOHome home = (com.idega.data.IDOHome) com.idega.data.IDOLookup.getHomeLegacy(java.lang.Class.forName(Entity));
//com.idega.data.IDOEntity ge = home.createIDO();
L = com.idega.data.EntityFinder.findAll(leg);
//IDOLegacyEntity ge = (IDOLegacyEntity)java.lang.Class.forName(Entity).newInstance();
//entities = ge.findAll();
}
//catch(SQLException e){e.printStackTrace();}
catch(Exception e){e.printStackTrace();}
DropdownMenu drp = new DropdownMenu(Name);
drp.addMenuElement("0","--");
if(L!=null){
java.util.Iterator iter = L.iterator();
while(iter.hasNext()){
com.idega.data.IDOLegacyEntity leg = (com.idega.data.IDOLegacyEntity) iter.next();
String sField = leg.getStringColumnValue(field);
if(sField.length()>=20) {
sField = sField.substring(0,20);
}
drp.addMenuElement(sField);
}
/*
for(int i = 0; i < entities.length ; i++){
if(entities[i]!=null){
String sField = entities[i].getStringColumnValue(field);
if(sField!=null)
drp.addMenuElement(sField);
}
}
*/
}
if(!selected.equalsIgnoreCase("")){
drp.setSelectedElement(selected);
}
return drp;
}
}