Package org.gwtoolbox.sample.widget.client.table

Source Code of org.gwtoolbox.sample.widget.client.table.DataTableSample

package org.gwtoolbox.sample.widget.client.table;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.*;
import org.gwtoolbox.commons.types.client.Gender;
import org.gwtoolbox.commons.types.client.Time;
import org.gwtoolbox.commons.util.client.StringUtils;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.ioc.core.client.annotation.Order;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.widget.client.button.SimpleButton;
import org.gwtoolbox.widget.client.data.DataTypes;
import org.gwtoolbox.widget.client.data.MapRecord;
import org.gwtoolbox.widget.client.data.Record;
import org.gwtoolbox.widget.client.grid.Column;
import org.gwtoolbox.widget.client.grid.Columns;
import org.gwtoolbox.widget.client.grid.DataGrid;
import org.gwtoolbox.widget.client.grid.selection.MultiRowSelection;
import org.gwtoolbox.widget.client.grid.selection.MultiRowSelectionModel;
import org.gwtoolbox.widget.client.grid.selection.SingleRowSelection;
import org.gwtoolbox.widget.client.grid.selection.SingleRowSelectionModel;

import static com.google.gwt.user.client.ui.HasHorizontalAlignment.ALIGN_CENTER;
import static org.gwtoolbox.widget.client.grid.Column.Feature.HIDABLE;
import static org.gwtoolbox.widget.client.grid.Column.Feature.SORTABLE;
import static org.gwtoolbox.widget.client.panel.LayoutUtils.addGap;

/**
* @author Uri Boness
*/
@Component
@Order(1)
@TableSample
public class DataTableSample extends Composite implements SamplePanel {

    public DataTableSample() {

        Columns columns = new Columns(
                new Column("firstName", "First Name", DataTypes.TEXT, 100),
                new Column("lastName", "Last Name", DataTypes.TEXT, 100),
                new Column("age", "Age", DataTypes.INT, 100),
                new Column("gender", "Gender", DataTypes.GENDER, 100, SORTABLE, HIDABLE).setAlignment(ALIGN_CENTER),
                new Column("birthTime", "Birth Time", DataTypes.TIME, 100, SORTABLE, HIDABLE),
                new Column("dutch", "Dutch", DataTypes.BOOLEAN, 50, SORTABLE, HIDABLE).setAlignment(ALIGN_CENTER)
        );
        columns.setFeatures("lastName", SORTABLE, HIDABLE);
        columns.setFeatures("age", SORTABLE, HIDABLE);
        columns.setAlignment("age", ALIGN_CENTER);

        final DataGrid grid = new DataGrid(columns);
        grid.setEditInPlace(true);
        grid.setSize("100%", "250px");
        grid.setSelectionModel(new SingleRowSelectionModel());

        Record record = new MapRecord()
                .setValue("firstName", "Uri")
                .setValue("lastName", "Boness")
                .setIntValue("age", 33)
                .setValue("gender", Gender.MALE)
                .setValue("birthTime", new Time(5))
                .setValue("dutch", false);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Daan")
                .setValue("lastName", "Boness")
                .setIntValue("age", 5)
                .setValue("gender", Gender.MALE)
                .setValue("birthTime", new Time(5))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);

        record = new MapRecord()
                .setValue("firstName", "Lian")
                .setValue("lastName", "Boness")
                .setIntValue("age", 2)
                .setValue("gender", Gender.FEMALE)
                .setValue("birthTime", new Time(10))
                .setValue("dutch", true);
        grid.addRecord(record);


        final Label messageLabel = new Label();
        DOM.setStyleAttribute(messageLabel.getElement(), "marginTop", "10px");

        SimpleButton singleModelButton = new SimpleButton("Set Single Line Selection", new ClickHandler() {
            public void onClick(ClickEvent event) {
                SingleRowSelectionModel model = new SingleRowSelectionModel();
                model.addListener(new SingleRowSelectionModel.Listener() {
                    public void selectionCleared() {
                        messageLabel.setText("Selection cleared.");
                    }

                    public void rowSelected(int row, SingleRowSelection selection) {
                        messageLabel.setText("selected row " + row);
                    }
                });
                grid.setSelectionModel(model);
            }
        });

        SimpleButton multiModelButton = new SimpleButton("Set Multi-Line Selection", new ClickHandler() {
            public void onClick(ClickEvent event) {
                MultiRowSelectionModel model = new MultiRowSelectionModel();
                model.addListener(new MultiRowSelectionModel.Listener() {
                    public void selectionCleared() {
                        messageLabel.setText("Selection cleared.");
                    }

                    public void rowSelected(int row, MultiRowSelection model) {
                        messageLabel.setText("Selected rows: " + StringUtils.collectionToDelimetedString(model.getSelectedRows(), ", "));
                    }

                    public void rowUnselected(int row, MultiRowSelection model) {
                        messageLabel.setText("Selected rows: " + StringUtils.collectionToDelimetedString(model.getSelectedRows(), ", "));
                    }
                });
                grid.setSelectionModel(model);
            }
        });

        SimpleButton clearModelButton = new SimpleButton("Clear Selection Model", new ClickHandler() {
            public void onClick(ClickEvent event) {
                grid.clearSelectionModel();
            }
        });

        SimpleButton sortByAgeButton = new SimpleButton("Sort By Age (asc)", new ClickHandler() {
            public void onClick(ClickEvent event) {
                grid.sortByColumn("age", true);
            }
        });

        SimpleButton sortByAgeDescButton = new SimpleButton("Sort By Age (desc)", new ClickHandler() {
            public void onClick(ClickEvent event) {
                grid.sortByColumn("age", false);
            }
        });

        HorizontalPanel buttons = new HorizontalPanel();
        buttons.add(singleModelButton);
        addGap(buttons, "10px");
        buttons.add(multiModelButton);
        addGap(buttons, "10px");
        buttons.add(clearModelButton);
        addGap(buttons, "10px");
        buttons.add(sortByAgeButton);
        addGap(buttons, "10px");
        buttons.add(sortByAgeDescButton);
        DOM.setStyleAttribute(buttons.getElement(), "marginTop", "10px");

        FlowPanel main = new FlowPanel();
        main.add(grid);
        main.add(messageLabel);
        main.add(buttons);
       
        SimplePanel sp = new SimplePanel();
        sp.setWidget(main);
        initWidget(sp);
    }


    public String getName() {
        return "Data Table";
    }

    public Widget getContentWidget() {
        return this;
    }

    public void reset() {
    }
}
TOP

Related Classes of org.gwtoolbox.sample.widget.client.table.DataTableSample

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.