Tomahawk column tag

This tag is used for the columns of the table.
It can be used in dataTable tag instead of using h:column. Tomahawk
column tag provides many new attributes. It provides many attributes for
header and footer of the column which can be used to provide new
functionality in the columns. Its sorting capability is really very
good. We can sort the columns by clicking the column header if the
sorting attribute is set to true. Default sorting can also be applied to
get the column sorted automatically when the page is rendered and
sorting according to the property can also be applied. Really, the
column tag of tomahawk comprises of a large number of new attributes
with amazing functionality.
Code Description :
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>t:column example</title>
<style type="text/css">
<!--
body{
margin-top:30;
}
.columnHeader {
color: green;
font-size:20px;
text-decoration:blink;
text-transform:uppercase;
}
-->
</style>
</head>
<body >
<f:view>
<h:form id="form1" >
<t:dataTable id="dt1" value="#{TableBean.perInfoAll}"
var="item" border="5" cellpadding="5"
cellspacing="3" first="0" rows="4"
width="50%" frame="hsides" rules="all">
<t:column sortable="true"
style="color:green; font-weight:bold"
headeronmouseover="this.className='columnHeader'"
headeronmouseout="this.className='normal'"
headertitle="Sort column by ID"
headerstyle="background-color:#99CCFF;">
<f:facet name="header">
<t:outputText value="id" />
</f:facet>
<t:outputText value="#{item.id}"></t:outputText>
</t:column>
<t:column sortable="true" headercolspan="2"
headeronmouseover="this.className='columnHeader'"
headeronmouseout="this.className='normal'"
headertitle="Sort column by name"
headerstyle="background-color:#99CCFF;">
<f:facet name="header">
<t:outputText value="name"/>
</f:facet>
<t:outputText value="#{item.firstname}"></t:outputText>
</t:column>
<t:column >
<t:outputText value="#{item.lastname}"></t:outputText>
</t:column>
<t:column sortable="true"
headeronmouseover="this.className='columnHeader'"
headeronmouseout="this.className='normal'"
headertitle="Sort column by phone no."
headerstyle="background-color:#99CCFF;">
<f:facet name="header">
<t:outputText value="phone"/>
</f:facet>
<t:outputText value="#{item.phone}"></t:outputText>
</t:column>
<t:column sortable="true" width="80"
headeronmouseover="this.className='columnHeader'"
headeronmouseout="this.className='normal'"
headertitle="Sort column by city"
headerstyle="background-color:#99CCFF;">
<f:facet name="header">
<t:outputText value="city"/>
</f:facet>
<t:outputText value="#{item.city}"></t:outputText>
</t:column>
<t:column headeronmouseover="this.className='columnHeader'"
headeronmouseout="this.className='normal'"
headerstyle="background-color:#99CCFF;">
<f:facet name="header">
<t:outputText value="pin"/>
</f:facet>
<t:outputText value="#{item.pin}"></t:outputText>
</t:column>
</t:dataTable>
</h:form>
</f:view>
</body>
</html>
|
Backing Bean (TableBean.java) :
package net.roseindia.web.ui;
public class TableBean {
private perInfo[] perInfoAll = new perInfo[]{
new perInfo(101, "SUSHIL","KUMAR", "9891444444", "Delhi", 111111),
new perInfo(102, "CHANDAN","KUMAR", "9911666666", "Bombay" ,222222),
new perInfo(103, "RAVI","KANT", "9313888888", "New York", 333333),
new perInfo(104, "ANDY","ROBERTSON", "9911222222", "Florida" , 444444),
new perInfo(105, "SHAUN","MARTIN", "9313999999", "Los Angeles", 555555),
};
public perInfo[] getperInfoAll() {
return perInfoAll;
}
public class perInfo {
int id;
String firstname;
String lastname;
String phone;
String city;
int pin;
public perInfo(int id, String firstname,String lastname,
String phone, String city, int pin) {
this.id = id;
this.firstname = firstname;
this.lastname = lastname;
this.phone = phone;
this.city = city;
this.pin= pin;
}
public int getid() {
return id;
}
public String getfirstname() {
return firstname;
}
public String getlastname() {
return lastname;
}
public String getphone() {
return phone;
}
public String getcity() {
return city;
}
public int getpin() {
return pin;
}
}
}
|
Rendered Output : This is the original
output of the code above. Headers of the columns in blue color indicates
the sorting capability of the columns i.e. you can sort columns by
clicking the header names.

The figure below is the output when we click
the "name" header then an arrow appears with the name of the
header that indicates that you have clicked this header and sorting has
performed. You can now again click to sort in reverse order.

If we add "defaultSorted" attribute
and set it to true in city column then the city column is automatically
sorted when the page is rendered and the arrow sign appears also with
the header "city" indicating column is sorted. You can see the
figure below :

