Example usage for com.google.gwt.cell.client EditTextCell EditTextCell

List of usage examples for com.google.gwt.cell.client EditTextCell EditTextCell

Introduction

In this page you can find the example usage for com.google.gwt.cell.client EditTextCell EditTextCell.

Prototype

public EditTextCell() 

Source Link

Document

Construct a new EditTextCell that will use a SimpleSafeHtmlRenderer .

Usage

From source file:com.Administration.client.Administration.java

License:Apache License

/**
 * ? ? // w  ww  . j av  a 2s.c o m
 */
private void initTable() {

    //  ?  
    Column<LinkData, String> codeColumn = new Column<LinkData, String>(new TextCell()) { // C  ? - ? ?
        @Override
        public String getValue(LinkData object) { // ? ? ?  ?
            return object.getCode();
        }
    };

    codeColumn.setSortable(true); //  ?
    sortHandler.setComparator(codeColumn, new Comparator<LinkData>() { // ? 
        //  ,   ? 
        @Override
        public int compare(LinkData o1, LinkData o2) { // ? ??
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getCode().compareTo(o2.getCode()) : 1;
            }

            return -1;
        }
    });

    cellTable.addColumn(codeColumn, "Short Link"); //   ?   

    // ? ??
    Column<LinkData, String> originalLinkColumn = new Column<LinkData, String>(new EditTextCell()) {
        @Override
        public String getValue(LinkData object) {
            return object.getLink();
        }
    };

    originalLinkColumn.setSortable(true);
    sortHandler.setComparator(originalLinkColumn, new Comparator<LinkData>() {
        @Override
        public int compare(LinkData o1, LinkData o2) {
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getLink().compareTo(o2.getLink()) : 1;
            }

            return -1;
        }
    });

    cellTable.addColumn(originalLinkColumn, "Original Link");

    originalLinkColumn.setFieldUpdater(new FieldUpdater<LinkData, String>() { //  ? ?
        @Override
        public void update(int index, final LinkData object, final String value) { // ??   ?

            // ?  ?
            AdministrationServiceInterface.App.getInstance().setOriginalLink(object.getId(), value,
                    new AsyncCallback<Boolean>() {
                        @Override
                        public void onFailure(Throwable caught) { // ?  ? ???
                            label.setHTML("<h4>Connection error!<br>Can't update data!<h4>"); //   ?
                        }

                        @Override
                        public void onSuccess(Boolean result) { // ? ?  
                            if (!result) { // ? ?  ? ?  
                                label.setHTML("<h4>Server error!<h4>"); //  
                            } else { //  ?   ? 
                                object.setLink(value);
                                dataProvider.refresh();
                            }
                        }
                    });

        }
    });

    DateTimeFormat dateFormat = DateTimeFormat.getFormat("dd MMM yyyy"); //   

    // ? ??
    Column<LinkData, Date> createDateColumn = new Column<LinkData, Date>(new DateCell(dateFormat)) {
        @Override
        public Date getValue(LinkData object) {
            return object.getCreateDate();
        }
    };

    createDateColumn.setSortable(true);
    sortHandler.setComparator(createDateColumn, new Comparator<LinkData>() {
        @Override
        public int compare(LinkData o1, LinkData o2) {
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getCreateDate().compareTo(o2.getCreateDate()) : 1;
            }

            return -1;
        }
    });

    cellTable.addColumn(createDateColumn, "Create date");

    DatePickerCell cell = new DatePickerCell(dateFormat); // ?? ? 

    //  ?
    Column<LinkData, Date> expiredDateColumn = new Column<LinkData, Date>(cell) {
        @Override
        public Date getValue(LinkData object) {
            return object.getExpiredDate();
        }
    };

    expiredDateColumn.setSortable(true);
    sortHandler.setComparator(expiredDateColumn, new Comparator<LinkData>() {
        @Override
        public int compare(LinkData o1, LinkData o2) {
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getExpiredDate().compareTo(o2.getExpiredDate()) : 1;
            }

            return -1;
        }
    });

    cellTable.addColumn(expiredDateColumn, "Expired Date");

    expiredDateColumn.setFieldUpdater(new FieldUpdater<LinkData, Date>() {
        @Override
        public void update(int index, final LinkData object, final Date value) {
            AdministrationServiceInterface.App.getInstance().setExpiredDate(object.getId(), value,
                    new AsyncCallback<Boolean>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            label.setHTML("<h4>Connection error!<br>Can't update data!<h4>");
                        }

                        @Override
                        public void onSuccess(Boolean result) {
                            if (!result) {
                                label.setHTML("<h4>Server error!<h4>");
                            } else {
                                object.setExpiredDate(value);
                                dataProvider.refresh();
                            }
                        }
                    });
        }
    });

    // - 
    Column<LinkData, Number> currentCountColumn = new Column<LinkData, Number>(new NumberCell()) {
        @Override
        public Number getValue(LinkData object) {
            return object.getCurrentCount();
        }
    };

    currentCountColumn.setSortable(true);
    sortHandler.setComparator(currentCountColumn, new Comparator<LinkData>() {
        @Override
        public int compare(LinkData o1, LinkData o2) {
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getCurrentCount().compareTo(o2.getCurrentCount()) : 1;
            }

            return -1;
        }
    });

    currentCountColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);

    cellTable.addColumn(currentCountColumn, "Current visits");

    //  ?,  GWT   EditNumberCell. .
    //  ?  ? ?. ? ??  ?.

    // ? - 
    Column<LinkData, String> maxCountColumn = new Column<LinkData, String>(new EditTextCell()) {
        @Override
        public String getValue(LinkData object) {

            Integer t = object.getMaxCount();

            if (t == 0) {
                return "Infinity";
            } else {
                return t.toString(); //   GWT!!!
            }

        }
    };

    maxCountColumn.setSortable(true);
    sortHandler.setComparator(maxCountColumn, new Comparator<LinkData>() {
        @Override
        public int compare(LinkData o1, LinkData o2) {
            if (o1 == o2) {
                return 0;
            }

            if (o1 != null) {
                return (o2 != null) ? o1.getMaxCount().compareTo(o2.getMaxCount()) : 1;
            }

            return -1;
        }
    });

    maxCountColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);

    cellTable.addColumn(maxCountColumn, "Max Visits");

    maxCountColumn.setFieldUpdater(new FieldUpdater<LinkData, String>() {
        @Override
        public void update(int index, final LinkData object, final String value) {

            final Integer t;
            if (value.equals("Infinity")) {
                t = 0;
            } else {
                t = Integer.parseInt(value);
            }

            if (t < 0) {
                label.setHTML("Wrong maximum count!");
            }

            AdministrationServiceInterface.App.getInstance().setMaxCount(object.getId(), t,
                    new AsyncCallback<Boolean>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            label.setHTML("<h4>Connection error!<br>Can't update data!<h4>");
                        }

                        @Override
                        public void onSuccess(Boolean result) {
                            if (!result) {
                                label.setHTML("Server error!");
                            } else {
                                object.setMaxCount(t);
                                dataProvider.refresh();
                            }
                        }
                    });

        }
    });

    // 
    Column<LinkData, String> passwordColumn = new Column<LinkData, String>(new EditTextCell()) {
        @Override
        public String getValue(LinkData object) {
            if (object.getPassword().equals("")) {
                return "";
            } else { //    ? ,   ?   
                return "*********";
            }
        }
    };

    cellTable.addColumn(passwordColumn, "Password");

    passwordColumn.setFieldUpdater(new FieldUpdater<LinkData, String>() {
        @Override
        public void update(int index, final LinkData object, final String value) {

            final String pass;

            if (value.isEmpty() || value.contains(" ")) { // ? ?   ? ?? ?  ? 
                pass = null;
            } else {
                pass = value;
            }

            AdministrationServiceInterface.App.getInstance().setPassword(object.getId(), getMD5(pass),
                    new AsyncCallback<Boolean>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            label.setHTML("<h4>Connection error!<br>Can't update data!<h4>");
                        }

                        @Override
                        public void onSuccess(Boolean result) {
                            if (!result) {
                                label.setHTML("<h4>Server error!<h4>");
                            } else {
                                object.setPassword(getMD5(pass));
                                dataProvider.refresh();
                            }
                        }
                    });

        }
    });

    //  ??
    Column<LinkData, String> deleteColumn = new Column<LinkData, String>(new ButtonCell()) {
        @Override
        public String getValue(LinkData object) {
            return "Delete link"; // + object.getCode(); // + "' link";
        }
    };

    cellTable.addColumn(deleteColumn, "");

    deleteColumn.setFieldUpdater(new FieldUpdater<LinkData, String>() {
        @Override
        public void update(int index, final LinkData object, String value) {

            if (Window.confirm("Shortlink " + object.getCode() + " will be delete!")) {
                AdministrationServiceInterface.App.getInstance().deleteLink(object.getId(),
                        new AsyncCallback<Boolean>() {
                            @Override
                            public void onFailure(Throwable caught) {
                                label.setHTML("<h4>Connection error!<br>Can't delete data!<h4>");
                            }

                            @Override
                            public void onSuccess(Boolean result) {
                                if (!result) {
                                    label.setHTML("<h4>Server error!<h4>");
                                } else { // ?    ??
                                    dataProvider.getList().remove(object);
                                    dataProvider.refresh();
                                }
                            }
                        });
            }
        }
    });

}

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

