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.DataGrid;
 import  com.github.gwtbootstrap.client.ui.Label;
 import  org.jboss.errai.common.client.api.Caller;
 import  org.jboss.errai.common.client.api.RemoteCallback;
 import  org.jboss.errai.security.shared.api.identity.User;
 import  org.uberfire.ext.services.shared.preferences.*;
 
 import  javax.inject.Inject;
 import java.util.List;

A composite Widget that shows rows of data (not-paged) and a "column picker" to allow columns to be hidden from view. Columns can also be sorted.
 
 public class SimpleTable<T>
         extends Composite
         implements HasData<T> {
 
     interface Binder
             extends
             UiBinder<WidgetSimpleTable> {
 
     }
 
     private static Binder uiBinder = GWT.createBinder.class );
 
     @UiField(provided = true)
     public Button columnPickerButton;
 
     @UiField(provided = true)
     public DataGrid<T> dataGrid;
 
     @UiField
 
     @UiField
     public HorizontalPanel rightToolbar;
 
     @UiField
     public FlowPanel rightActionsToolbar;
 
 
     @UiField
     public FlowPanel leftToolbar;
 
     @UiField
     public FlowPanel centerToolbar;
 
     private String emptyTableCaption;
 
     private ColumnPicker<T> columnPicker;
 
     private GridPreferencesStore gridPreferencesStore;
 
     @Inject
     private Caller<UserPreferencesService> preferencesService;
 
     @Inject
     private User identity;
 
     private ProvidesKey<T> providersKey;
 
     public SimpleTable() {
          = new DataGrid<T>();
         setupGridTable();
     }
 
    public SimpleTablefinal ProvidesKey<T> providesKey,
                        final GridGlobalPreferences gridGlobalPreferences ) {
         = new DataGrid<T>( .,
                                    providesKey );
        this. = new GridPreferencesStore( gridGlobalPreferences );
        setupGridTable();
    }
    public SimpleTablefinal ProvidesKey<T> providesKey ) {
         = new DataGrid<T>( .,
                                    providesKey );
        setupGridTable();
    }
    private void setupGridTable() {
        .setStriped( true );
        .setBordered( true );
        .setSkipRowHoverCheck( false );
        .setSkipRowHoverStyleUpdate( false );
        .setWidth( "100%" );
        .setHeight( "300px" );
        .addStyleName( ..CSS().dataGrid() );
        setEmptyTableWidget();
         = new ColumnPicker<T>( ,
                                             );
            @Override
            public void beforeColumnChanged() {
            }
            @Override
            public void afterColumnChanged() {
                if (  != null &&  != null ) {
                    List<GridColumnPreference> columnsState = .getColumnsState();
                    .resetGridColumnPreferences();
                    for ( GridColumnPreference gcp : columnsState ) {
                        .addGridColumnPreference( gcp );
                    }
                    saveGridPreferences();
                }
            }
        } );
        initWidgetmakeWidget() );
    }
    protected Widget makeWidget() {
        return .createAndBindUithis );
    }
    public void setEmptyTableCaptionfinal String emptyTableCaption ) {
        this. = emptyTableCaption;
        setEmptyTableWidget();
    }
    private void setEmptyTableWidget() {
        String caption = "-----";
        if ( !(  == null || .trim().isEmpty() ) ) {
            caption = ;
        }
        .setEmptyTableWidget( new Labelcaption ) );
    }
    public void redraw() {
        .redraw();
    }
    public void refresh() {
        .setVisibleRangeAndClearData( .getVisibleRange(),
                                              true );
    }
    @Override
    public HandlerRegistration addCellPreviewHandlerfinal Handler<T> handler ) {
        return .addCellPreviewHandler( handler );
    }
    @Override
    public HandlerRegistration addRangeChangeHandlerfinal RangeChangeEvent.Handler handler ) {
        return .addRangeChangeHandler( handler );
    }
    @Override
        return .addRowCountChangeHandler( handler );
    }
    public int getColumnIndexfinal Column<T, ?> column ) {
        return .getColumnIndex( column );
    }

    
Link a column sort handler to the table

