View Javadoc

1   /*
2    * Copyright 2007-2008 the original author or authors.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.gwe.app.client.web.view;
18  
19  import java.util.List;
20  import java.util.Map;
21  
22  import org.gwe.app.client.config.ClientConfig;
23  import org.gwe.app.explorer.VarsModelRenderer;
24  import org.gwe.p2elv2.PPermutation;
25  import org.gwe.p2elv2.model.PVariable;
26  import org.gwe.persistence.model.HeadResourceInfo;
27  import org.gwe.persistence.model.JobExecutionInfo;
28  import org.gwe.persistence.model.JobInfo;
29  import org.gwe.persistence.model.OrderExecutionProfileInfo;
30  import org.gwe.persistence.model.OrderInfo;
31  import org.gwe.utils.web.HtmlImage;
32  import org.gwe.utils.web.HtmlMapTable;
33  import org.gwe.utils.web.HtmlTable;
34  
35  /**
36   * @author Marco Ruiz
37   * @since Dec 17, 2008
38   */
39  public class Renderer {
40  	
41  	// DETAILS TABLES
42  	
43  	public String renderDetails(HeadResourceInfo daemonInfo) {
44  		return renderTableModel(new HtmlClusterPropsTable(daemonInfo));
45  	}
46  
47  	public String renderDetails(OrderInfo order) {
48  		return renderTableModel(new HtmlOrderPropsTable(order));
49  	}
50  
51  	public String renderDetails(JobInfo job) {
52  		return renderTableModel(new HtmlJobPropsTable(job));
53  	}
54  
55  	public String renderDetails(JobExecutionInfo exec) {
56  		return renderTableModel(new HtmlExecPropsTable(exec));
57  	}
58  
59  	// ELEMENTS TABLES
60  	
61  	public String renderClusters(ClientConfig config) {
62  		return renderTableModel(new HtmlClustersTable(config));
63  	}
64  
65  	public String renderKeys(ClientConfig config) {
66  		return renderTableModel(new HtmlKeysTable(config));
67  	}
68  
69  	public String renderElements(HeadResourceInfo daemonInfo) {
70  		return renderTableModel(new HtmlOrdersTable(daemonInfo));
71  	}
72  
73  	public String renderElements(String clusterId, OrderInfo order) {
74  		return renderTableModel(new HtmlJobsTable(clusterId, order));
75  	}
76  
77  	public String renderElements(String clusterId, JobInfo job) {
78  		return renderTableModel(new HtmlExecsTable(clusterId, job));
79  	}
80  	
81  	// OTHER TABLES 
82  	
83  	public String renderExecutionProfile() {
84  		return renderTableModel(new HtmlOrderProfilePropsTable(new OrderExecutionProfileInfo()));
85  	}
86  	
87  	public String render(PPermutation perm) {
88  		return render((perm == null) ? null : perm.asFriendlyTreeMap());
89  	}
90  	
91  	public String render(Map<String, Object> data) {
92  		return renderTableModel(new HtmlMapTable(data));
93  	}
94  	
95  	public String render(List<PVariable> vars) {
96  		return renderTableModel(new HtmlPVarTable(vars));
97  	}
98  	
99  	public String renderTableModel(HtmlTable tableModel) {
100 		return tableModel.getHTML();
101 	}
102 	
103 	// OTHER WIDGETS 
104 	
105 	public String renderStatusImage(JobExecutionInfo exec) {
106 		return new HtmlImage(HtmlExecPropsTable.getStatusImage(exec), "Job Status").getHTML().toString();
107 	}
108 	
109 	public String renderResultsModel(OrderInfo order) {
110 		return new VarsModelRenderer().renderJS(order);
111 	}
112 	
113 	public String renderElements(List elements) {
114 		StringBuffer result = new StringBuffer();
115 		for (Object ele : elements)
116 	        result.append(ele).append("\n");
117 	        
118 		return result.toString();
119 	}
120 }
121