Example usage for com.google.gwt.view.client DefaultSelectionEventManager DefaultSelectionEventManager

List of usage examples for com.google.gwt.view.client DefaultSelectionEventManager DefaultSelectionEventManager

Introduction

In this page you can find the example usage for com.google.gwt.view.client DefaultSelectionEventManager DefaultSelectionEventManager.

Prototype

protected DefaultSelectionEventManager(EventTranslator<T> translator) 

Source Link

Document

Construct a new DefaultSelectionEventManager using the specified EventTranslator to control which SelectAction to take for each event.

Usage

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);
}