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

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

Introduction

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

Prototype

public SingleSelectionModel(ProvidesKey<T> keyProvider) 

Source Link

Document

Constructs a SingleSelectionModel with the given key provider.

Usage

From source file:com.cristal.storm.prototype.client.mvp.view.MainPageView.java

License:Apache License

@Inject
public MainPageView() {
    MCECell.Images images = GWT.create(MCECell.Images.class);

    MCECell textCell = new MCECell(images.icon());

    ProvidesKey<MCE> keyProvider = new ProvidesKey<MCE>() {
        public Object getKey(MCE item) {
            // Always do a null check.
            return (item == null) ? null : item.getURI();
        }/*ww  w . j  a  va 2  s.com*/
    };

    mceCollectionDraggable = new DragAndDropCellList<MCE>(textCell, DEFAULT_RESOURCES, keyProvider);

    mceSelectionModel = new SingleSelectionModel<MCE>(keyProvider);
    mceCollectionDraggable.setSelectionModel(mceSelectionModel);

    // mceCollectionDraggable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);

    widget = uiBinder.createAndBindUi(this);

    HorizontalPanel horzPanel = new HorizontalPanel();

    // Push the data into the widget.

    // TODO Remove this hardcoded definition of tags
    Set<String> mcetags1 = new TreeSet<String>();
    mcetags1.add("search");
    mcetags1.add("mail");
    mcetags1.add("travel");

    // TODO Remove this hardcoded definition of MCE
    MCE mce = new MCE("kayak.com", mcetags1);
    // MCE mce3 = new MCE("kayak.com", mcetags2);
    mceListVisible = new Vector<MCE>();
    mceListVisible.add(mce);
    mceCollectionDraggable.setRowData(0, mceListVisible);
    mceSelectionModel.setSelected(mce, true);

    // The cell of this CellList are only draggable
    mceCollectionDraggable.setCellDraggableOnly();

    // setup the drag operation
    DraggableOptions options = new DraggableOptions();
    // use a clone of the original cell as drag helper
    options.setHelper(HelperType.CLONE);
    // set the opacity of the drag helper
    options.setOpacity((float) 0.9);
    // append the drag helper to the body element
    options.setAppendTo("body");
    // configure the drag operations of the cell list with this options
    mceCollectionDraggable.setDraggableOptions(options);

    /**
     * Create a droppable CellList
     */
    final FlowPanel aGwtPanel = new FlowPanel();
    aGwtPanel.add(new Label("test"));
    DroppableWidget<FlowPanel> droppablePanel = new DroppableWidget<FlowPanel>(aGwtPanel);
    // configure the drop behaviour (see next paragraph)
    droppablePanel.setTolerance(DroppableTolerance.POINTER);

    droppablePanel.getOriginalWidget();

    droppablePanel.addDropHandler(new DropEventHandler() {

        public void onDrop(DropEvent event) {
            // retrieve the droppable widget
            DroppableWidget<FlowPanel> droppableLabel = (DroppableWidget<FlowPanel>) event.getDroppableWidget();

            // retrieve the dropped draggable widget (we assume it is a
            // draggable label)
            DraggableWidget<Label> draggableLabel = (DraggableWidget<Label>) event.getDraggableWidget();

            Label toto = (Label) (droppableLabel.getOriginalWidget().getWidget(0));
            Label toto2 = (Label) (droppableLabel.getOriginalWidget().getWidget(0));
            aGwtPanel.add(toto2);
            // toto.setText("Let's eat!!!!");

            // remove the draggabeLable
            // draggableLabel.removeFromParent();
            // aGwtPanel.add( new
            // Label(event.getDraggableWidget().toString()));
            // event.getDraggableWidget().removeFromParent();

            aGwtPanel.add(new Label("just dragged item1"));
            aGwtPanel.add(new Label("just dragged item2"));
        }
    });

    horzPanel.add(droppablePanel);

    centerAbsPanel.add(horzPanel);

}

From source file:com.databasepreservation.visualization.client.common.lists.AsyncTableCell.java

public AsyncTableCell(Filter filter, boolean justActive, Facets facets, String summary, boolean selectable,
        boolean exportable, int initialPageSize, int pageSizeIncrement, O object) {
    super();//from ww w .j a v a  2s. c om

    this.initialPageSize = initialPageSize;
    this.pageSizeIncrement = pageSizeIncrement;
    this.object = object;

    if (summary == null) {
        summary = "summary" + Random.nextInt(1000);
    }

    this.filter = filter;
    this.justActive = justActive;
    this.facets = facets;
    this.selectable = selectable;

    display = new AccessibleCellTable<T>(getInitialPageSize(),
            (MyCellTableResources) GWT.create(MyCellTableResources.class), getKeyProvider(), summary);
    display.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
    display.setLoadingIndicator(new HTML(SafeHtmlUtils.fromSafeConstant(
            "<div class='spinner'><div class='double-bounce1'></div><div class='double-bounce2'></div></div>")));

    configure(display);

    this.dataProvider = new MyAsyncDataProvider<T>(display, new IndexResultDataProvider<T>() {

        @Override
        public void getData(Sublist sublist, ColumnSortList columnSortList,
                AsyncCallback<IndexResult<T>> callback) {
            AsyncTableCell.this.getData(sublist, columnSortList, callback);
        }
    }) {

        @Override
        protected void fireChangeEvent(IndexResult<T> result) {
            ValueChangeEvent.fire(AsyncTableCell.this, result);
        }
    };

    dataProvider.addDataDisplay(display);

    if (exportable) {
        // mimic PageSizePager
        exportButtons = new FlexTable();
        exportButtons.setCellPadding(0);
        exportButtons.setCellSpacing(0);

        exportVisibleButton = new Anchor("Export visible");
        exportVisibleButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                AsyncTableCell.this.exportVisibleClickHandler();
            }
        });

        exportAllButton = new Anchor("Export all");
        exportAllButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                AsyncTableCell.this.exportAllClickHandler();
            }
        });

        exportButtons.setWidget(0, 0, exportVisibleButton);
        exportButtons.setText(0, 1, " | ");
        exportButtons.setWidget(0, 2, exportAllButton);
    }

    resultsPager = new AccessibleSimplePager(AccessibleSimplePager.TextLocation.LEFT,
            (SimplePager.Resources) GWT.create(SimplePager.Resources.class), false, initialPageSize, false,
            false, (SimplePager.ImageButtonsConstants) GWT.create(SimplePager.ImageButtonsConstants.class));
    resultsPager.setDisplay(display);

    pageSizePager = new PageSizePager(getPageSizePagerIncrement());
    pageSizePager.setDisplay(display);

    createSelectAllPanel();

    displayScroll = new ScrollPanel(display);
    displayScrollWrapper = new SimplePanel(displayScroll);

    add(selectAllPanel);
    add(displayScrollWrapper);
    add(resultsPager);
    if (exportButtons != null) {
        add(exportButtons);
    }
    add(pageSizePager);

    selectionModel = new SingleSelectionModel<>(getKeyProvider());

    Handler<T> selectionEventManager = getSelectionEventManager();
    if (selectionEventManager != null) {
        display.setSelectionModel(selectionModel, selectionEventManager);
    } else {
        display.setSelectionModel(selectionModel);
    }

    columnSortHandler = new AsyncHandler(display);
    display.addColumnSortHandler(columnSortHandler);

    display.addLoadingStateChangeHandler(new LoadingStateChangeEvent.Handler() {
        @Override
        public void onLoadingStateChanged(LoadingStateChangeEvent event) {
            if (LoadingStateChangeEvent.LoadingState.LOADED.equals(event.getLoadingState())) {
                handleScrollChanges();
            }
        }
    });

    addStyleName("my-asyncdatagrid");
    resultsPager.addStyleName("my-asyncdatagrid-pager-results");
    pageSizePager.addStyleName("my-asyncdatagrid-pager-pagesize");
    displayScrollWrapper.addStyleName("my-asyncdatagrid-display-scroll-wrapper");
    display.addStyleName("my-asyncdatagrid-display");
    if (exportButtons != null) {
        exportButtons.addStyleName("my-asyncdatagrid-pager-pagesize");
        // exportVisibleButton.addStyleName("btn btn-export btn-export-visible");
        // exportAllButton.addStyleName("btn btn-export btn-export-all");
    }

    displayScroll.addScrollHandler(new ScrollHandler() {
        @Override
        public void onScroll(ScrollEvent event) {
            handleScrollChanges();
        }
    });

    addValueChangeHandler(new ValueChangeHandler<IndexResult<T>>() {
        @Override
        public void onValueChange(ValueChangeEvent<IndexResult<T>> event) {
            selected = new HashSet<T>();
            hideSelectAllPanel();
        }
    });

    Label emptyInfo = new Label(messages.noItemsToDisplay());
    display.setEmptyTableWidget(emptyInfo);
}

From source file:com.eucalyptus.webui.client.view.ConfigViewImpl.java

License:Open Source License

public void initializeTable(int pageSize, ArrayList<SearchResultFieldDesc> fieldDescs) {
    tablePanel.clear();// w w w .j a va2  s  .  c om
    selectionModel = new SingleSelectionModel<SearchResultRow>(SearchResultRow.KEY_PROVIDER);
    selectionModel.addSelectionChangeHandler(new Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            SearchResultRow row = selectionModel.getSelectedObject();
            LOG.log(Level.INFO, "Selection changed: " + row);
            presenter.onSelectionChange(row);
        }
    });
    table = new SearchResultTable(pageSize, fieldDescs, this.presenter, selectionModel);
    tablePanel.add(table);
    table.load();
}

From source file:com.gafactory.core.client.ui.grids.BaseListGrid.java

License:Open Source License

protected CellTable<T> createDataGrid() {
    if (resources != null) {
        dataGrid = new CellTable<T>(pageSize(), resources, this, null);
    } else {/*  w  w  w  .  j  a  v a  2 s  .c  om*/
        dataGrid = new CellTable<T>(this);
    }
    dataGrid.setAutoHeaderRefreshDisabled(true);
    dataGrid.setAutoFooterRefreshDisabled(true);

    dataGrid.setStriped(false);
    dataGrid.setBordered(true);
    dataGrid.setCondensed(true);

    dataGrid.setEmptyTableWidget(createEmptyWidget());
    dataGrid.setLoadingIndicator(createLoadingWidget());

    //     if (pageSize() != PAGE_SIZE_UNLIMIT) {
    pager = new BasePager();
    pager.addStyleName(Styles.PULL_LEFT);
    pager.setDisplay(dataGrid);

    itemsPerPage = new ValueListBox<Integer>(new AbstractRenderer<Integer>() {
        @Override
        public String render(Integer object) {
            if (object != null) {
                if (!Objects.equals(object, PSIZE_ALL)) {
                    return String.valueOf(object.toString());
                } else {
                    return "?";
                }
            }
            return "null";
        }
    });

    itemsPerPage.setValue(defaultPageSize);
    itemsPerPage.setAcceptableValues(
            Lists.newArrayList(PSIZE_15, PSIZE_25, PSIZE_50, PSIZE_100, PSIZE_200, PSIZE_ALL));
    itemsPerPage.addValueChangeHandler(new ValueChangeHandler<Integer>() {
        @Override
        public void onValueChange(ValueChangeEvent<Integer> event) {
            Integer value = event.getValue();
            if (value != null) {
                dataGrid.setVisibleRange(new Range(0, value));
            }
            storageService.putValue(PAGE_SIZE, value, getViewName());

        }
    });

    selectionModel = new SingleSelectionModel<T>(this);

    dataGrid.setSelectionModel(selectionModel);
    dataGrid.addColumnSortHandler(this);
    dataProvider.addDataDisplay(dataGrid);
    loader.addLoadHandler(dataProvider);

    return dataGrid;
}

From source file:com.google.appinventor.client.wizards.TemplateUploadWizard.java

License:Open Source License

/**
 * Creates the scrollable list of cells each of which serves as a link to a template.
 *
 * @param list an ArrayList of TemplateInfo
 * @return A CellList widget/*from ww  w.  j  a v  a 2s  .c  o m*/
 */
public CellList<TemplateInfo> makeTemplateSelector(ArrayList<TemplateInfo> list) {
    TemplateCell templateCell = new TemplateCell(list.get(0), templateHostUrl);

    CellList<TemplateInfo> templateCellList = new CellList<TemplateInfo>(templateCell,
            TemplateInfo.KEY_PROVIDER);
    templateCellList.setPageSize(list.size() + 10);
    templateCellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
    templateCellList.setWidth("250px");
    templateCellList.setHeight("400px");
    templateCellList.setVisible(true);

    // Add a selection model to handle user selection.
    final SingleSelectionModel<TemplateInfo> selectionModel = new SingleSelectionModel<TemplateInfo>(
            TemplateInfo.KEY_PROVIDER);
    templateCellList.setSelectionModel(selectionModel);
    selectionModel.setSelected(list.get(0), true);
    final TemplateUploadWizard wizard = this;
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            TemplateInfo selected = selectionModel.getSelectedObject();
            if (selected != null) {
                selectedTemplateNAME = selected.name;
                TemplateWidget.setTemplate(selected, wizard.getTemplateUrlHost());
            }
        }
    });

    // Set the total row count. This isn't strictly necessary, but it affects
    // paging calculations, so its good habit to keep the row count up to date.
    templateCellList.setRowCount(list.size(), true);

    // Push the data into the widget.
    templateCellList.setRowData(0, list);
    return templateCellList;
}

From source file:com.google.gwt.examples.view.KeyProviderExample.java

License:Apache License

public void onModuleLoad() {
    /*//from   w  w w.  j av  a  2  s.c  o  m
     * Define a key provider for a Contact. We use the unique ID as the key,
     * which allows to maintain selection even if the name changes.
     */
    ProvidesKey<Contact> keyProvider = new ProvidesKey<Contact>() {
        public Object getKey(Contact item) {
            // Always do a null check.
            return (item == null) ? null : item.id;
        }
    };

    // Create a CellList using the keyProvider.
    CellList<Contact> cellList = new CellList<Contact>(new ContactCell(), keyProvider);

    // Push data into the CellList.
    cellList.setRowCount(CONTACTS.size(), true);
    cellList.setRowData(0, CONTACTS);

    // Add a selection model using the same keyProvider.
    SelectionModel<Contact> selectionModel = new SingleSelectionModel<Contact>(keyProvider);
    cellList.setSelectionModel(selectionModel);

    /*
     * Select a contact. The selectionModel will select based on the ID because
     * we used a keyProvider.
     */
    Contact sarah = CONTACTS.get(3);
    selectionModel.setSelected(sarah, true);

    // Modify the name of the contact.
    sarah.name = "Sara";

    /*
     * Redraw the CellList. Sarah/Sara will still be selected because we
     * identify her by ID. If we did not use a keyProvider, Sara would not be
     * selected.
     */
    cellList.redraw();

    // Add the widgets to the root panel.
    RootPanel.get().add(cellList);
}

From source file:com.google.gwt.sample.expenses.client.place.AbstractProxyListActivity.java

License:Apache License

public AbstractProxyListActivity(PlaceController placeController, ProxyListView<P> view, Class<P> proxyType) {
    this.view = view;
    this.placeController = placeController;
    this.proxyClass = proxyType;
    view.setDelegate(this);

    final HasData<P> hasData = view.asHasData();
    rangeChangeHandler = hasData.addRangeChangeHandler(new RangeChangeEvent.Handler() {
        public void onRangeChange(RangeChangeEvent event) {
            AbstractProxyListActivity.this.onRangeChanged(hasData);
        }/*from   w  w w .ja  va 2s  .  c om*/
    });

    // Inherit the view's key provider
    ProvidesKey<P> keyProvider = ((AbstractHasData<P>) hasData).getKeyProvider();
    selectionModel = new SingleSelectionModel<P>(keyProvider);
    hasData.setSelectionModel(selectionModel);

    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            P selectedObject = selectionModel.getSelectedObject();
            if (selectedObject != null) {
                showDetails(selectedObject);
            }
        }
    });
}

From source file:com.google.gwt.sample.showcase.client.content.cell.CwCellList.java

License:Apache License

/**
 * Initialize this example.//from w ww .  j a  v a2s.c  om
 */
@ShowcaseSource
@Override
public Widget onInitialize() {
    Images images = GWT.create(Images.class);

    // Create a CellList.
    ContactCell contactCell = new ContactCell(images.contact());

    // Set a key provider that provides a unique key for each contact. If key is
    // used to identify contacts when fields (such as the name and address)
    // change.
    cellList = new CellList<ContactInfo>(contactCell, ContactDatabase.ContactInfo.KEY_PROVIDER);
    cellList.setPageSize(30);
    cellList.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE);
    cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION);

    // Add a selection model so we can select cells.
    final SingleSelectionModel<ContactInfo> selectionModel = new SingleSelectionModel<ContactInfo>(
            ContactDatabase.ContactInfo.KEY_PROVIDER);
    cellList.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            contactForm.setContact(selectionModel.getSelectedObject());
        }
    });

    // Create the UiBinder.
    Binder uiBinder = GWT.create(Binder.class);
    Widget widget = uiBinder.createAndBindUi(this);

    // Add the CellList to the data provider in the database.
    ContactDatabase.get().addDataDisplay(cellList);

    // Set the cellList as the display of the pagers. This example has two
    // pagers. pagerPanel is a scrollable pager that extends the range when the
    // user scrolls to the bottom. rangeLabelPager is a pager that displays the
    // current range, but does not have any controls to change the range.
    pagerPanel.setDisplay(cellList);
    rangeLabelPager.setDisplay(cellList);

    // Handle events from the generate button.
    generateButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            ContactDatabase.get().generateContacts(50);
        }
    });

    return widget;
}

From source file:com.gwt2go.dev.client.ui.CellTableViewImpl.java

License:Apache License

public CellTableViewImpl(/* String firstName */) {
    // Create a CellTable.

    // Set a key provider that provides a unique key for each contact. If
    // key is//from   w w  w .java  2  s .  c  o m
    // used to identify contacts when fields (such as the name and address)
    // change.
    cellTable = new CellTable<ContactDatabase.ContactInfo>(ContactDatabase.ContactInfo.KEY_PROVIDER);

    // Create a Pager to control the table.
    SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
    pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true);
    pager.setDisplay(cellTable);

    // Add a selection model so we can select cells.
    final SingleSelectionModel<ContactInfo> selectionModel = new SingleSelectionModel<ContactInfo>(
            ContactInfo.KEY_PROVIDER);
    cellTable.setSelectionModel(selectionModel);

    // Initialize the columns.
    initTableColumns(selectionModel);

    // Add the CellList to the adapter in the database.
    ContactDatabase.get().addDataDisplay(cellTable);

    initWidget(uiBinder.createAndBindUi(this));

    String firstname = "John";
    String lastname = "Familyguy";
    Date age = new Date(); // get's the current date/time

    DemoUser myuser = new DemoUser(firstname, lastname, age);

    CalendarUtil.addDaysToDate(age, 2);

    mytextbox.setText(myuser.getAge().toString());

    CalendarUtil.addDaysToDate(myuser.getAge(), 5);

    mytextbox.setText(myuser.getAge().toString());

    button.setText("Click me to go to the new sortable table example");
    button2.setText("CustomPlaces");
    dialogBox.setText("Open DialogBox");

}

From source file:com.jitlogic.zico.client.views.admin.TraceTemplatePanel.java

License:Open Source License

private void createTemplateListGrid() {
    templateGrid = new DataGrid<TraceTemplateInfo>(1024 * 1024, ZicoDataGridResources.INSTANCE, KEY_PROVIDER);
    selectionModel = new SingleSelectionModel<TraceTemplateInfo>(KEY_PROVIDER);
    templateGrid.setSelectionModel(selectionModel);

    Column<TraceTemplateInfo, TraceTemplateInfo> colOrder = new IdentityColumn<TraceTemplateInfo>(ORDER_CELL);
    templateGrid.addColumn(colOrder, new ResizableHeader<TraceTemplateInfo>("Order", templateGrid, colOrder));
    templateGrid.setColumnWidth(colOrder, 80, Style.Unit.PX);

    Column<TraceTemplateInfo, TraceTemplateInfo> colCondition = new IdentityColumn<TraceTemplateInfo>(
            CONDITION_CELL);//  w w  w  .j a  v  a2s .  c om
    templateGrid.addColumn(colCondition,
            new ResizableHeader<TraceTemplateInfo>("Condition", templateGrid, colCondition));
    templateGrid.setColumnWidth(colCondition, 250, Style.Unit.PX);

    Column<TraceTemplateInfo, TraceTemplateInfo> colTemplate = new IdentityColumn<TraceTemplateInfo>(
            TEMPLATE_CELL);
    templateGrid.addColumn(colTemplate, "Description Template");
    templateGrid.setColumnWidth(colTemplate, 100, Style.Unit.PCT);

    templateStore = new ListDataProvider<TraceTemplateInfo>(KEY_PROVIDER);
    templateStore.addDataDisplay(templateGrid);

    templateGrid.addCellPreviewHandler(new CellPreviewEvent.Handler<TraceTemplateInfo>() {
        @Override
        public void onCellPreview(CellPreviewEvent<TraceTemplateInfo> event) {
            NativeEvent nev = event.getNativeEvent();
            String eventType = nev.getType();
            if ((BrowserEvents.KEYDOWN.equals(eventType) && nev.getKeyCode() == KeyCodes.KEY_ENTER)
                    || BrowserEvents.DBLCLICK.equals(nev.getType())) {
                selectionModel.setSelected(event.getValue(), true);
                editTemplate(null);
            }
            if (BrowserEvents.CONTEXTMENU.equals(eventType)) {
                selectionModel.setSelected(event.getValue(), true);
                if (event.getValue() != null) {
                    contextMenu.setPopupPosition(event.getNativeEvent().getClientX(),
                            event.getNativeEvent().getClientY());
                    contextMenu.show();
                }
            }

        }
    });

    templateGrid.addDomHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            event.preventDefault();
        }
    }, DoubleClickEvent.getType());

    templateGrid.addDomHandler(new ContextMenuHandler() {
        @Override
        public void onContextMenu(ContextMenuEvent event) {
            event.preventDefault();
        }
    }, ContextMenuEvent.getType());
}