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
