001: package com.sun.portal.admin.console.sra.monitoring;
002:
003: import com.sun.portal.admin.console.sra.utils.Util;
004: import com.sun.web.ui.component.*;
005:
006: import javax.faces.context.FacesContext;
007: import javax.faces.el.MethodBinding;
008: import javax.faces.el.ValueBinding;
009: import java.util.ArrayList;
010: import java.util.List;
011:
012: /**
013: * author: Noble Paul
014: * Date: Jun 2, 2005, 3:27:47 PM
015: */
016: public class MonitoringTable {
017: private Table table = null;
018:
019: public Table getTable() {
020: try {
021: List profiles = (List) Util
022: .evaluateValueBinding("#{SRAProxiesBean.profiles}");
023: table = new Table();
024: table.setValueBinding("title",
025: getValueBinding("#{monitoring['table.header']}"));
026: table.getChildren().addAll(getRowGroups(profiles.size()));
027: return table;
028: } catch (Exception e) {
029: throw new RuntimeException(e);
030: }
031: }
032:
033: public void setTable(Table table) {
034: }
035:
036: private List getRowGroups(int size) {
037: //sourceData="#{Profile.instances}" sourceVar="sraInstance" headerText="Profile: #{Profile.name}" align="center"
038: List rowGroups = new ArrayList();
039: for (int i = 0; i < size; i++) {
040: TableRowGroup rg = new TableRowGroup();
041: rg
042: .setValueBinding(
043: "headerText",
044: getValueBinding("#{monitoring['rowgroup.header']} #{SRAProxiesBean.profiles["
045: + i + "].name}"));
046: rg.setValueBinding("sourceData",
047: getValueBinding("#{SRAProxiesBean.profiles[" + i
048: + "].instances}"));
049: rg.setSourceVar("instance");
050: rg.getChildren().addAll(getTableColumns());
051: rowGroups.add(rg);
052: }
053:
054: return rowGroups;
055: }
056:
057: private List getTableColumns() {
058: List columns = new ArrayList();
059: /*<ui:tableColumn id="col1" alignKey="last" headerText="Proxy Type " rowHeader="true" style="width: 10%" >
060: <ui:textfield text="rewriter proxy"/>
061: </ui:tableColumn>*/
062: TableColumn column = new TableColumn();
063: column.setId("col0");
064: column.setHeaderText(" ");
065: column.setRowHeader(true);
066:
067: RadioButton rb = new RadioButton();
068: rb.setValueBinding("toolTip",
069: getValueBinding("#{monitoring['radio.button.label']}"));
070: rb.setValueBinding("selected",
071: getValueBinding("#{instance.value.selected}"));
072: rb.setName("sel_inst");
073: rb
074: .setValueBinding(
075: "selectedValue",
076: getValueBinding("#{instance.value.profile.name}:#{instance.value.typeShort}:#{instance.value.hostName}"));
077: rb
078: .setValueBinding(
079: "onClick",
080: getValueBinding("sraproxy_instance_selected(#{instance.value.started}, "
081: + "#{instance.value.monitoringStatus == 1})"));
082: column.getChildren().add(rb);
083: columns.add(column);
084:
085: column = new TableColumn();
086: column.setId("col1");
087: column
088: .setValueBinding(
089: "headerText",
090: getValueBinding("#{monitoring['table.instance.type.header']}"));
091: column.setRowHeader(true);
092:
093: StaticText st = new StaticText();
094: st.setValueBinding("text",
095: getValueBinding("#{instance.value.type}"));
096: column.getChildren().add(st);
097: columns.add(column);
098:
099: /*<ui:tableColumn id="col2" alignKey="last" headerText="Instance Type" rowHeader="true">
100: <ui:staticText text="#{instance.instanceType}" />
101: </ui:tableColumn>*/
102: column = new TableColumn();
103: column.setId("col2");
104: column
105: .setValueBinding(
106: "headerText",
107: getValueBinding("#{monitoring['table.host.name.header']}"));
108: column.setRowHeader(true);
109: column.setStyle("width: 40%");
110:
111: st = new StaticText();
112: st.setValueBinding("text",
113: getValueBinding("#{instance.value.host}"));
114: column.getChildren().add(st);
115: columns.add(column);
116:
117: column = new TableColumn();
118: column.setId("col3");
119: column
120: .setValueBinding(
121: "headerText",
122: getValueBinding("#{monitoring['table.status.header']}"));
123: column.setRowHeader(true);
124: // column.setStyle("width: 40%" );
125:
126: st = new StaticText();
127: st.setValueBinding("text",
128: getValueBinding("#{instance.value.status}"));
129: column.getChildren().add(st);
130: columns.add(column);
131:
132: /*<ui:tableColumn id="col3" alignKey="last" headerText="Status" rowHeader="true" style="width: 30%">
133: <ui:staticText text="#{instance.status}" />
134: </ui:tableColumn>*/
135: /*column = new TableColumn();
136: column.setId("col4");
137: column.setValueBinding("headerText",getValueBinding("#{monitoring['table.actions.header']}"));
138: column.setRowHeader(true);
139: column.setStyle("width: 30%");
140:
141:
142: Hyperlink link = new Hyperlink();
143: link.setValueBinding("text",getValueBinding("#{instance.btnText}"));
144: link.setAction(getMethodBinding("#{instance.toggleState}"));
145: column.getChildren().add(link);
146:
147: st = new StaticText();
148: st.setText(" ");
149: column.getChildren().add(st);
150:
151: link = new Hyperlink();
152: link.setValueBinding("text",getValueBinding("#{monitoring['monitor.button.label']}"));
153: link.setValueBinding("url",getValueBinding("#{context}/faces/sra/monitoring/Monitoring.jsp?#{instance.monitoringUrl}"));
154: link.setAction(getMethodBinding("#{instance.monitor}"));
155: link.setValueBinding("disabled",getValueBinding("#{instance.monitoringStatus==2}"));
156: column.getChildren().add(link);
157: columns.add(column);*/
158:
159: return columns;
160: }
161:
162: static ValueBinding getValueBinding(String value) {
163: return FacesContext.getCurrentInstance().getApplication()
164: .createValueBinding(value);
165:
166: }
167:
168: static MethodBinding getMethodBinding(String ref) {
169: return FacesContext.getCurrentInstance().getApplication()
170: .createMethodBinding(ref, new Class[] {});
171: }
172: }
|