(Object value, int row, final int column, boolean editable)
| 493 | /// |
| 494 | /// cell component instance |
| 495 | protected Component createCell(Object value, int row, final int column, boolean editable) { |
| 496 | if (row == -1) { |
| 497 | Button header = new Button((String) value, getUIID() + "Header"); |
| 498 | header.getAllStyles().setAlignment(titleAlignment); |
| 499 | header.setTextPosition(LEFT); |
| 500 | if (isSortSupported()) { |
| 501 | header.addActionListener(new ActionListener<ActionEvent>() { |
| 502 | @Override |
| 503 | public void actionPerformed(ActionEvent evt) { |
| 504 | Comparator<Object> cmp = createColumnSortComparator(column); |
| 505 | if (column == sortedColumn) { |
| 506 | ascending = !ascending; |
| 507 | } else { |
| 508 | sortedColumn = column; |
| 509 | ascending = false; |
| 510 | } |
| 511 | if (model instanceof SortableTableModel) { |
| 512 | model = ((SortableTableModel) model).getUnderlying(); |
| 513 | } |
| 514 | setModel(new SortableTableModel(sortedColumn, ascending, model, cmp)); |
| 515 | } |
| 516 | }); |
| 517 | if (sortedColumn == column) { |
| 518 | if (ascending) { |
| 519 | FontImage.setMaterialIcon(header, FontImage.MATERIAL_ARROW_DROP_UP); |
| 520 | } else { |
| 521 | FontImage.setMaterialIcon(header, FontImage.MATERIAL_ARROW_DROP_DOWN); |
| 522 | } |
| 523 | } |
| 524 | } |
| 525 | return header; |
| 526 | } |
| 527 | int constraint = TextArea.ANY; |
| 528 | Constraint validation = null; |
| 529 | if (isAbstractTableModel()) { |
| 530 | Class type = ((AbstractTableModel) model).getCellType(row, column); |
| 531 | if (type == Boolean.class) { |
| 532 | CheckBox cell = new CheckBox(); |
| 533 | cell.setSelected(Util.toBooleanValue(value)); |
| 534 | cell.setUIID(getUIID() + "Cell"); |
| 535 | cell.setEnabled(editable); |
| 536 | return cell; |
| 537 | } |
| 538 | if (editable && (type == null || type == String.class)) { |
| 539 | String[] multiChoice = ((AbstractTableModel) model).getMultipleChoiceOptions(row, column); |
| 540 | if (multiChoice != null) { |
| 541 | Picker cell = new Picker(); |
| 542 | cell.setStrings(multiChoice); |
| 543 | if (value != null) { |
| 544 | cell.setSelectedString((String) value); |
| 545 | } |
| 546 | cell.setUIID(getUIID() + "Cell"); |
| 547 | return cell; |
| 548 | } |
| 549 | } |
| 550 | if (editable && type == Date.class) { |
| 551 | Picker cell = new Picker(); |
| 552 | cell.setType(Display.PICKER_TYPE_DATE); |
no test coverage detected