private void update() { // Update the older/newer buttons & label. int count = MailItems.getMailItemCount(); int max = startIndex + VISIBLE_EMAIL_COUNT; if (max > count) { max = count; } // Update the nav bar. navBar.update(startIndex, count, max); // Show the selected emails. int i = 0; for (; i < VISIBLE_EMAIL_COUNT; ++i) { // Don't read past the end. if (startIndex + i >= MailItems.getMailItemCount()) { break; } MailItem item = MailItems.getMailItem(startIndex + i); // Add a new row to the table, then set each of its columns to the // email's sender and subject values. table.setText(i, 0, item.sender); table.setText(i, 1, item.email); table.setText(i, 2, item.subject); } // Clear any remaining slots. for (; i < VISIBLE_EMAIL_COUNT; ++i) { table.removeRow(table.getRowCount() - 1); } }
private void update(boolean isRadioButton, int startIndex, int selectedIndexlocal) { selectedRowId = null; flexTable.removeAllRows(); navBarTable.removeAllRows(); createTableHeader(isRadioButton); int count = totalCount; int max = startIndex + visibleRecodrCount; if (max > count) { max = count; } navBar.update(startIndex, count, max); setNavigationBar(); TableHeader header = tableData.getHeader(); HeaderColumn[] columns = header.getHeaderColumns(); String width = null; int rowCounter = 0; String radioName = String.valueOf(new Date().getTime()); final List<Record> recordList = tableData.getRecordList(); if (recordList != null) { if (!recordList.isEmpty()) { for (final Record record : recordList) { int colCounter = 0; for (; colCounter < columns.length; colCounter++) { width = columns[colCounter].getWidth() + "%"; flexTable.getCellFormatter().setWidth(rowCounter, colCounter, width); flexTable.setWidget(rowCounter, colCounter, record.getWidget(columns[colCounter])); flexTable .getCellFormatter() .setHorizontalAlignment(rowCounter, colCounter, HasHorizontalAlignment.ALIGN_LEFT); flexTable.getCellFormatter().setWordWrap(rowCounter, colCounter, true); flexTable.getCellFormatter().addStyleName(rowCounter, colCounter, "wordWrap"); } if (isRadioButton) { final RadioButton radioButton = new RadioButton(radioName); if (rowCounter == selectedIndexlocal) { radioButton.setValue(true); selectedRowId = record.getIdentifier(); selectedIndex = rowCounter; if (null != listner && fireEventForFirstRow) { listner.onRowSelected(selectedRowId); } scrollIntoView( flexTable.getWidget(selectedIndexlocal, FIRST_COLUMN_INDEX).getElement()); } radioButton.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent arg0) { clearRadioButtons(); radioButton.setValue(true); selectedRowId = record.getIdentifier(); selectedIndex = recordList.indexOf(record); } }); flexTable.setWidget(rowCounter, 0, radioButton); RadioButtonContainer radioButtonContainer = new RadioButtonContainer(radioButton, record.getIdentifier()); radioButtons.put(rowCounter, radioButtonContainer); flexTable .getCellFormatter() .setHorizontalAlignment(rowCounter, 0, HasHorizontalAlignment.ALIGN_CENTER); radioButton.addFocusHandler( new FocusHandler() { @Override public void onFocus(FocusEvent arg0) { removeSelectedRowStyleFromTable(); for (Integer rowId : radioButtons.keySet()) { if (radioButtons.get(rowId).getRadioButton().equals(radioButton)) { selectedIndex = recordList.indexOf(record); flexTable .getRowFormatter() .addStyleName(rowId, selectionStyle.rowHighlighted()); } } } }); } else { RadioButtonContainer radioButtonContainer = new RadioButtonContainer(null, record.getIdentifier()); radioButtons.put(rowCounter, radioButtonContainer); } if (rowCounter % 2 == 0) { flexTable.getRowFormatter().setStyleName(rowCounter, selectionStyle.oddRow()); } else { flexTable.getRowFormatter().setStyleName(rowCounter, selectionStyle.evenRow()); } rowCounter++; flexTable .getRowFormatter() .addStyleName(selectedIndexlocal, selectionStyle.rowHighlighted()); } } else { Label label = new Label(); label.setWidth("100%"); label.setText("No record found."); flexTable.getCellFormatter().setWidth(1, 0, "100%"); flexTable.getFlexCellFormatter().setColSpan(1, 0, 3); // Record record = new Record("1"); // tableData.getRecordList().add(record); flexTable.setWidget(1, 0, label); } } }