Example usage for com.google.gwt.safehtml.shared SafeHtmlBuilder appendHtmlConstant

List of usage examples for com.google.gwt.safehtml.shared SafeHtmlBuilder appendHtmlConstant

Introduction

In this page you can find the example usage for com.google.gwt.safehtml.shared SafeHtmlBuilder appendHtmlConstant.

Prototype

public SafeHtmlBuilder appendHtmlConstant(String html) 

Source Link

Document

Appends a compile-time-constant string, which will not be escaped.

Usage

From source file:com.tasktop.c2c.server.tasks.client.widgets.admin.products.ProjectAdminTasksEditView.java

License:Open Source License

private void createComponentsTable() {
    componentsTable = new CellTable<Component>(10, resources);
    componentListDataProvider.addDataDisplay(componentsTable);
    componentsTable.setWidth("540px", true);
    Column<Component, String> nameColumn = addColumn(new TextBoxCell(new TextBoxCell.TemplateDelegate() {
        @Override// w  w  w  .  j  a v a  2 s . c om
        public SafeHtml getHtml(Context context, String string) {

            SafeHtml componentNameHtml = template.componentName(commonProfileMessages.name(), string);
            String fieldName = "name";

            if (ValidationUtils.hasError(context.getKey(), fieldName, errorTable)) {
                String errorMsg = ValidationUtils.getErrorMessage(context.getKey(), fieldName, errorTable);

                return template.errorWrapper(componentNameHtml, SafeHtmlUtils.fromString(errorMsg));
            } else {
                return componentNameHtml;
            }
        }
    }), new GetValue<Component, String>() {
        @Override
        public String getValue(Component object) {
            return componentsEditor.getEditors().get(componentsEditor.getList().indexOf(object)).nameEditor
                    .getValue();
        }
    });
    nameColumn.setFieldUpdater(new FieldUpdater<Component, String>() {
        @Override
        public void update(int index, Component object, String value) {
            componentsEditor.getEditors().get(index).nameEditor.setValue(value);
        }
    });
    componentsTable.addColumn(nameColumn, SafeHtmlUtils.fromSafeConstant("<h4>Name</h4>"));
    componentsTable.setColumnWidth(nameColumn, 250, Unit.PX);
    Column<Component, String> descriptionColumn = addColumn(new TextBoxCell(new TextBoxCell.TemplateDelegate() {
        @Override
        public SafeHtml getHtml(Context context, String string) {
            SafeHtml componentDescHtml = template.componentDescription(tasksMessages.description(), string);
            String fieldName = "description";

            if (ValidationUtils.hasError(context.getKey(), fieldName, errorTable)) {
                String errorMsg = ValidationUtils.getErrorMessage(context.getKey(), fieldName, errorTable);

                return template.errorWrapper(componentDescHtml, SafeHtmlUtils.fromString(errorMsg));
            } else {
                return componentDescHtml;
            }
        }
    }), new GetValue<Component, String>() {
        @Override
        public String getValue(Component object) {
            return componentsEditor.getEditors()
                    .get(componentsEditor.getList().indexOf(object)).descriptionEditor.getValue();
        }
    });
    descriptionColumn.setFieldUpdater(new FieldUpdater<Component, String>() {
        @Override
        public void update(int index, Component object, String value) {
            componentsEditor.getEditors().get(index).descriptionEditor.setValue(value);
        }
    });
    componentsTable.addColumn(descriptionColumn,
            SafeHtmlUtils.fromSafeConstant("<h4>" + tasksMessages.description() + "</h4>"));
    componentsTable.setColumnWidth(descriptionColumn, 250, Unit.PX);

    DelegateCell<String> removeComponentCell = new DelegateCell<String>(
            new DelegateCell.RenderDelegate<String>() {
                @Override
                public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
                    return SafeHtmlUtils.fromSafeConstant("<a class=\"misc-icon cancel\"><span/></a>");
                }
            }, new DelegateCell.ActionDelegate<String>() {
                @Override
                public void execute(final Cell.Context object) {
                    presenter.deleteComponent(componentsEditor.getList().get(object.getIndex()).getId(),
                            new ClientCallback<Void>() {
                                @Override
                                public void onReturn(Void aVoid) {
                                    componentsEditor.getList().remove(object.getIndex());
                                    componentsTable.setRowData(componentsEditor.getList());
                                }
                            });
                }
            });
    Column<Component, String> removeComponentColumn = new Column<Component, String>(removeComponentCell) {

        @Override
        public String getValue(Component object) {
            return null;
        }

        @Override
        public void render(Cell.Context context, Component object, SafeHtmlBuilder sb) {
            if (componentsTable.getRowCount() == 1) {
                sb.appendHtmlConstant("<a><span/></a>");
            } else {
                super.render(context, object, sb);
            }
        }
    };
    componentsTable.addColumn(removeComponentColumn);
    componentsTable.setColumnWidth(removeComponentColumn, 30, Unit.PX);

    DelegateCell<String> addComponentCell = new DelegateCell<String>(new DelegateCell.RenderDelegate<String>() {
        @Override
        public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
            return SafeHtmlUtils.fromSafeConstant("<a class=\"misc-icon add right\"><span/></a>");
        }
    }, new DelegateCell.ActionDelegate<String>() {
        @Override
        public void execute(Cell.Context object) {
            componentsEditor.getList().add(presenter.createNewTransientComponent(componentsEditor.getList()));
            componentsTable.setRowData(componentsEditor.getList());
        }
    });
    Column<Component, String> addComponentColumn = new Column<Component, String>(addComponentCell) {
        @Override
        public String getValue(Component object) {
            return null;
        }

        @Override
        public void render(Cell.Context context, Component object, SafeHtmlBuilder sb) {
            if (context.getIndex() == componentsTable.getRowCount() - 1) {
                super.render(context, object, sb);
            } else {
                sb.appendHtmlConstant("<a><span/></a>");
            }
        }
    };
    componentsTable.addColumn(addComponentColumn);
    componentsTable.setColumnWidth(addComponentColumn, 25, Unit.PX);
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.TasksSummaryListView.java