Html Source Code :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>t:column example</title>
<style type="text/css">
<!--
body{
margin-top:30;
}
.columnHeader {
color: green;
font-size:20px;
text-decoration:blink;
text-transform:uppercase;
}
-->
</style>
</head>
<body >
<form id="form1" name="form1" method="post"
action="/tomahawk_tags/pages/column.jsf"
enctype="application/x-www-form-urlencoded">
<table id="form1:dt1" border="5" cellpadding="5"
cellspacing="3" frame="hsides" rules="all" width="50%">
<thead>
<tr>
<th onmouseover="this.className='columnHeader'"
onmouseout="this.className='normal'"
title="Sort column by ID"
style="background-color:#99CCFF;">
<script type="text/javascript">
<!--
function oamSetHiddenInput(formname, name, value){
var form = document.forms[formname];
if(typeof form.elements[name]=='undefined'){
var newInput = document.createElement('input');
newInput.setAttribute('type','hidden');
newInput.setAttribute('name',name);
newInput.setAttribute('value',value);
form.appendChild(newInput);
}
else{
form.elements[name].value=value;
}
}
function oamClearHiddenInput(formname, name, value){
var form = document.forms[formname];
if(typeof form.elements[name]!='undefined'){
form.elements[name].value=null;
}
}
function oamSubmitForm(formName, linkId, target, params){
var clearFn = 'clearFormHiddenParams_'+
formName.replace(/-/g, '\$:').replace(/:/g,'_');
if(typeof eval('window.'+clearFn)!='undefined'){
eval('window.'+clearFn+'(formName)');
}
var oldTarget = '';
if((typeof target!='undefined') && target != null){
oldTarget=document.forms[formName].target;
document.forms[formName].target=target;
}
if((typeof params!='undefined') && params != null){
for(var i=0; i<params.length; i++){
oamSetHiddenInput(formName,params[i][0], params[i][1]);
}
}
oamSetHiddenInput(formName,formName +':'+'_idcl',linkId);
if(document.forms[formName].onsubmit){
var result=document.forms[formName].onsubmit();
if((typeof result=='undefined')||result){
document.forms[formName].submit();
}
}
else {
document.forms[formName].submit();
}
if(oldTarget==null) oldTarget='';
document.forms[formName].target=oldTarget;
if((typeof params!='undefined') && params != null){
for(var i=0; i<params.length; i++){
oamClearHiddenInput(formName,params[i][0], params[i][1]);
}
}
oamClearHiddenInput(formName,formName +':'+'_idcl',linkId);
return false;
}
//-->
</script>
<a href="#" onclick="return oamSubmitForm('form1','form1:dt1:_id0');"
id="form1:dt1:_id0">id</a>
</th>
<th onmouseover="this.className='columnHeader'"
onmouseout="this.className='normal'" title="Sort column by name"
colspan="2" style="background-color:#99CCFF;">
<a href="#" onclick="return oamSubmitForm('form1','form1:dt1:_id1');"
id="form1:dt1:_id1">name</a>
</th>
<th onmouseover="this.className='columnHeader'"
onmouseout="this.className='normal'" title="Sort column by phone no."
style="background-color:#99CCFF;">
<a href="#" onclick="return oamSubmitForm('form1','form1:dt1:_id2');"
id="form1:dt1:_id2">phone</a>
</th>
<th onmouseover="this.className='columnHeader'"
onmouseout="this.className='normal'"
title="Sort column by city" style="background-color:#99CCFF;"
width="80">
<a href="#" onclick="return oamSubmitForm('form1','form1:dt1:_id3');"
id="form1:dt1:_id3">city</a>
</th>
<th onmouseover="this.className='columnHeader'"
onmouseout="this.className='normal'"
style="background-color:#99CCFF;">pin
</th>
</tr>
</thead>
<tbody id="form1:dt1:tbody_element">
<tr>
<td style="color:green; font-weight:bold">101</td>
<td>SUSHIL</td><td>KUMAR</td><td>9891444444</td>
<td width="80">Delhi</td><td>111111</td>
</tr>
<tr>
<td style="color:green; font-weight:bold">102</td>
<td>CHANDAN</td><td>KUMAR</td><td>9911666666</td>
<td width="80">Bombay</td><td>222222</td>
</tr>
<tr>
<td style="color:green; font-weight:bold">103</td>
<td>RAVI</td><td>KANT</td><td>9313888888</td>
<td width="80">New York</td><td>333333</td>
</tr>
<tr>
<td style="color:green; font-weight:bold">104</td>
<td>ANDY</td><td>ROBERTSON</td><td>9911222222</td>
<td width="80">Florida</td><td>444444</td>
</tr>
</tbody>
</table>
<input type="hidden" name="form1_SUBMIT" value="1" />
<input type="hidden" name="form1:_link_hidden_" />
<input type="hidden" name="form1:_idcl" />
<script type="text/javascript">
<!--
function clear_form1(){
clearFormHiddenParams_form1('form1');
}
function clearFormHiddenParams_form1(currFormName)
{
var f = document.forms['form1'];
f.elements['form1:_link_hidden_'].value='';
f.elements['form1:_idcl'].value='';
f.target='';
}
clearFormHiddenParams_form1();
//--></script>
<input type="hidden" name="javax.faces.ViewState"
id="javax.faces.ViewState"
value="rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAA
B4cAAAAAN0AAEycHQAES9wYWdlcy9jb2x1bW4uanNw" />
</form>
<!-- MYFACES JAVASCRIPT -->
</body>
</html>
|
This tag contains attributes given below :
- id : This is the value which is used to
uniquely identify the component within the closest container like form or
subview. The main thing to remember is that its value must be a static
value.
- binding : This attribute is used to specify
the property of the backing bean with which this component instance is to be
bound.
- rendered : Its default value is true.
If this attribute is set to true then this component is presented in
the page to the user. If false, then this component is not rendered.
- dir : It is used to set the direction of the
text to be displayed. It can take two values LTR(left to right) and RTL
(right to left).
- lang : It is used to set the base language of
the component when displayed.
- style : It is used to set the CSS style
definition for the component.
- title : It is the standard html attribute. It
is used to set the tooltip text for this component.
- styleClass : It is used to set the CSS class
for the component. It is same as html class attribute.
- onclick : Script to be invoked when the
element is clicked.
- ondblclick : It is used for Java Script code
to be invoked when the element is double-clicked.
- onmousedown : It is used for Java Script code
to be invoked when the pointing device is pressed over this element.
- onmouseup : It is used for Java Script code
to be invoked when the pointing device is released over this element.
- onmouseover : It is used for Java Script code
to be invoked when the pointing device is moved into this element.
- onmousemove : It is used for Java Script code
to be invoked when the pointing device is moved while it is in this element.
- onmouseout : It is used for Java Script code
to be invoked when the pointing device is moved out of this element.
- onkeypress : It is used for Java Script code
to be invoked when a key is pressed over this element.
- onkeydown : It is used for Java Script code
to be invoked when a key is pressed down over this element.
- onkeyup : It is used for Java Script code to
be invoked when a key is released over this element.
- headerdir : This attribute is used to
define the direction of the header text. It can take two values "ltr"
and "rtl".
- headerlang : It is used to set the language
of the header of this tag.
- headerstyle : It is used to set the CSS style
definition for header of this tag.
- headertitle :
It
is used to set the tooltip text for header of this tag.
- headercolspan : This attribute is used
to apply one header for more than one column.
- headerstyleClass : It is used to set the CSS class
for the header of the tag.
- headeronclick : It is used for Java Script code
to be invoked when the header of the tag is clicked.
- headerondblclick : It is used for Java Script code
to be invoked when the header of the tag is double-clicked.
- headeronmousedown : It is used for Java Script code
to be invoked when the pointing device is pressed over the header.
- headeronmouseup : It is used for Java Script code
to be invoked when the pointing device is released over the header.
- headeronmouseover : It is used for Java Script code
to be invoked when the pointing device is moved into the header.
- headeronmousemove : It is used for Java Script code
to be invoked when the pointing device is moved while it is in the header.
- headeronmouseout : It is used for Java Script code
to be invoked when the pointing device is moves out of the header.
- headeronkeypress : It is used for Java Script code
to be invoked when a key is pressed over the header.
- headeronkeydown :
It is used for Java Script code
to be invoked when a key is pressed down over the header.
- headeronkeyup :
It is used for Java Script code to
be invoked when a key is released over the header.
- footerdir : This
attribute is used to define the direction of the footer text. It can take
two values "ltr" and "rtl".
- footerlang : It is used to set the language
of the footer of this tag.
- footerstyle : It is used to set the CSS style
definition for footer of this tag.
- footertitle : It
is used to set the tooltip text for footer of this tag.
- footercolspan : This
attribute is used to apply one footer for more than one column.
- footerstyleClass : It is used to set the CSS class
for the footer of the tag.
- footeronclick : It is used for Java Script code
to be invoked when the footer of the tag is clicked.
- footerondblclick : It is used for Java Script code
to be invoked when the footer of the tag is double-clicked.
- footeronmousedown : It is used for Java Script code
to be invoked when the pointing device is pressed over the footer.
- footeronmouseup : It is used for Java Script code
to be invoked when the pointing device is released over the footer.
- footeronmouseover : It is used for Java Script code
to be invoked when the pointing device is moved into the footer.
- footeronmousemove : It is used for Java Script code
to be invoked when the pointing device is moved while it is in the footer.
- footeronmouseout : It is used for Java Script code
to be invoked when the pointing device is moved out of the footer.
- footeronkeypress : It is used for Java Script code
to be invoked when a key is pressed over the footer.
- footeronkeydown : It is used for Java Script code
to be invoked when a key is pressed down over the footer.
- footeronkeyup : It is used for Java Script code to
be invoked when a key is released over the footer.
- width : This is used to set the width of this
component.
- colspan : This attribute specifies the
colspan attribute for the cell.
- groupBy : This attribute is used to group by data in this column
- defaultSorted : This is the boolean
attribute. When this attribute is set to true for a particular column then
that column will be rendered already sorted but this attribute will be
effective only when "sorted" attribute is set to
true.
- sortable : This is a boolean attribute. When
this attribute is set to true only then the column sorting gets effective.
- sortPropertyName : This attribute specifies
the name of the property according to which the sorting of the column is
performed.

|