License:Open Source License

protected Column<T, String> addTextEditColumn(FieldUpdater<T, String> updater,
        final Function<T, String> valueGetter, String header, int width, boolean sortable, String dataStore) {
    Column<T, String> column = new Column<T, String>(new EditTextCell()) {

        @Override//  www .  j  av a2s .co  m
        public String getValue(T object) {
            return valueGetter.apply(object);
        }
    };
    column.setFieldUpdater(updater);

    dataGrid.addColumn(column, header);
    if (width != 0) {
        dataGrid.setColumnWidth(column, width, Style.Unit.PX);
    }
    column.setSortable(sortable);
    column.setDataStoreName(dataStore);

    return column;

}

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

License:Apache License

/**
 * Initialize this example.// w  w  w .ja va2 s  .  c om
 */
@ShowcaseSource
@Override
public Widget onInitialize() {
    Images images = GWT.create(Images.class);

    // Create the table.
    editableCells = new ArrayList<AbstractEditableCell<?, ?>>();
    contactList = new DataGrid<ContactInfo>(25, ContactInfo.KEY_PROVIDER);
    contactList.setMinimumTableWidth(140, Unit.EM);
    ContactDatabase.get().addDataDisplay(contactList);

    // CheckboxCell.
    final Category[] categories = ContactDatabase.get().queryCategories();
    addColumn(new CheckboxCell(), "Checkbox", new GetValue<Boolean>() {
        @Override
        public Boolean getValue(ContactInfo contact) {
            // Checkbox indicates that the contact is a relative.
            // Index 0 = Family.
            return contact.getCategory() == categories[0];
        }
    }, new FieldUpdater<ContactInfo, Boolean>() {
        @Override
        public void update(int index, ContactInfo object, Boolean value) {
            if (value) {
                // If a relative, use the Family Category.
                pendingChanges.add(new CategoryChange(object, categories[0]));
            } else {
                // If not a relative, use the Contacts Category.
                pendingChanges.add(new CategoryChange(object, categories[categories.length - 1]));
            }
        }
    });

    // TextCell.
    addColumn(new TextCell(), "Text", new GetValue<String>() {
        @Override
        public String getValue(ContactInfo contact) {
            return contact.getFullName();
        }
    }, null);

    // EditTextCell.
    Column<ContactInfo, String> editTextColumn = addColumn(new EditTextCell(), "EditText",
            new GetValue<String>() {
                @Override
                public String getValue(ContactInfo contact) {
                    return contact.getFirstName();
                }
            }, new FieldUpdater<ContactInfo, String>() {
                @Override
                public void update(int index, ContactInfo object, String value) {
                    pendingChanges.add(new FirstNameChange(object, value));
                }
            });
    contactList.setColumnWidth(editTextColumn, 16.0, Unit.EM);

    // TextInputCell.
    Column<ContactInfo, String> textInputColumn = addColumn(new TextInputCell(), "TextInput",
            new GetValue<String>() {
                @Override
                public String getValue(ContactInfo contact) {
                    return contact.getLastName();
                }
            }, new FieldUpdater<ContactInfo, String>() {
                @Override
                public void update(int index, ContactInfo object, String value) {
                    pendingChanges.add(new LastNameChange(object, value));
                }
            });
    contactList.setColumnWidth(textInputColumn, 16.0, Unit.EM);

    // ClickableTextCell.
    addColumn(new ClickableTextCell(), "ClickableText", new GetValue<String>() {
        @Override
        public String getValue(ContactInfo contact) {
            return "Click " + contact.getFirstName();
        }
    }, new FieldUpdater<ContactInfo, String>() {
        @Override
        public void update(int index, ContactInfo object, String value) {
            Window.alert("You clicked " + object.getFullName());
        }
    });

    // ActionCell.
    addColumn(new ActionCell<ContactInfo>("Click Me", new ActionCell.Delegate<ContactInfo>() {
        @Override
        public void execute(ContactInfo contact) {
            Window.alert("You clicked " + contact.getFullName());
        }
    }), "Action", new GetValue<ContactInfo>() {
        @Override
        public ContactInfo getValue(ContactInfo contact) {
            return contact;
        }
    }, null);

    // ButtonCell.
    addColumn(new ButtonCell(), "Button", new GetValue<String>() {
        @Override
        public String getValue(ContactInfo contact) {
            return "Click " + contact.getFirstName();
        }
    }, new FieldUpdater<ContactInfo, String>() {
        @Override
        public void update(int index, ContactInfo object, String value) {
            Window.alert("You clicked " + object.getFullName());
        }
    });

    // DateCell.
    DateTimeFormat dateFormat = DateTimeFormat.getFormat(PredefinedFormat.DATE_MEDIUM);
    addColumn(new DateCell(dateFormat), "Date", new GetValue<Date>() {
        @Override
        public Date getValue(ContactInfo contact) {
            return contact.getBirthday();
        }
    }, null);

    // DatePickerCell.
    addColumn(new DatePickerCell(dateFormat), "DatePicker", new GetValue<Date>() {
        @Override
        public Date getValue(ContactInfo contact) {
            return contact.getBirthday();
        }
    }, new FieldUpdater<ContactInfo, Date>() {
        @Override
        public void update(int index, ContactInfo object, Date value) {
            pendingChanges.add(new BirthdayChange(object, value));
        }
    });

    // NumberCell.
    Column<ContactInfo, Number> numberColumn = addColumn(new NumberCell(), "Number", new GetValue<Number>() {
        @Override
        public Number getValue(ContactInfo contact) {
            return contact.getAge();
        }
    }, null);
    numberColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LOCALE_END);

    // IconCellDecorator.
    addColumn(new IconCellDecorator<String>(images.contactsGroup(), new TextCell()), "Icon",
            new GetValue<String>() {
                @Override
                public String getValue(ContactInfo contact) {
                    return contact.getCategory().getDisplayName();
                }
            }, null);

    // ImageCell.
    addColumn(new ImageCell(), "Image", new GetValue<String>() {
        @Override
        public String getValue(ContactInfo contact) {
            return "contact.jpg";
        }
    }, null);

    // SelectionCell.
    List<String> options = new ArrayList<String>();
    for (Category category : categories) {
        options.add(category.getDisplayName());
    }
    addColumn(new SelectionCell(options), "Selection", new GetValue<String>() {
        @Override
        public String getValue(ContactInfo contact) {
            return contact.getCategory().getDisplayName();
        }
    }, new FieldUpdater<ContactInfo, String>() {
        @Override
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    pendingChanges.add(new CategoryChange(object, category));
                    break;
                }
            }
        }
    });

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

    // Add handlers to redraw or refresh the table.
    redrawButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            contactList.redraw();
        }
    });
    commitButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            // Commit the changes.
            for (PendingChange<?> pendingChange : pendingChanges) {
                pendingChange.commit();
            }
            pendingChanges.clear();

            // Push the changes to the views.
            ContactDatabase.get().refreshDisplays();
        }
    });

    return widget;
}

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