License:Open Source License

private void renderTitle(SafeHtmlBuilder sb, String text, String targetHistoryToken) {
    Hyperlink link = new Hyperlink(text, targetHistoryToken);
    sb.appendHtmlConstant("<h3 class=\"task-summary-header\">");
    sb.appendHtmlConstant(link.toString());
    sb.appendHtmlConstant("</h3>");
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.TasksSummaryListView.java

License:Open Source License

private void renderRow(SafeHtmlBuilder sb, String text, String targetHistoryToken) {
    Hyperlink link = new Hyperlink(text, targetHistoryToken);

    sb.appendHtmlConstant("<div class=\"task-summary-card\">");
    sb.appendHtmlConstant(link.toString());
    sb.appendHtmlConstant("<div class=\"clearleft\"></div></div>");
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.TasksSummaryListView.java

License:Open Source License

private void createProductHeader(Product product) {

    SafeHtmlBuilder sb = new SafeHtmlBuilder();

    sb.appendHtmlConstant("<h2 class=\"task-summary-product-header\">");
    sb.appendEscaped(tasksMessages.productWithName(product.getName()));
    sb.appendHtmlConstant("</h2>");

    taskSummaryPanel.add(new HTML(sb.toSafeHtml()));
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.TasksSummaryView.java

License:Open Source License

public void createTaskSegment(String segmentTitle, List<Task> segmentTaskList) {

    // This was originally implemented using a similar pattern to ApplicationCard - however, that way took several
    // seconds on large lists and this is basically instantaneous (even though it doesn't look as pretty).

    SafeHtmlBuilder bodyBuilder = new SafeHtmlBuilder();

    int numClosed = 0;

    for (Task curTask : segmentTaskList) {

        bodyBuilder.appendHtmlConstant("<div class=\"task-summary-card\">");

        Anchor link = new Anchor(tasksMessages.taskWithId(curTask.getId()));
        link.setHref(ProjectTaskPlace.createPlace(appId, curTask.getId()).getHref());

        if (!curTask.getStatus().isOpen()) {
            link.addStyleName("resolved");
            numClosed++;//from w w w.j  a va2s  .c  o  m
        }

        bodyBuilder.appendHtmlConstant(link.toString());
        bodyBuilder.appendHtmlConstant(" -- ");
        bodyBuilder.appendEscaped(curTask.getShortDescription());
        bodyBuilder.appendHtmlConstant("<div class=\"clearleft\"></div></div>");

    }

    SafeHtmlBuilder headerBuilder = new SafeHtmlBuilder();

    if (segmentTitle != null) {
        int total = segmentTaskList.size();
        int numOpen = total - numClosed;
        Task sampleTask = segmentTaskList.get(0);

        Anchor link = new Anchor(segmentTitle,
                ProjectTasksSummaryPlace
                        .createPlaceForComponentAndRelease(appId, (Integer) productId,
                                sampleTask.getComponent().getId(), sampleTask.getMilestone().getValue())
                        .getHref());

        // We have a title, so insert it at the beginning of the HTML.
        headerBuilder.appendHtmlConstant("<h3 class=\"task-summary-header\">");
        headerBuilder
                .appendEscaped(tasksMessages.taskSummaryHeader(link.toString(), total, numOpen, numClosed));
        headerBuilder.appendHtmlConstant("</h3>");
    }

    // Now, add in the body after the header.
    headerBuilder.append(bodyBuilder.toSafeHtml());

    taskSummaryPanel.add(new HTML(headerBuilder.toSafeHtml()));
}

From source file:com.tasktop.c2c.server.tasks.client.widgets.TaskViewImpl.java

License:Open Source License

private SafeHtml getHtmlForStrings(List<String> strings) {
    SafeHtmlBuilder shb = new SafeHtmlBuilder();

    for (int i = 0; i < strings.size(); i++) {
        // First, append this string as an escaped value to prevent XSS
        shb.appendEscaped(strings.get(i));

        // Then, if this isn't the last tag, append a <br/>
        if (i < (strings.size() - 1)) {
            shb.appendHtmlConstant("<br/>");
        }//from w  w w.j  av a 2 s  .  c o  m
    }

    // Check if we ended up with a blank string - if we did, send back a default
    if (strings.size() == 0) {
        shb.appendEscaped(commonProfileMessages.none());
    }

    return shb.toSafeHtml();
}

From source file:com.tmc.client.ui.field.LookupFieldAppearance.java

License:sencha.com license

@Override
public void render(SafeHtmlBuilder sb, String value, FieldAppearanceOptions options) {
    int width = options.getWidth();
    boolean hideTrigger = options.isHideTrigger();

    if (width == -1) {
        width = 150;// www  . j av a2 s.  c  o  m
    }

    SafeStylesBuilder inputStylesBuilder = new SafeStylesBuilder();
    inputStylesBuilder.appendTrustedString("width:100%;");

    // outer div needed for widgets like comboBox that need the full width to set for listview width
    sb.appendHtmlConstant("<div style='width:" + width + "px;'>");

    if (hideTrigger) {
        sb.appendHtmlConstant("<div class='" + style.wrap() + "'>");
        renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options);
    } else {
        FieldDetails fieldDetails = getResources().theme().field();
        int rightPadding = fieldDetails.padding().right();
        sb.appendHtmlConstant("<div class='" + style.wrap() + "' style='padding-right:"
                + (getResources().triggerArrow().getWidth() + rightPadding) + "px;'>");
        renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options);

        int fieldHeight = fieldDetails.height();
        int right = fieldDetails.borderWidth() + 1;

        StringBuilder triggerStyleSB = new StringBuilder();
        // default height to the height of the input element for both desktop and touch
        triggerStyleSB.append("height:").append(fieldHeight).append("px;");
        // default right position for both desktop and touch
        triggerStyleSB.append("right:").append(right).append("px;");
        /*
         * The height/width of the trigger is generated based off the dimensions of the image, which can negatively impact
         * user experience on touch devices. For touch devices, we're going to use the height of the input element to create
         * a large square around the trigger.
         */
        if (GXT.isTouch()) {
            // default width to height of input element to give touch users some extra width to work with
            triggerStyleSB.append("width:").append(fieldHeight).append("px;");
            // now that we've widened the trigger field, need to apply a margin so that it's positioned correctly
            int deltaWidth = fieldHeight - getResources().triggerArrow().getWidth();
            int rightMargin = -1 * (deltaWidth / 2);
            triggerStyleSB.append("margin-right:").append(rightMargin).append("px;");
        }
        SafeStyles triggerStyle = SafeStylesUtils.fromTrustedString(triggerStyleSB.toString());
        sb.appendHtmlConstant(
                "<div class='" + getStyle().trigger() + "' style='" + triggerStyle.asString() + "'></div>");
    }

    sb.appendHtmlConstant("</div></div>");
}

From source file:com.tsa.puridiom.client.msrrequest.MSRRequestUI.java

License:Apache License

private void initTableColumns(DragAndDropCellTable<ContactInfo> cellTable,
        final SelectionModel<ContactInfo> selectionModel) {
    String[] colNames = getColumns();
    int index = 0;

    TextColumn<ContactInfo> numColumn = new TextColumn<ContactInfo>() {
        @Override/*w w w  . ja v  a  2s  .c  o m*/
        public String getValue(ContactInfo object) {
            return object.getLineNumber();
        }
    };
    cellTable.addColumn(numColumn, "Line");
    cellTable.setColumnWidth(numColumn, "2%");

    for (final String columnName : colNames) {
        final int jIndex = index;

        DragAndDropColumn<ContactInfo, String> column = new DragAndDropColumn<ContactInfo, String>(
                new TextCell()) {
            @Override
            public String getValue(ContactInfo object) {
                String desc = object.getDescription();

                if (columnName.equals("Item #/Desc."))
                    return object.getItemNumber() + " - "
                            + (desc.length() > 30 ? desc.substring(0, 30) + "..." : desc);
                /*else if (columnName.equals("Supplier Id"))
                   return object.getSupplierId();*/
                else if (columnName.equals("Catalog/Proc Level"))
                    return object.getCatalog() + "<br />" + object.getProcLevel();
                /*else if (columnName.equals("Commodity/Ind Class"))
                   return object.getCommodity() + "<br />" + object.getIndClass();*/
                else if (columnName.equals("Quantity"))
                    return numberFormat.format(object.getQuantity());
                else if (columnName.equals("U/M"))
                    return object.getUorm();
                else if (columnName.equals("Unit Cost"))
                    return "$" + numberFormat.format(object.getUnitCost());
                else if (columnName.equals("Ext. Cost"))
                    return "$" + numberFormat.format(object.getExtCost());
                else if (columnName.equals("Requisition #"))
                    return object.getReqNumber();
                else if (jIndex == 7 && columnName.equals("Status"))
                    return object.getReqStatus();
                else if (columnName.equals("Kit/Inventory Location"))
                    return object.getReqLocation();
                else if (columnName.equals("PO #"))
                    return object.getPoNumber();
                else if (jIndex == 10 && columnName.equals("Status"))
                    return object.getPoStatus();
                else if (columnName.equals("Receipt #"))
                    return object.getRecieptNumber();
                else if (jIndex == 12 && columnName.equals("Status"))
                    return object.getRecieptStatus();
                else if (columnName.equals("Invoice #"))
                    return object.getInvoiceNumber();
                else if (jIndex == 14 && columnName.equals("Status"))
                    return object.getInvoiceStatus();
                else
                    return "";
            }

            @Override
            public void render(Context context, ContactInfo object, SafeHtmlBuilder sb) {
                String desc = object.getDescription();

                if (columnName.equals("Item #/Desc."))
                    sb.appendHtmlConstant(object.getItemNumber() + " - "
                            + (desc.length() > 30 ? desc.substring(0, 30) + "..." : desc));
                /*else if (columnName.equals("Supplier Id"))
                   sb.appendHtmlConstant(object.getSupplierId());*/
                else if (columnName.equals("Catalog/Proc Level"))
                    sb.appendHtmlConstant(object.getCatalog() + "<br />" + object.getProcLevel());
                /*else if (columnName.equals("Commodity/Ind Class"))
                   sb.appendHtmlConstant(object.getCommodity() + "<br />" + object.getIndClass());*/
                else if (columnName.equals("Quantity"))
                    sb.appendHtmlConstant(numberFormat.format(object.getQuantity()));
                else if (columnName.equals("U/M"))
                    sb.appendHtmlConstant(object.getUorm());
                else if (columnName.equals("Unit Cost"))
                    sb.appendHtmlConstant("$" + numberFormat.format(object.getUnitCost()));
                else if (columnName.equals("Ext. Cost"))
                    sb.appendHtmlConstant("$" + numberFormat.format(object.getExtCost()));
                else if (columnName.equals("Requisition #"))
                    sb.appendHtmlConstant(object.getReqNumber());
                else if (columnName.equals("Kit/Inventory Location")) {
                    if (object.isPopup()) {
                        sb.appendHtmlConstant(object.getReqLocation());
                    } else {
                        int lne = (int) Double.parseDouble(object.getLineNumber());
                        String line = NumberFormat.getFormat("0000").format(lne);
                        sb.appendHtmlConstant("<a href=\"javascript: showInvBinLocation('"
                                + object.getMsrNumber() + "." + line + "', '" + object.getReqLocation()
                                + "'); void(0);\">" + object.getReqLocation() + "</a>");
                    }
                } else if (jIndex == 7 && columnName.equals("Status"))
                    sb.appendHtmlConstant(object.getReqStatus());
                else if (columnName.equals("PO #"))
                    sb.appendHtmlConstant(object.getPoNumber());
                else if (jIndex == 10 && columnName.equals("Status"))
                    sb.appendHtmlConstant(object.getPoStatus());
                else if (columnName.equals("Receipt #"))
                    sb.appendHtmlConstant(object.getRecieptNumber());
                else if (jIndex == 12 && columnName.equals("Status"))
                    sb.appendHtmlConstant(object.getRecieptStatus());
                else if (columnName.equals("Invoice #"))
                    sb.appendHtmlConstant(object.getInvoiceNumber());
                else if (jIndex == 14 && columnName.equals("Status"))
                    sb.appendHtmlConstant(object.getInvoiceStatus());
            }
        };

        ListHandler<ContactInfo> columnSortHandler = new ListHandler<ContactInfo>(
                MSRRequestData.get().getDataProvider(Category.OTHERS).getList());
        columnSortHandler.setComparator(column, new Comparator<ContactInfo>() {
            public int compare(ContactInfo o1, ContactInfo o2) {
                if (o1 == o2) {
                    return 0;
                }

                // Compare the name columns.
                if (o1 != null && columnName.equals("Item #/Desc.")) {
                    return (o2 != null)
                            ? o1.getItemNumber().toLowerCase().compareTo(o2.getItemNumber().toLowerCase())
                            : 1;
                } /*else if (o1 != null && columnName.equals("Supplier Id")) {
                   return (o2 != null) ? o1.getSupplierId().toLowerCase().compareTo(o2.getSupplierId().toLowerCase()) : 1;
                  } */else if (o1 != null && columnName.equals("Catalog/Proc Level")) {
                    return (o2 != null) ? o1.getCatalog().compareTo(o2.getCatalog()) : 1;
                } /*else if (o1 != null && columnName.equals("Commodity/Ind Class")) {
                   return (o2 != null) ? o1.getIndClass().toLowerCase().compareTo(o2.getIndClass().toLowerCase()) : 1;
                  } */
                return -1;
            }
        });

        cellTable.addColumnSortHandler(columnSortHandler);

        boolean flag = getColumns().length < 8 ? true : false;
        if (columnName.equals("Item #/Desc."))
            cellTable.setColumnWidth(column, flag ? "30%" : "17%");
        /*else if (columnName.equals("Supplier Id"))
           cellTable.setColumnWidth(column, flag ? "10%" : "4%");*/
        else if (columnName.equals("Catalog/Proc Level"))
            cellTable.setColumnWidth(column, flag ? "15%" : "8%");
        /*else if (columnName.equals("Commodity/Ind Class"))
           cellTable.setColumnWidth(column, flag ? "15%" : "8%");*/
        else if (columnName.equals("Quantity"))
            cellTable.setColumnWidth(column, flag ? "10%" : "4%");
        else if (columnName.equals("U/M"))
            cellTable.setColumnWidth(column, flag ? "10%" : "4%");
        else if (columnName.equals("Unit Cost"))
            cellTable.setColumnWidth(column, flag ? "10%" : "4%");
        else if (columnName.equals("Ext. Cost"))
            cellTable.setColumnWidth(column, flag ? "10%" : "4%");
        else if (columnName.equals("Requisition #"))
            cellTable.setColumnWidth(column, "8%");
        else if (columnName.equals("PO #"))
            cellTable.setColumnWidth(column, "8%");
        else if (columnName.equals("Receipt #"))
            cellTable.setColumnWidth(column, "8%");
        else if (columnName.equals("Invoice #"))
            cellTable.setColumnWidth(column, "8%");
        else if (columnName.equals("Status"))
            cellTable.setColumnWidth(column, "4%");

        if (columnName.equals("Item #/Desc.") || columnName.equals("Supplier Id")
                || columnName.equals("Catalog/Proc Level") || columnName.equals("Commodity/Ind Class"))
            column.setSortable(true);

        cellTable.addColumn(column, columnName);

        if (columnName.equals("Item #/Desc.")) {
            column.setCellDraggableOnly();
            // cellTable.getColumnSortList().push(column);
        } else if (columnName.equals("Unit Cost") || columnName.equals("Ext. Cost"))
            column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
        else if (columnName.equals("Catalog/Proc Level") || columnName.equals("Commodity/Ind Class")
                || columnName.equals("Quantity") || columnName.equals("U/M")
                || columnName.equals("Requisition #") || columnName.equals("PO #")
                || columnName.equals("Status") || columnName.equals("Receipt #")
                || columnName.equals("Invoice #") || columnName.equals("Kit/Inventory Location")) {
            column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
        }
        initDragOperation(column);
        index++;
    }
}

From source file:com.tsa.puridiom.client.requision.PurchaseRequisionUI.java

License:Apache License

private void initTableColumns(DragAndDropCellTable<ContactInfo> cellTable,
        final SelectionModel<ContactInfo> selectionModel) {
    String[] colNames = getColumns();

    for (final String columnName : colNames) {
        DragAndDropColumn<ContactInfo, String> column = new DragAndDropColumn<ContactInfo, String>(
                new TextCell()) {
            @Override/*from w  w w  .  ja v  a  2s  .  c  om*/
            public String getValue(ContactInfo object) {
                if (columnName.equals("Type"))
                    return object.getTypes();
                else if (columnName.equals("Req. #"))
                    return object.getRequitionNumber();
                else if (columnName.equals("Date Assigned"))
                    return format.format(object.getDateAssigned());
                else if (columnName.equals("Total"))
                    return "$" + numberFormat.format(object.getTotal());
                else if (columnName.equals("Current Approver"))
                    return object.getCurrentApprover();
                else if (columnName.equals("Requisitioner"))
                    return object.getRequisitioner();
                else if (columnName.equals("Supplier Code"))
                    return object.getSupplierCode();
                else if (columnName.equals("Supplier Name"))
                    return object.getSupplierName();
                else if (columnName.equals("Suggested Buyer"))
                    return object.getSuggestedBuyer();
                else
                    return "";
            }

            @Override
            public void render(Context context, ContactInfo object, SafeHtmlBuilder sb) {
                if (columnName.equals("Type"))
                    sb.appendHtmlConstant(object.getTypes());
                else if (columnName.equals("Req. #"))
                    sb.appendHtmlConstant(object.getRequitionNumber());
                else if (columnName.equals("Date Assigned"))
                    sb.appendHtmlConstant(format.format(object.getDateAssigned()));
                else if (columnName.equals("Total"))
                    sb.appendHtmlConstant("$" + numberFormat.format(object.getTotal()));
                else if (columnName.equals("Current Approver"))
                    sb.appendHtmlConstant(object.getCurrentApprover());
                else if (columnName.equals("Requisitioner"))
                    sb.appendHtmlConstant(object.getRequisitioner());
                else if (columnName.equals("Supplier Code"))
                    sb.appendHtmlConstant(object.getSupplierCode());
                else if (columnName.equals("Supplier Name"))
                    sb.appendHtmlConstant(object.getSupplierName());
                else if (columnName.equals("Suggested Buyer"))
                    sb.appendHtmlConstant(object.getSuggestedBuyer());
            }
        };

        ListHandler<ContactInfo> columnSortHandler = new ListHandler<ContactInfo>(
                PurchaseRequisionData.get().getDataProvider(Category.OTHERS).getList());
        columnSortHandler.setComparator(column, new Comparator<ContactInfo>() {
            public int compare(ContactInfo o1, ContactInfo o2) {
                if (o1 == o2) {
                    return 0;
                }

                // Compare the name columns.
                if (o1 != null && columnName.equals("Type")) {
                    return (o2 != null) ? o1.getTypes().toLowerCase().compareTo(o2.getTypes().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Req. #")) {
                    return (o2 != null)
                            ? o1.getRequitionNumber().toLowerCase()
                                    .compareTo(o2.getRequitionNumber().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Date Assigned")) {
                    return (o2 != null) ? o1.getDateAssigned().compareTo(o2.getDateAssigned()) : 1;
                } else if (o1 != null && columnName.equals("Total")) {
                    return (o2 != null) ? o1.getTotal().compareTo(o2.getTotal()) : 1;
                } else if (o1 != null && columnName.equals("Current Approver")) {
                    return (o2 != null)
                            ? o1.getCurrentApprover().toLowerCase()
                                    .compareTo(o2.getCurrentApprover().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Requisitioner")) {
                    return (o2 != null)
                            ? o1.getRequisitioner().toLowerCase().compareTo(o2.getRequisitioner().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Supplier Code")) {
                    return (o2 != null)
                            ? o1.getSupplierCode().toLowerCase().compareTo(o2.getSupplierCode().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Supplier Name")) {
                    return (o2 != null)
                            ? o1.getSupplierName().toLowerCase().compareTo(o2.getSupplierName().toLowerCase())
                            : 1;
                } else if (o1 != null && columnName.equals("Suggested Buyer")) {
                    return (o2 != null)
                            ? o1.getSuggestedBuyer().toLowerCase()
                                    .compareTo(o2.getSuggestedBuyer().toLowerCase())
                            : 1;
                }
                return -1;
            }
        });

        cellTable.addColumnSortHandler(columnSortHandler);

        if (columnName.equals("Type"))
            cellTable.setColumnWidth(column, "18%");
        else if (columnName.equals("Req. #"))
            cellTable.setColumnWidth(column, "21%");
        else if (columnName.equals("Date Assigned"))
            cellTable.setColumnWidth(column, "15%");
        else if (columnName.equals("Total"))
            cellTable.setColumnWidth(column, "10%");
        else if (columnName.equals("Current Approver"))
            cellTable.setColumnWidth(column, "18%");
        else if (columnName.equals("Requisitioner"))
            cellTable.setColumnWidth(column, "18%");

        column.setSortable(true);
        cellTable.addColumn(column, columnName);

        if (columnName.equals("Type"))
            column.setCellDraggableOnly();
        else if (columnName.equals("Total"))
            column.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
        initDragOperation(column);
    }
}

From source file:com.webgocommerce.client.view.tree.TreeMenuModel.java

private void initComponents() {
    List<HasCell<MenuBar, ?>> hasCells = new ArrayList<HasCell<MenuBar, ?>>();
    hasCells.add(new HasCell<MenuBar, Boolean>() {

        private CheckboxCell cell = new CheckboxCell(true, true);

        @Override/*w  w w .j  a  va2s  .c o  m*/
        public Cell<Boolean> getCell() {
            return cell;
        }

        @Override
        public FieldUpdater<MenuBar, Boolean> getFieldUpdater() {
            return new FieldUpdater<MenuBar, Boolean>() {
                public void update(int index, MenuBar object, Boolean value) {
                    selectionModel.setSelected(object, value);
                    object.setOperacion("A");
                    object.setEstado(value == true ? "A" : "D");
                    if (object.getPadre() != null
                            && !object.getPadre().getVariable().equalsIgnoreCase("root")) {
                        if (value) {
                            //selectionModel.setSelected(object.getPadre(), value);
                            //object.getPadre().setOperacion("A");
                            SelectedFather(object);
                        }
                    }
                    isSelectedChild(object, value);
                }
            };
        }

        @Override
        public Boolean getValue(MenuBar object) {
            if (object.getEstado().equalsIgnoreCase("A") && object.getOperacion().equalsIgnoreCase("N")) {
                selectionModel.setSelected(object, true);
                return true;
            }
            return selectionModel.isSelected(object);
        }

        public void SelectedFather(MenuBar menuBar) {
            if (!selectionModel.isSelected(menuBar.getPadre())) {
                selectionModel.setSelected(menuBar.getPadre(), true);
                menuBar.getPadre().setOperacion("A");
                menuBar.getPadre().setEstado("A");
                if (menuBar.getPadre() != null) {
                    SelectedFather(menuBar.getPadre());
                }
            }
        }

        public void isSelectedChild(MenuBar menuBar, Boolean val) {
            Iterator<MenuBar> iterador = menuBar.getHijos().iterator();
            while (iterador.hasNext()) {
                MenuBar bean = iterador.next();
                selectionModel.setSelected(bean, val);
                bean.setOperacion("A");
                bean.setEstado(val == true ? "A" : "D");
                isSelectedChild(bean, val);
            }
        }

    });

    menuBarCell = new CompositeCell<MenuBar>(hasCells) {

        /*@Override
         public void onBrowserEvent(Cell.Context context, Element parent, MenuBar value,
         NativeEvent event, ValueUpdater<MenuBar> valueUpdater) {
         if ("keyup".equals(event.getType())
         && event.getKeyCode() == KeyCodes.KEY_ENTER) {
         selectionModel.setSelected(value, !selectionModel.isSelected(value));
         }
         }*/
        @Override
        public void render(Cell.Context context, MenuBar value, SafeHtmlBuilder sb) {
            sb.appendHtmlConstant("<table><tbody><tr>");
            super.render(context, value, sb);
            sb.appendHtmlConstant("</tr></tbody></table>");
        }

        @Override
        protected Element getContainerElement(Element parent) {
            return parent.getFirstChildElement().getFirstChildElement().getFirstChildElement();
        }

        @Override
        protected <X> void render(Cell.Context context, MenuBar value, SafeHtmlBuilder sb,
                HasCell<MenuBar, X> hasCell) {
            Cell<X> cell = hasCell.getCell();
            sb.appendHtmlConstant("<td>");
            cell.render(context, hasCell.getValue(value), sb);
            sb.appendHtmlConstant(" " + value.getOrden());
            sb.appendHtmlConstant(" " + value.getDescripcion());
            sb.appendHtmlConstant("</td>");
        }
    };

    /*hasCells.add(new HasCell<MenuBar, MenuBar>() {
            
     private MenuBarCell cell = new MenuBarCell();
            
     public Cell<MenuBar> getCell() {
     return cell;
     }
            
     public FieldUpdater<MenuBar, MenuBar> getFieldUpdater() {
     return null;
     }
            
     public MenuBar getValue(MenuBar object) {
     return object;
     }
     });*/
}