private boolean findEntry() { Cursor waitCursor = shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT); shell.setCursor(waitCursor); boolean matchCase = searchDialog.getMatchCase(); boolean matchWord = searchDialog.getMatchWord(); String searchString = searchDialog.getSearchString(); int column = searchDialog.getSelectedSearchArea(); searchString = matchCase ? searchString : searchString.toLowerCase(); boolean found = false; if (searchDialog.getSearchDown()) { for (int i = table.getSelectionIndex() + 1; i < table.getItemCount(); i++) { if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)) { table.setSelection(i); break; } } } else { for (int i = table.getSelectionIndex() - 1; i > -1; i--) { if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)) { table.setSelection(i); break; } } } shell.setCursor(null); return found; }
public TableEditorWindow(final Table table, final Object value, Object... dates) { for (Object o : dates) dates2.add(o); VerticalLayout content = new VerticalLayout(); Object[] columns = table.getVisibleColumns(); String[] headers = table.getColumnHeaders(); int n = columns.length; for (int i = 0; i < n; ++i) { HorizontalLayout lay = new HorizontalLayout(); Label l = new Label(headers[i]); lay.addComponent(l); Component field = dates2.contains(columns[i]) ? new DateField() : new TextField(); lay.addComponent(field); map.put(columns[i], field); content.addComponent(lay); lay.setComponentAlignment(l, Alignment.MIDDLE_LEFT); lay.setComponentAlignment(field, Alignment.MIDDLE_RIGHT); } if (value != null) { Item item = table.getItem(value); for (Object o : columns) { Object val = item.getItemProperty(o).getValue(); if (dates2.contains(o)) { ((DateField) map.get(o)).setValue((Date) val); } else { ((TextField) map.get(o)).setValue(val.toString()); } } } save = new Button("Записать"); content.addComponent(save); save.addClickListener( new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { if (actionPerformed()) close(); } }); setContent(content); }