blob: 7d5f1a2f9382ca7fd32151639f255dd3a13041cd [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.yarn.webapp.view;
import org.apache.hadoop.yarn.webapp.ResponseInfo;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.DIV;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.TABLE;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.TD;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.TR;
import com.google.inject.Inject;
import static org.apache.hadoop.yarn.webapp.view.JQueryUI.*;
public class InfoBlock extends HtmlBlock {
final ResponseInfo info;
@Inject InfoBlock(ResponseInfo info) {
this.info = info;
}
@Override protected void render(Block html) {
TABLE<DIV<Hamlet>> table = html.
div(_INFO_WRAP).
table(_INFO).
tr().
th().$class(C_TH).$colspan(2)._(info.about())._()._();
int i = 0;
for (ResponseInfo.Item item : info) {
TR<TABLE<DIV<Hamlet>>> tr = table.
tr((++i % 2 != 0) ? _ODD : _EVEN).
th(item.key);
String value = String.valueOf(item.value);
if (item.url == null) {
if (!item.isRaw) {
TD<TR<TABLE<DIV<Hamlet>>>> td = tr.td();
if ( value.lastIndexOf('\n') > 0) {
String []lines = value.split("\n");
DIV<TD<TR<TABLE<DIV<Hamlet>>>>> singleLineDiv;
for ( String line :lines) {
singleLineDiv = td.div();
singleLineDiv._r(line);
singleLineDiv._();
}
} else {
td._r(value);
}
td._();
} else {
tr.td()._r(value)._();
}
} else {
tr.
td().
a(url(item.url), value)._();
}
tr._();
}
table._()._();
}
}