1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| public class MyBean {
// Init -------------------------------------------------------------
private List myList;
private List headers; // Optional.
private HtmlDataTable dynamicDataTable;
// Actions ----------------------------------------------------------
@SuppressWarnings("unchecked")
public void loadMyList() {
// Set headers (optional).
headers = new ArrayList();
headers.add("sélection");
headers.add("libelle");
headers.add("derogeable");
headers.add("libelleParametre");
headers.add("value");
MyBeanRowChampSaisi row1 = new MyBeanRowChampSaisi(true, "libelle1", true, "paramètre1", "value");
MyBeanRowDate row2 = new MyBeanRowDate(false, "libelle2", true, "paramètre2", new Date());
MyBeanRowListeDeroulante row3 = new MyBeanRowListeDeroulante(true, "libelle3", false, "paramètre3", Boolean.TRUE.toString());
myList = new ArrayList();
myList.add(row1);
myList.add(row2);
myList.add(row3);
}
@SuppressWarnings("unchecked")
public void populateDynamicDataTable() {
// Any columns?
if (myList != null && myList.size() > 0) {
dynamicDataTable = new HtmlDataTable();
// Get amount of columns.
int columns = headers.size();
// Set columns.
for (int i = 0; i < columns; i++) {
// Set header (optional).
UIOutput header = new UIOutput();
header.setValue(headers.get(i));
//Set column.
UIColumn column = new UIColumn();
column.setHeader(header);
switch(i){
case 0 : HtmlSelectBooleanCheckbox checkbox = new HtmlSelectBooleanCheckbox();
ValueBinding mycheck = FacesContext.getCurrentInstance().getApplication().createValueBinding("#{myItem.selection}");
checkbox.setValueBinding("value", mycheck);
column.getChildren().add(checkbox);
break;
case 1 : UIOutput output = new UIOutput();
ValueBinding myItem = FacesContext.getCurrentInstance().getApplication().createValueBinding("#{myItem.libelle}");
output.setValueBinding("value", myItem);
column.getChildren().add(output);
break;
case 2 : HtmlSelectOneMenu selectOneMenu = new HtmlSelectOneMenu();
UISelectItems mesItems = new UISelectItems();
List<SelectItem> listeSelectItem = new ArrayList<SelectItem>();
listeSelectItem.add(new SelectItem("", ""));
listeSelectItem.add(new SelectItem(Boolean.TRUE, Boolean.TRUE.toString()));
listeSelectItem.add(new SelectItem(Boolean.FALSE, Boolean.FALSE.toString()));
mesItems.setValue(listeSelectItem);
selectOneMenu.getChildren().add(mesItems);
ValueBinding derogeable = FacesContext.getCurrentInstance().getApplication().createValueBinding("#{myItem.derogeable}");
selectOneMenu.setValueBinding("value", derogeable);
column.getChildren().add(selectOneMenu);
break;
case 3 : UIOutput outputParam = new UIOutput();
ValueBinding myItemParam = FacesContext.getCurrentInstance().getApplication().createValueBinding("#{myItem.libelleParametre}");
outputParam.setValueBinding("value", myItemParam);
column.getChildren().add(outputParam);
break;
case 4 :
UIOutput output2 = new UIOutput();
ValueBinding bind = FacesContext.getCurrentInstance().getApplication().createValueBinding("#{myItem}");
// output.setValueBinding("value", myItem);
// output2.setValue(bind.getType(FacesContext.getCurrentInstance()).getName());
output2.setValue(dynamicDataTable.getRowData().getClass().getName());
column.getChildren().add(output2);
break;
default : break;
}
// Add column.
dynamicDataTable.getChildren().add(column);
}
}
}
// Getters ----------------------------------------------------------
public List getMyList() {
return myList;
}
public HtmlDataTable getDynamicDataTable() {
if (dynamicDataTable == null) {
loadMyList(); // Reload to get most recent data.
populateDynamicDataTable();
}
return dynamicDataTable;
}
// Setters ----------------------------------------------------------
public void setMyList(List myList) {
this.myList = myList;
}
public void setDynamicDataTable(HtmlDataTable dynamicDataTable) {
this.dynamicDataTable = dynamicDataTable;
}
} |
Partager