License:Apache License

/**
 * Add the columns to the table.//from ww  w .j  ava 2  s  .c  om
 */
@ShowcaseSource
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        ListHandler<ContactInfo> sortHandler) {
    // Checkbox column. This table will uses a checkbox column for selection.
    // Alternatively, you can call cellTable.setSelectionEnabled(true) to enable
    // mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    cellTable.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    };
    firstNameColumn.setSortable(true);
    sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getFirstName().compareTo(o2.getFirstName());
        }
    });
    cellTable.addColumn(firstNameColumn, constants.cwCellTableColumnFirstName());
    firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setFirstName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(firstNameColumn, 20, Unit.PCT);

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(lastNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getLastName().compareTo(o2.getLastName());
        }
    });
    cellTable.addColumn(lastNameColumn, constants.cwCellTableColumnLastName());
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(lastNameColumn, 20, Unit.PCT);

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    cellTable.addColumn(categoryColumn, constants.cwCellTableColumnCategory());
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(categoryColumn, 130, Unit.PX);

    // Address.
    Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>(new TextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    };
    addressColumn.setSortable(true);
    addressColumn.setDefaultSortAscending(false);
    sortHandler.setComparator(addressColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getAddress().compareTo(o2.getAddress());
        }
    });
    cellTable.addColumn(addressColumn, constants.cwCellTableColumnAddress());
    cellTable.setColumnWidth(addressColumn, 60, Unit.PCT);
}

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

License:Apache License

/**
 * Add the columns to the table./*  w  w  w .  j a  v a2s .  com*/
 */
@ShowcaseSource
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        ListHandler<ContactInfo> sortHandler) {
    // Checkbox column. This table will uses a checkbox column for selection.
    // Alternatively, you can call dataGrid.setSelectionEnabled(true) to enable
    // mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    dataGrid.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    dataGrid.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    };
    firstNameColumn.setSortable(true);
    sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getFirstName().compareTo(o2.getFirstName());
        }
    });
    dataGrid.addColumn(firstNameColumn, constants.cwDataGridColumnFirstName());
    firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setFirstName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(firstNameColumn, 20, Unit.PCT);

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(lastNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getLastName().compareTo(o2.getLastName());
        }
    });
    dataGrid.addColumn(lastNameColumn, constants.cwDataGridColumnLastName());
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(lastNameColumn, 20, Unit.PCT);

    // Age.
    Column<ContactInfo, Number> ageColumn = new Column<ContactInfo, Number>(new NumberCell()) {
        @Override
        public Number getValue(ContactInfo object) {
            return object.getAge();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(ageColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getBirthday().compareTo(o2.getBirthday());
        }
    });
    Header<String> ageFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            List<ContactInfo> items = dataGrid.getVisibleItems();
            if (items.size() == 0) {
                return "";
            } else {
                int totalAge = 0;
                for (ContactInfo item : items) {
                    totalAge += item.getAge();
                }
                return "Avg: " + totalAge / items.size();
            }
        }
    };
    dataGrid.addColumn(ageColumn,
            new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant(constants.cwDataGridColumnAge())), ageFooter);
    dataGrid.setColumnWidth(ageColumn, 7, Unit.EM);

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    dataGrid.addColumn(categoryColumn, constants.cwDataGridColumnCategory());
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(categoryColumn, 130, Unit.PX);

    // Address.
    Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>(new TextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    };
    addressColumn.setSortable(true);
    sortHandler.setComparator(addressColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getAddress().compareTo(o2.getAddress());
        }
    });
    dataGrid.addColumn(addressColumn, constants.cwDataGridColumnAddress());
    dataGrid.setColumnWidth(addressColumn, 60, Unit.PCT);
}

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

License:Apache License

private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        CellTableSorting<ContactInfo> cellTable) {

    // This table will uses a checkbox column for selection.
    // Alternatively, you can call cellTable.setSelectionEnabled(true) to
    // enable mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, true)) {
        @Override/*from   ww  w  .  j a  va2s  .c o  m*/
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    checkColumn.setFieldUpdater(new FieldUpdater<ContactInfo, Boolean>() {
        public void update(int index, ContactInfo object, Boolean value) {
            // Called when the user clicks on a checkbox.
            selectionModel.setSelected(object, value);
        }
    });
    cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br>"));

    cellTable.addColumn("First name", new TextCell(), new GetValue<ContactInfo, String>() {
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    }, new SortHeader("First name"));

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };

    cellTable.addColumn(lastNameColumn, "Last name");
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    cellTable.addColumn(categoryColumn, "Category");
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });

    // Address.
    cellTable.addColumn("Address", new TextCell(), new GetValue<ContactInfo, String>() {
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    }, new SortHeader("Address"));

    cellTable.addColumn("Birthday", new DateCell(), new GetValue<ContactInfo, Date>() {
        public Date getValue(ContactInfo object) {
            return object.getBirthday();
        }
    }, new SortHeader("Birthday"));
}

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

License:Apache License

/**
 * Add the columns to the table.// w ww. jav a  2s .com
 */
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel) {
    // This table will uses a checkbox column for selection.
    // Alternatively, you can call cellTable.setSelectionEnabled(true) to
    // enable mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, true)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    checkColumn.setFieldUpdater(new FieldUpdater<ContactInfo, Boolean>() {
        public void update(int index, ContactInfo object, Boolean value) {
            // Called when the user clicks on a checkbox.
            selectionModel.setSelected(object, value);
        }
    });
    cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br>"));

    // First name.
    // Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo,
    // String>(
    // new EditTextCell()) {
    // @Override
    // public String getValue(ContactInfo object) {
    // return object.getFirstName();
    // }
    // };

    // TextHeader firstNameHeader = new TextHeader("First name");
    // firstNameHeader.setUpdater(new ValueUpdater<String>() {
    // @Override
    // public void update(String value) {
    // Window.alert("Update the header");
    // }
    // });
    //
    // cellTable.addColumn(firstNameColumn, firstNameHeader);
    //
    // firstNameColumn
    // .setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
    // public void update(int index, ContactInfo object,
    // String value) {
    // // Called when the user changes the value.
    // object.setFirstName(value);
    // ContactDatabase.get().refreshDisplays();
    // }
    // });

    addColumn("First name", new TextCell(), new GetValue<ContactInfo, String>() {
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    });

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    cellTable.addColumn(lastNameColumn, "Last name");
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    cellTable.addColumn(categoryColumn, "Category");
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });

    // Address.
    addColumn("Address", new TextCell(), new GetValue<ContactInfo, String>() {
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    });

    // cellTable.addColumn(new Column<ContactInfo, String>(new TextCell()) {
    // @Override
    // public String getValue(ContactInfo object) {
    // return object.getAddress();
    // }
    // }, "Address");
}

From source file:com.jitlogic.zico.widgets.demo.client.views.UserManagementPanel.java

License:Open Source License

private void createUserGrid() {
    userGrid = new DataGrid<UserInfo>(1024 * 1024, ZicoDataGridResources.INSTANCE, KEY_PROVIDER);
    selectionModel = new SingleSelectionModel<UserInfo>(KEY_PROVIDER);
    userGrid.setSelectionModel(selectionModel);

    Column<UserInfo, String> colUserId = new Column<UserInfo, String>(new TextCell()) {
        @Override/*from  w  w  w.  j a  va 2 s .c  o m*/
        public String getValue(UserInfo object) {
            return "" + object.getId();
        }
    };
    userGrid.addColumn(colUserId, new ResizableHeader<UserInfo>("#", userGrid, colUserId));
    userGrid.setColumnWidth(colUserId, 35, Style.Unit.PX);

    final EditTextCell cellUsername = new EditTextCell();
    Column<UserInfo, String> colUsername = new Column<UserInfo, String>(cellUsername) {
        @Override
        public String getValue(UserInfo user) {
            return user.getUsername();
        }
    };
    colUsername.setFieldUpdater(new FieldUpdater<UserInfo, String>() {
        public void update(int index, UserInfo user, String value) {
            markChange(user);
            user.setUsername(value);
            cellUsername.clearViewData(user.getId());
        }
    });
    userGrid.addColumn(colUsername, new ResizableHeader<UserInfo>("Username", userGrid, colUsername));
    userGrid.setColumnWidth(colUsername, 128, Style.Unit.PX);

    Map<String, Integer> roles = ZicoWidgets.map("VIEWER", 1, "ADMIN", 2);

    final SelectCell<String, Integer> cellRoles = new SelectCell<String, Integer>(roles);
    Column<UserInfo, Integer> colUserRole = new Column<UserInfo, Integer>(cellRoles) {
        @Override
        public Integer getValue(UserInfo user) {
            return user.getRole();
        }
    };
    colUserRole.setFieldUpdater(new FieldUpdater<UserInfo, Integer>() {
        public void update(int index, UserInfo user, Integer value) {
            markChange(user);
            user.setRole(value);
            cellRoles.clearViewData(user.getId());
        }
    });
    userGrid.addColumn(colUserRole, new ResizableHeader<UserInfo>("Role", userGrid, colUserRole));
    userGrid.setColumnWidth(colUserRole, 128, Style.Unit.PX);

    final EditTextCell cellFullname = new EditTextCell();
    Column<UserInfo, String> colFullname = new Column<UserInfo, String>(cellFullname) {
        @Override
        public String getValue(UserInfo user) {
            return user.getFullname();
        }
    };
    colFullname.setFieldUpdater(new FieldUpdater<UserInfo, String>() {
        public void update(int index, UserInfo user, String value) {
            markChange(user);
            user.setFullname(value);
            cellFullname.clearViewData(user.getId());
        }
    });
    userGrid.addColumn(colFullname, new ResizableHeader<UserInfo>("Full Name", userGrid, colFullname));
    userGrid.setColumnWidth(colFullname, 256, Style.Unit.PX);

    final EditTextCell cellComment = new EditTextCell();
    Column<UserInfo, String> colComment = new Column<UserInfo, String>(cellComment) {
        @Override
        public String getValue(UserInfo user) {
            return user.getComment();
        }
    };
    colComment.setFieldUpdater(new FieldUpdater<UserInfo, String>() {
        public void update(int index, UserInfo user, String value) {
            markChange(user);
            user.setComment(value);
            cellComment.clearViewData(user.getId());
        }
    });
    userGrid.addColumn(colComment, "Comment");
    userGrid.setColumnWidth(colComment, 100, Style.Unit.PC);

    userStore = new ListDataProvider<UserInfo>(KEY_PROVIDER);
    userStore.addDataDisplay(userGrid);

    userGrid.addCellPreviewHandler(new CellPreviewEvent.Handler<UserInfo>() {
        public void onCellPreview(CellPreviewEvent<UserInfo> 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);
                editUser(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();
                }
            }

        }
    });

    userGrid.addDomHandler(new DoubleClickHandler() {
        public void onDoubleClick(DoubleClickEvent event) {
            event.preventDefault();
        }
    }, DoubleClickEvent.getType());
    userGrid.addDomHandler(new ContextMenuHandler() {
        public void onContextMenu(ContextMenuEvent event) {
            event.preventDefault();
        }
    }, ContextMenuEvent.getType());

}

