List of usage examples for com.google.gwt.view.client DefaultSelectionEventManager DefaultSelectionEventManager
protected DefaultSelectionEventManager(EventTranslator<T> translator)
From source file:org.fourthline.konto.client.ledger.view.LedgerLineTable.java
License:Open Source License
public LedgerLineTable(CellTable.Resources cellTableResources, final Style style) { super(Integer.MAX_VALUE, cellTableResources); // This steals the focus from the entry form if enabled setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.DISABLED); selectionModel = new SingleSelectionModel<LedgerLine>(); selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { public void onSelectionChange(SelectionChangeEvent event) { LedgerLine selected = selectionModel.getSelectedObject(); if (selected != null) { onSelection(selected);//w w w . j a v a 2 s .c om } } }); // TODO Hack until this is available http://code.google.com/p/google-web-toolkit/source/detail?r=9788# setSelectionModel(selectionModel, new DefaultSelectionEventManager(new BlacklistEventTranslator(2)) { }); dateColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); TextColumn<LedgerLine> descriptionColumn = new TextColumn<LedgerLine>() { @Override public String getValue(LedgerLine object) { return object.getDescription(); } }; descriptionColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); Column<LedgerLine, String> accountColumn = new ClickableTextColumn<LedgerLine>(style.accountCell()) { @Override protected boolean isStyled(LedgerLine object) { return object.getFromToAccount() != null; } @Override public String getValue(LedgerLine object) { if (!object.getDescription().toLowerCase().contains(getCurrentDescriptionFilter().toLowerCase())) { return "Split(s) match '" + getCurrentDescriptionFilter() + "'"; } else { if (object.getFromToAccount() == null) { return ((Entry) object.getLedgerEntry()).getSplits().size() + " Splits"; } else { return object.getFromToAccount().getLabel(true, true, true, false); } } } @Override protected void onClick(int index, LedgerLine object, String value) { if (object.getFromToAccount() != null) { onSelection(object.getFromToAccount()); } } }; accountColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); TextColumn<LedgerLine> debitColumn = new TextColumn<LedgerLine>() { @Override public String getValue(LedgerLine object) { return object.getDebit().getReportString(false, false, true); } }; debitColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); debitColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); TextColumn<LedgerLine> creditColumn = new TextColumn<LedgerLine>() { @Override public String getValue(LedgerLine object) { return object.getCredit().getReportString(false, false, true); } }; creditColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); creditColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); TextColumn<LedgerLine> balanceColumn = new TextColumn<LedgerLine>() { @Override public void render(Cell.Context context, LedgerLine object, SafeHtmlBuilder sb) { if (getCurrentDescriptionFilter().length() > 0) { sb.appendHtmlConstant("<span class=\"" + style.filteredBalance() + "\">"); super.render(context, object, sb); sb.appendHtmlConstant("</span>"); } else { super.render(context, object, sb); } } @Override public String getValue(LedgerLine object) { return object.getBalanceString(); } }; balanceColumn.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); balanceColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); addColumn(dateColumn, new TextHeader("Date")); addColumnStyleName(0, style.dateColumn()); addColumn(descriptionColumn, new TextHeader("Description")); addColumnStyleName(1, style.descriptionColumn()); addColumn(accountColumn, new TextHeader("From/To")); addColumnStyleName(2, style.accountColumn()); // TODO: This celltable API and behavior is evil addColumn(debitColumn, new Header<String>(new TextCell() { @Override public void render(Context context, SafeHtml value, SafeHtmlBuilder sb) { sb.appendHtmlConstant("<div align=\"right\">"); super.render(context, value, sb); sb.appendHtmlConstant("</div>"); } }) { @Override public String getValue() { return getDebitLabel(); } @Override public void render(Cell.Context context, SafeHtmlBuilder sb) { super.render(context, sb); } }); addColumnStyleName(3, style.amountColumn()); addColumnStyleName(3, style.amountColumn()); addColumn(creditColumn, new Header<String>(new TextCell() { @Override public void render(Context context, SafeHtml value, SafeHtmlBuilder sb) { sb.appendHtmlConstant("<div align=\"right\">"); super.render(context, value, sb); sb.appendHtmlConstant("</div>"); } }) { @Override public String getValue() { return getCreditLabel(); } }); addColumnStyleName(4, style.amountColumn()); addColumn(balanceColumn, new Header<String>(new TextCell() { @Override public void render(Context context, SafeHtml value, SafeHtmlBuilder sb) { sb.appendHtmlConstant("<div align=\"right\">"); super.render(context, value, sb); sb.appendHtmlConstant("</div>"); } }) { @Override public String getValue() { return "Balance"; } }); addColumnStyleName(5, style.amountColumn()); setRowStyles(new RowStyles<LedgerLine>() { @Override public String getStyleNames(LedgerLine row, int rowIndex) { return !getSelectionModel().isSelected(row) && row.isDateInFuture() ? style.rowInFuture() : null; } }); }
From source file:org.mklab.taskit.client.ui.HelpCallListViewImpl.java
License:Apache License
private void listenSelectionEvent() { // ??//ww w .ja v a2s.c o m final SingleSelectionModel<HelpCallListItem> selectionModel = new SingleSelectionModel<HelpCallListItem>(); selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @SuppressWarnings("synthetic-access") @Override public void onSelectionChange(@SuppressWarnings("unused") SelectionChangeEvent event) { final HelpCallListItem selectedCall = selectionModel.getSelectedObject(); HelpCallListViewImpl.this.presenter.helpCallSelected(selectedCall.getHelpCall()); } }); // ???????????????? CellPreviewEvent.Handler<HelpCallListViewImpl.HelpCallListItem> cellPreviewHandler = new DefaultSelectionEventManager<HelpCallListViewImpl.HelpCallListItem>( null) { @Override public void onCellPreview(CellPreviewEvent<HelpCallListItem> event) { @SuppressWarnings("unqualified-field-access") Column<?, ?> column = table.getColumn(event.getColumn()); if (column.getCell() instanceof ButtonCell) { return; } super.onCellPreview(event); } }; this.table.setSelectionModel(selectionModel, cellPreviewHandler); this.table.addCellPreviewHandler(cellPreviewHandler); }