Hi janak,
Thanks for your prompt response. I truly apriciated it.
Regards,
-Asif
From: "Janak Mulani" <[EMAIL PROTECTED]>
Reply-To: "[EMAIL PROTECTED] Com" <[EMAIL PROTECTED]>
To: "M Asif" <[EMAIL PROTECTED]>
CC: <[email protected]>
Subject: RE: [ULC-developer] Editable check box in Table header
Date: Wed, 12 Jul 2006 17:01:23 +0200
Hi Asif,
Please see the snippet at the end of the mail that achieves your goal.
In ULC you cannot add a mouse listener but you can use the action listener
on the table header.
I hope this helps.
Thanks and regards,
Janak
>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED] Behalf Of M Asif
>Sent: Monday, July 10, 2006 5:44 AM
>To: [email protected]
>Subject: [ULC-developer] Editable check box in Table header
>
>
>Hi,
>
>I tried using renderer to put the check box in table header but it wont
>react to mouse click as by default the TableCellRenderer in a TableColumn
>doesn't receive any events. We cant add mouse listener in this
>case as ULC
>doesnt support that.
>
>What should be the proper way to install editable ULCCheckbox in sort
>enabled ULCTable Header ?
>
>
>I would appreciate if you could provide some sample code for
>above-mentioned
>problem.
>
>Regards,
>-Asif
import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.ClientContext;
import com.ulcjava.base.application.IRendererComponent;
import com.ulcjava.base.application.ULCBoxPane;
import com.ulcjava.base.application.ULCCheckBox;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.ULCScrollPane;
import com.ulcjava.base.application.ULCTable;
import com.ulcjava.base.application.event.ActionEvent;
import com.ulcjava.base.application.event.IActionListener;
import com.ulcjava.base.application.table.ITableCellRenderer;
import com.ulcjava.base.application.table.ULCTableColumn;
import com.ulcjava.base.development.DevelopmentRunner;
public class EditableCheckBoxInTableHeaderSnippet extends
AbstractApplication {
public static void main(String[] args) {
DevelopmentRunner.setApplicationClass(EditableCheckBoxInTableHeaderS
nippet.class);
DevelopmentRunner.run();
}
public void start() {
ULCFrame frame = new
ULCFrame("EditableCheckBoxInTableHeaderSnippet");
String[] cols = new String[2];
cols[0] = "Col1";
cols[1] = "Col2";
String cell1 = "1";
String cell2 = "2";
String cell3 = "3";
String cell4 = "4";
Object[][] rows = new Object[2][2];
rows[0][0] = cell1;
rows[0][1] = cell2;
rows[1][0] = cell3;
rows[1][1] = cell4;
ULCTable table = new ULCTable(rows, cols);
ULCTableColumn col0 = table.getColumnModel().getColumn(0);
col0.setHeaderRenderer(new MyDefaultTableHeaderCellRenderer(0));
col0.setHeaderValue(Boolean.FALSE);
ULCTableColumn col1 = table.getColumnModel().getColumn(1);
col1.setHeaderRenderer(new MyDefaultTableHeaderCellRenderer(1));
col1.setHeaderValue(Boolean.TRUE);
table.getTableHeader().addActionListener(new
MyTableHeaderActionListener(frame));
ULCBoxPane bp = new ULCBoxPane();
bp.add(new ULCScrollPane(table));
frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
frame.add(bp);
frame.setVisible(true);
}
public static class MyDefaultTableHeaderCellRenderer extends
ULCCheckBox
implements ITableCellRenderer {
private int columnIndex;
public MyDefaultTableHeaderCellRenderer(int index) {
super();
columnIndex = index;
}
public IRendererComponent getTableCellRendererComponent(ULCTable
table, Object value, boolean isSelected,
boolean hasFocus, int row) {
this.setText(table.getColumnName(columnIndex));
this.setBorder(ClientContext.getBorder("TableHeader.cellBorder")
);
this.setBorderPainted(true);
return this;
}
}
public static class MyTableHeaderActionListener implements
IActionListener {
private ULCFrame fFrame;
public MyTableHeaderActionListener(ULCFrame frame) {
fFrame = frame;
}
public void actionPerformed(ActionEvent event) {
ULCTableColumn column = (ULCTableColumn)event.getSource();
Object val = column.getHeaderValue();
if (((String)val).equals("false")) {
column.setHeaderValue(Boolean.TRUE);
} else {
column.setHeaderValue(Boolean.FALSE);
}
fFrame.repaint();
}
}
}
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer