Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011 JBoss Inc
   * 
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   * 
   * http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 
 package org.uberfire.ext.widgets.common.client.tables;
 
 import  com.github.gwtbootstrap.client.ui.Button;
 import  com.github.gwtbootstrap.client.ui.RadioButton;
 import  com.github.gwtbootstrap.client.ui.constants.IconType;
 import  com.google.gwt.core.client.GWT;
 import  com.google.gwt.event.dom.client.ClickEvent;
 import  com.google.gwt.event.dom.client.ClickHandler;
 import  com.google.gwt.event.logical.shared.CloseEvent;
 import  com.google.gwt.event.logical.shared.CloseHandler;
 import  com.google.gwt.uibinder.client.UiBinder;
 import  com.google.gwt.uibinder.client.UiField;
 import  com.google.gwt.user.client.ui.PopupPanel;
 import  com.google.gwt.user.client.ui.VerticalPanel;
 import  com.google.gwt.user.client.ui.Widget;
 import  com.google.gwt.view.client.AsyncDataProvider;
 import  com.google.gwt.view.client.ProvidesKey;
 import  org.uberfire.ext.services.shared.preferences.GridGlobalPreferences;
Widget that shows rows of paged data.
 
 public class PagedTable<T>
         extends SimpleTable<T> {
 
     interface Binder
             extends
             UiBinder<Widget, PagedTable> {
 
     }
 
     private static Binder uiBinder = GWT.create( Binder.class );
 
     private int pageSize;
     private AsyncDataProvider<T> dataProvider;
 
     @UiField
     public UberfireSimplePager pager;
 
     @UiField(provided = true)
     public Button pageSizesSelector;
 
     private boolean showPageSizesSelector = false;
     private PopupPanel popup = new PopupPanel(true);
 
     public PagedTablefinal int pageSize ) {
         super();
         setPageSizeValuepageSize );
     }
 
     public PagedTablefinal int pageSize,
                        final ProvidesKey<T> providesKey ) {
         superprovidesKey );
         setPageSizeValuepageSize );
     }
 
     public PagedTablefinal int pageSize,
                        final ProvidesKey<T> providesKey,
                        final GridGlobalPreferences gridGlobalPreferences ) {
         superprovidesKeygridGlobalPreferences );
         .setVisible( false );
         setPageSizeValuepageSize );
     }
 
     public PagedTablefinal int pageSize,
                        final ProvidesKey<T> providesKey,
                        final GridGlobalPreferences gridGlobalPreferences,
                        final boolean showPageSizesSelector ) {
 
         superprovidesKeygridGlobalPreferences );
         this. = showPageSizesSelector;
         setPageSizeValuepageSize );
     }
     
     protected Widget makeWidget() {
         return .createAndBindUithis );
     }

    
Link a data provider to the table

Parameters:
dataProvider
    public void setDataProviderfinal AsyncDataProvider<T> dataProvider ) {
        this. = dataProvider;
        this..addDataDisplay(  );
    }
    public int getPageSize() {
        return this.;
    }
    public int getPageStart() {
        return this..getPageStart();
    }
    public final void setPageSizeValueint pageSize ) {
        this. = pageSize;
        this..setPageSize( pageSize );
        this..setDisplay );
        this..setPageSizepageSize );
        this..setHeight( ( pageSize * 41 )+ 42 + "px" );
        .setVisible(this.);
    }
    public Button createPageSizesToggleButton() {
        final Button button = new Button();
        button.setToggle(true);
        button.setIcon( IconType.LIST_ALT);
         = new PopupPanel(true);
        .getElement().getStyle().setZIndex(.);
        .addAutoHidePartner(button.getElement());
        .addCloseHandler(new CloseHandler<PopupPanel>() {
            public void onClose(CloseEvent<PopupPanel> popupPanelCloseEvent) {
                if (popupPanelCloseEvent.isAutoClosed()) {
                    button.setActive(false);
                }
            }
        });
        button.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                if (!button.isActive()) {
                    showSelectPageSizePopupbutton.getAbsoluteLeft() + button.getOffsetWidth(),
                            button.getAbsoluteTop() + button.getOffsetHeight());
                } else {
                    .hide(false);
                }
            }
        });
        return button;
    }
    private void showSelectPageSizePopup(final int left,
                                         final int top) {
        VerticalPanel popupContent = new VerticalPanel();
        RadioButton rb;
        for (int i=5;i<20;i=i+5) {
            rb = new RadioButton("pageSizes", String.valueOfi ));
            rb.setText( String.valueOfi ) + " " + ..Items() );
            if(i==rb.setValue( true );
            final int selectedPageSize =i;
            rb.addClickHandler( new ClickHandler() {
                @Override
                public void onClick( ClickEvent event ) {
                    setPageSizeValueselectedPageSize );
                    .hide();
                    .setActive( false );
                }
            } );
            popupContent.add(rb);
        }
        .setWidget(popupContent);
        .show();
        int finalLeft = left - .getOffsetWidth();
        .setPopupPosition(finalLefttop);
    }
New to GrepCode? Check out our FAQ X