From source file:com.phideltcmu.recruiter.client.ui.table.RecruitTable.java

License:Creative Commons License

public RecruitTable() {
    super();// w w w. j  a va 2s.  co m
    DynamicRecruiter.GLOBAL_EVENT_BUS.addHandler(RecruitTableFetchedEvent.TYPE, this);

    // EditTextCell.
    EditTextCell editTextCell = new EditTextCell();

    Column<Person, String> phoneNumberColumn = new Column<Person, String>(editTextCell) {
        @Override
        public String getValue(Person person) {
            String phoneNumber = person.getPhoneNumber();
            return phoneNumber.length() == 0 ? "N/A" : phoneNumber;
        }
    };

    phoneNumberColumn.setFieldUpdater(new FieldUpdater<Person, String>() {
        @Override
        public void update(int i, final Person person, String s) {
            String number = s.replaceAll("\\D+", "");
            if (number.length() == 10 || number.length() == 0) {
                DynamicRecruiter.RECRUIT_SERVICE.setPhoneNumber(person.getAndrewID(), number,
                        DynamicRecruiter.authUser.getAuthToken(), new AsyncCallback<String>() {
                            @Override
                            public void onFailure(Throwable throwable) {
                                throwable.printStackTrace();
                            }

                            @Override
                            public void onSuccess(String formattedNumber) {
                                person.setPhoneNumber(formattedNumber);
                            }
                        });
            } else {
                Window.alert("That's an invalid number");
            }
        }
    });

    extraColumns.add(new ExtraColumn("Phone Number", phoneNumberColumn));
}

From source file:com.pronoiahealth.olhie.client.pages.admin.widgets.UserManagementWidget.java

License:Open Source License

/**
 * Build grid/*  w w  w .j a va  2s . c  o  m*/
 */
@PostConstruct
protected void postConstruct() {
    // Query lable
    queryLbl.setText("Last Name: ");

    // Data Provider
    dataProvider = new ListDataProvider<User>();

    // Grid configuration
    userMgmtGrid = new CellTable<User>(10, KEY_PROVIDER);
    userMgmtGrid.setWidth("100%");
    userMgmtGrid.setAutoHeaderRefreshDisabled(true);
    userMgmtGrid.setAutoFooterRefreshDisabled(true);
    userMgmtGrid.setEmptyTableWidget(new Label("Nothing to show"));
    userMgmtGrid.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
    userMgmtGrid.setWidth("100%", true);

    // Selection Model
    // final SelectionModel<User> selectionModel = new
    // SingleSelectionModel<User>(
    // KEY_PROVIDER);
    // userMgmtGrid.setSelectionModel(selectionModel,
    // DefaultSelectionEventManager.<User> createCheckboxManager());

    // Init columns
    // Id
    TextColumn<User> idColumn = new TextColumn<User>() {
        @Override
        public String getValue(User object) {
            return object.getId();
        }
    };
    idColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(idColumn, "ID");
    userMgmtGrid.setColumnWidth(idColumn, 5, Unit.PCT);

    // First Name
    TextColumn<User> firstColumn = new TextColumn<User>() {
        @Override
        public String getValue(User object) {
            return object.getFirstName();
        }
    };
    firstColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(firstColumn, "First");
    userMgmtGrid.setColumnWidth(firstColumn, 7, Unit.PCT);

    // Last Name
    TextColumn<User> lastColumn = new TextColumn<User>() {
        @Override
        public String getValue(User object) {
            return object.getLastName();
        }
    };
    lastColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(lastColumn, "Last");
    userMgmtGrid.setColumnWidth(lastColumn, 12, Unit.PCT);

    // userId
    TextColumn<User> userIdColumn = new TextColumn<User>() {
        @Override
        public String getValue(User object) {
            return object.getUserId();
        }
    };
    userIdColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(userIdColumn, "UserId");
    userMgmtGrid.setColumnWidth(userIdColumn, 10, Unit.PCT);

    // eMail
    final EditTextCell eMailEditCell = new EditTextCell();
    final Column<User, String> eMailColumn = new Column<User, String>(eMailEditCell) {

        @Override
        public String getValue(User object) {
            return object.getEmail();
        }
    };
    eMailColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(eMailColumn, "eMail");
    eMailColumn.setFieldUpdater(new FieldUpdater<User, String>() {
        @Override
        public void update(int index, User object, String value) {
            // Validate
            if (Utils.isValidEmail(value) && value != null && value.length() > 0) {
                // Set data
                object.setEmail(value);
                dataProvider.refresh();

                // Tell the database
                userEmailChangeRequestEvent.fire(new UserEmailChangeRequestEvent(value, object.getUserId()));

                // Reset style
                eMailColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
            } else {
                eMailEditCell.clearViewData(KEY_PROVIDER.getKey(object));
                clientErrorEvent.fire(new ClientErrorEvent(value + " is not a valid email address."));
                userMgmtGrid.redraw();
            }
        }
    });
    userMgmtGrid.setColumnWidth(eMailColumn, 15, Unit.PCT);

    // Organization
    final EditTextCell orgCell = new EditTextCell();
    Column<User, String> orgColumn = new Column<User, String>(orgCell) {
        @Override
        public String getValue(User object) {
            return object.getOrganization();
        }
    };
    orgColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(orgColumn, "Organization");
    orgColumn.setFieldUpdater(new FieldUpdater<User, String>() {
        @Override
        public void update(int index, User object, String value) {
            object.setOrganization(value);
            dataProvider.refresh();

            // Tell the database
            userOrganizationChangeRequestEvent
                    .fire(new UserOrganizationChangeRequestEvent(value, object.getUserId()));
        }
    });
    userMgmtGrid.setColumnWidth(orgColumn, 15, Unit.PCT);

    // Role
    List<String> roleNames = Arrays.asList(roles);
    SelectionCell roleCell = new SelectionCell(roleNames);
    Column<User, String> roleColumn = new Column<User, String>(roleCell) {
        @Override
        public String getValue(User object) {
            return object.getRole();
        }
    };
    roleColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(roleColumn, "Role");

    // role column updated
    roleColumn.setFieldUpdater(new FieldUpdater<User, String>() {
        @Override
        public void update(int index, User object, String value) {
            object.setRole(value);
            dataProvider.refresh();

            // Tell the AdminService about the change
            userChangeRoleEvent.fire(new UserChangeRoleEvent(object.getUserId(), value));

        }
    });
    userMgmtGrid.setColumnWidth(roleColumn, 18, Unit.PCT);

    // Reset password
    List<String> resetNames = Arrays.asList(reset);
    SelectionCell resetCell = new SelectionCell(resetNames);
    Column<User, String> resetColumn = new Column<User, String>(resetCell) {
        @Override
        public String getValue(User object) {
            boolean val = object.isResetPwd();
            if (val == true) {
                return "YES";
            } else {
                return "NO";
            }
        }
    };
    resetColumn.setCellStyleNames("ph-Admin-tbl-cell-text-align-left");
    userMgmtGrid.addColumn(resetColumn, "Reset PW");

    // role column updated
    resetColumn.setFieldUpdater(new FieldUpdater<User, String>() {
        @Override
        public void update(int index, User object, String value) {
            boolean retVal = false;
            if (value.equals("YES")) {
                retVal = true;
                object.setResetPwd(true);
            } else {
                object.setResetPwd(false);
            }
            dataProvider.refresh();

            // Tell the AdminService about the change
            userResetPWEvent.fire(new UserResetPWEvent(object.getUserId(), retVal));
        }
    });
    userMgmtGrid.setColumnWidth(resetColumn, 18, Unit.PCT);

    // Set the dataprovider
    dataProvider.addDataDisplay(userMgmtGrid);

    // Pager
    SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
    pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true);
    pager.setDisplay(userMgmtGrid);
    pager.setPageSize(5);
    pager.getElement().setAttribute("style", "margin: auto;");

    // Redraw the grid
    userMgmtGrid.redraw();
    userMgmtGrid.setVisible(true);

    // Add to container
    userMgmtTbl.add(userMgmtGrid);
    pagerContainer.add(pager);
}