Parameters:
handler
    public HandlerRegistration addColumnSortHandlerfinal ColumnSortEvent.Handler handler ) {
        return this..addColumnSortHandler( handler );
    }
    @Override
    public int getRowCount() {
        return .getRowCount();
    }
    @Override
    public Range getVisibleRange() {
        return .getVisibleRange();
    }
    @Override
    public boolean isRowCountExact() {
        return .isRowCountExact();
    }
    @Override
    public void setRowCountfinal int count ) {
        .setRowCount( count );
    }
    @Override
    public void setRowCountfinal int count,
                             final boolean isExact ) {
        .setRowCount( count,
                              isExact );
    }
    @Override
    public void setVisibleRangefinal int start,
                                 final int length ) {
        .setVisibleRange( start,
                                  length );
    }
    @Override
    public void setVisibleRangefinal Range range ) {
        .setVisibleRange( range );
    }
    public void setPreferencesServicefinal Caller<UserPreferencesService> preferencesService ) {
        this. = preferencesService;
    }
    @Override
    public SelectionModel<? super T> getSelectionModel() {
        return .getSelectionModel();
    }
    @Override
    public T getVisibleItemfinal int indexOnPage ) {
        return .getVisibleItem( indexOnPage );
    }
    @Override
    public int getVisibleItemCount() {
        return .getVisibleItemCount();
    }
    @Override
    public Iterable<T> getVisibleItems() {
        return .getVisibleItems();
    }
    @Override
    public void setRowDatafinal int start,
                            final List<? extends T> values ) {
        .setRowData( start,
                             values );
    }
    public void setRowDatafinal List<? extends T> values ) {
        .setRowData( values );
    }
    @Override
    public void setSelectionModelfinal SelectionModel<? super T> selectionModel ) {
        .setSelectionModel( selectionModel );
    }
    public void setSelectionModelfinal SelectionModel<? super T> selectionModel,
                                   final CellPreviewEvent.Handler<T> selectionEventManager ) {
        .setSelectionModel( selectionModel,
                                    selectionEventManager );
    }
    @Override
    public void setVisibleRangeAndClearDatafinal Range range,
                                             final boolean forceRangeChangeEvent ) {
        .setVisibleRangeAndClearData( range,
                                              forceRangeChangeEvent );
    }
    public void addColumnsfinal List<ColumnMeta<T>> columnMetas ) {
        for ( ColumnMeta columnMeta : columnMetas ) {
            if ( columnMeta.getHeader() == null ) {
                columnMeta.setHeadergetColumnHeadercolumnMeta.getCaption(),
                                                       columnMeta.getColumn() ) );
            }
        }
        .addColumnscolumnMetas );
    }
    public void addColumnfinal Column<T, ?> column,
                           final String caption ) {
        addColumncolumn,
                   caption,
                   true );
    }
    public void addColumnfinal Column<T, ?> column,
                           final String caption,
                           final boolean visible ) {
        ColumnMeta<T> columnMeta = new ColumnMeta<T>( column,
                                                      caption,
                                                      visible );
        addColumncolumnMeta );
    }
    protected void addColumnfinal ColumnMeta<T> columnMeta ) {
        if ( columnMeta.getHeader() == null ) {
            columnMeta.setHeadergetColumnHeadercolumnMeta.getCaption(),
                                                   columnMeta.getColumn() ) );
        }
        .addColumncolumnMeta );
    }
    protected ResizableMovableHeader<T> getColumnHeaderfinal String caption,
                                                         final Column column ) {
        final ResizableMovableHeader header = new ResizableMovableHeader<T>( caption,
                                                                             ,
                                                                             ,
                                                                             column ) {
            @Override
            protected int getTableBodyHeight() {
                return .getOffsetHeight();
            }
        };
        header.addColumnChangedHandlernew ColumnChangedHandler() {
            @Override
            public void afterColumnChanged() {
                if (  != null &&  != null ) {
                    List<GridColumnPreference> columnsState = .getColumnsState();
                    .resetGridColumnPreferences();
                    for ( GridColumnPreference gcp : columnsState ) {
                        .addGridColumnPreference( gcp );
                    }
                    saveGridPreferences();
                }
            }
            @Override
            public void beforeColumnChanged() {
            }
        } );
        return header;
    }
    public void setColumnWidthfinal Column<T, ?> column,
                                final double width,
                                final Style.Unit unit ) {
        .setColumnWidth( column,
                                 width,
                                 unit );
    }
    @Override
    public void setHeightfinal String height ) {
        .setHeight( height );
    }
    @Override
    public void setPixelSizefinal int width,
                              final int height ) {
        .setPixelSize( width,
                               height );
    }
    @Override
    public void setSizefinal String width,
                         final String height ) {
        .setSize( width,
                          height );
    }
    @Override
    public void setWidthfinal String width ) {
        .setWidth( width );
    }
    public void setToolBarVisiblefinal boolean visible ) {
        .setVisiblevisible );
    }
    public ColumnSortList getColumnSortList() {
        return .getColumnSortList();
    }
    public HasWidgets getToolbar() {
        return ;
    }
    public HasWidgets getRightToolbar() {
        return ;
    }
        return ;
    }
    public HasWidgets getLeftToolbar() {
        return ;
    }
    public HasWidgets getCenterToolbar() {
        return ;
    }
    public void setRowStylesfinal RowStyles<T> styles ) {
        .setRowStyles( styles );
    }
    public void setGridPreferencesStorefinal GridPreferencesStore gridPreferences ) {
        // I need to update my local copy of the preferences 
        //   if I would like to compare with the current state for changes
        this. = gridPreferences;
        .setGridPreferencesStoregridPreferences );
    }
    public GridPreferencesStore getGridPreferencesStore() {
        return this.;
    }
    public void saveGridPreferences() {
        if (  != null &&  != null ) {
            .setPreferenceKey( .getGlobalPreferences().getKey() );
            .setType( UserPreferencesType.GRIDPREFERENCES );
            .call( new RemoteCallback<Void>() {
                @Override
                public void callbackVoid response ) {
                }
            } ).saveUserPreferences(  );
        }
    }
    public void addTableTitle(String tableTitle){
        getLeftToolbar().addnew HTML"<h4>" + tableTitle + "</h4>" ) );
    }
    public void setcolumnPickerButtonVisibefinal boolean show ) {
        .setVisibleshow );
    }
New to GrepCode? Check out our FAQ X