package com.idega.block.process.presentation;
import java.util.List;
import javax.faces.context.FacesContext;
import com.idega.block.process.business.CasesListColumn;
import com.idega.block.process.business.ProcessConstants;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWBaseComponent;
import com.idega.presentation.IWContext;
import com.idega.presentation.Layer;
import com.idega.presentation.Script;
import com.idega.presentation.Table2;
import com.idega.presentation.TableCell2;
import com.idega.presentation.TableRow;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.GenericButton;
import com.idega.presentation.ui.TextInput;
import com.idega.util.PresentationUtil;
public class CasesFinder extends IWBaseComponent {
private String searchTextInputStyle = "textInputForCasesSearchStyleClass";
@Override
protected void initializeComponent(FacesContext context) {
IWContext iwc = IWContext.getIWContext(context);
PresentationUtil.addStyleSheetToHeader(iwc, iwc.getIWMainApplication().getBundle(ProcessConstants.IW_BUNDLE_IDENTIFIER).getVirtualPathWithFileNameString("style/process.css"));
Layer container = new Layer();
IWResourceBundle iwrb = getIWResourceBundle(iwc, ProcessConstants.IW_BUNDLE_IDENTIFIER);
Table2 casesSearchTable = new Table2();
casesSearchTable.setStyleClass("casesSearchTableStyle");
container.add(casesSearchTable);
TableRow row = casesSearchTable.createRow();
TableCell2 cell = row.createCell();
cell.add(new Text(iwrb.getLocalizedString("select_column", "Select column:")));
cell = row.createCell();
DropdownMenu columnsMenu = new DropdownMenu();
columnsMenu.setStyleClass(searchTextInputStyle);
cell.add(columnsMenu);
addCasesColumnsForSearch(iwc, columnsMenu);
row = casesSearchTable.createRow();
cell = row.createCell();
cell.add(new Text(iwrb.getLocalizedString("enter_search_key", "Enter search key:")));
cell = row.createCell();
TextInput searchText = new TextInput();
searchText.setStyleClass(searchTextInputStyle);
cell.add(searchText);
Layer buttons = new Layer();
buttons.setStyleClass("casesSearchButtonsContainerStyle");
container.add(buttons);
GenericButton search = new GenericButton("executeSearch", iwrb.getLocalizedString("search", "Search"));
search.setOnClick(new StringBuilder("searchForCasesInTable('").append(searchText.getId()).append("', '").append(columnsMenu.getId()).append("');").toString());
buttons.add(search);
GenericButton clear = new GenericButton("clearSearchTerms", iwrb.getLocalizedString("clear", "Clear"));
clear.setOnClick(new StringBuilder("clearSearchTerms('").append(searchText.getId()).append("');").toString());
buttons.add(clear);
Script script = new Script();
script.addScriptLine("registerSearchWindowActions();");
container.add(script);
add(container);
}
private void addCasesColumnsForSearch(IWContext iwc, DropdownMenu columnsMenu) {
Object o = iwc.getSessionAttribute(ProcessConstants.getKeyForCasesColumnsAttribute(iwc));
if (o instanceof List) {
List<CasesListColumn> columns = (List<CasesListColumn>) o;
CasesListColumn column = null;
for (int i = 0; i < columns.size(); i++) {
column = columns.get(i);
if (column.getType() != null) {
columnsMenu.addMenuElement(i, column.getName());
}
}
}
}
@Override
public Object saveState(FacesContext ctx) {
Object values[] = new Object[2];
values[0] = super.saveState(ctx);
values[1] = searchTextInputStyle;
return values;
}
@Override
public void restoreState(FacesContext ctx, Object state) {
Object values[] = (Object[]) state;
super.restoreState(ctx, values[0]);
searchTextInputStyle = (String) values[1];
}
}