Example usage for com.google.gwt.safehtml.shared SafeHtmlUtils fromString

List of usage examples for com.google.gwt.safehtml.shared SafeHtmlUtils fromString

Introduction

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

Prototype

public static SafeHtml fromString(String s) 

Source Link

Document

Returns a SafeHtml containing the escaped string.

Usage

From source file:com.sencha.gxt.widget.core.client.tree.Tree.java

License:sencha.com license

protected SafeHtml getCellContent(M model) {
    C value = getValue(model);//from   w  w  w . j ava 2  s  .  c  o  m
    SafeHtmlBuilder sb = new SafeHtmlBuilder();
    if (cell == null) {
        String text = null;
        if (value != null) {
            text = value.toString();
        }
        sb.append(Util.isEmptyString(text) ? Util.NBSP_SAFE_HTML : SafeHtmlUtils.fromString(text));
    } else {
        Context context = new Context(store.indexOf(model), 0, store.getKeyProvider().getKey(model));
        cell.render(context, value, sb);
    }
    return sb.toSafeHtml();
}

From source file:com.tasktop.c2c.server.common.web.client.widgets.hyperlink.HyperlinkingLabel.java

License:Open Source License

private void updateContent() {
    content.clear();/*from w  ww.  j a v a2  s.  c om*/
    hyperlinks = null;
    if (text != null && text.length() > 0) {
        if (!hyperlinkDetectors.isEmpty()) {
            for (HyperlinkDetector detector : hyperlinkDetectors) {
                List<Hyperlink> detectetdHyperlinks = detector.detectHyperlinks(text);
                if (detectetdHyperlinks != null && !detectetdHyperlinks.isEmpty()) {
                    if (hyperlinks == null) {
                        hyperlinks = detectetdHyperlinks;
                    } else {
                        hyperlinks.addAll(detectetdHyperlinks);
                    }
                }
            }
        }
        if (hyperlinks == null || hyperlinks.isEmpty()) {
            addTextWithNewlines(text);
        } else {
            Collections.sort(hyperlinks, new HyperlinkComparator());
            int offset = 0;
            for (final Hyperlink hyperlink : hyperlinks) {
                if (hyperlink.getLength() > 0) {
                    if (hyperlink.getOffset() > offset) {
                        String leadingText = text.substring(offset, hyperlink.getOffset());
                        addTextWithNewlines(leadingText);
                    }
                    int newOffset = hyperlink.getOffset() + hyperlink.getLength();
                    String hyperlinkText = text.substring(hyperlink.getOffset(), newOffset);
                    Anchor anchor = new Anchor(SafeHtmlUtils.fromString(hyperlinkText));
                    content.add(anchor);
                    anchor.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                            if (listener != null) {
                                listener.hyperlinkClicked(event, hyperlink);
                            } else {
                                hyperlink.open();
                            }
                        }
                    });
                    offset = newOffset;
                }
            }
            if (offset < text.length()) {
                String remainingText = text.substring(offset, text.length());
                addTextWithNewlines(remainingText);
            }
        }
    }
}

From source file:com.tasktop.c2c.server.common.web.client.widgets.hyperlink.HyperlinkingLabel.java

License:Open Source License

private void addTextWithNewlines(String text) {
    String[] lines = text.split("\n");
    for (int i = 0; i < lines.length; i++) {
        if (i > 0) {
            content.add(new InlineHTML("<br>"));
        }/*from   w w w.  ja  v  a 2s  .c om*/
        content.add(new InlineHTML(SafeHtmlUtils.fromString(lines[i])));
    }
    // Handle case where we don't generate a split.
    if (text.endsWith("\n")) {
        content.add(new InlineHTML("<br>"));
    }
}

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

License:Open Source License

private void createReleasesTable() {
    milestoneTable = new CellTable<Milestone>(10, resources);
    milestoneTable.setWidth("320px", true);
    DelegateCell<String> moveReleaseUpCell = new DelegateCell<String>(
            new DelegateCell.RenderDelegate<String>() {
                @Override/* ww w . ja  v  a  2s. c  o m*/
                public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
                    return SafeHtmlUtils
                            .fromSafeConstant("<span class=\"order-control\"><a class=\"up\"/></span>");
                }
            }, new DelegateCell.ActionDelegate<String>() {
                @Override
                public void execute(Cell.Context object) {
                    int index = object.getIndex();
                    if (index > 0) {
                        milestonesEditor.getList().get(index).setSortkey((short) (index - 1));
                        milestonesEditor.getList().get(index - 1).setSortkey((short) index);
                        Collections.sort(milestonesEditor.getList());
                        milestoneTable.setRowData(milestonesEditor.getList());
                    }
                }
            });
    Column<Milestone, String> moveReleaseUpColumn = new Column<Milestone, String>(moveReleaseUpCell) {

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

        @Override
        public void render(Cell.Context context, Milestone object, SafeHtmlBuilder sb) {
            if (context.getIndex() != 0) {
                super.render(context, object, sb);
            }
        }
    };
    milestoneTable.addColumn(moveReleaseUpColumn);
    milestoneTable.setColumnWidth(moveReleaseUpColumn, 22, Unit.PX);

    DelegateCell<String> moveReleaseDownCell = new DelegateCell<String>(
            new DelegateCell.RenderDelegate<String>() {
                @Override
                public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
                    return SafeHtmlUtils
                            .fromSafeConstant("<span class=\"order-control\"><a class=\"down\"/></span>");
                }
            }, new DelegateCell.ActionDelegate<String>() {
                @Override
                public void execute(Cell.Context object) {
                    Short index = (short) object.getIndex();
                    if (index < milestonesEditor.getList().size() - 1) {
                        milestonesEditor.getList().get(index).setSortkey((short) (index + 1));
                        milestonesEditor.getList().get(index + 1).setSortkey(index);
                        Collections.sort(milestonesEditor.getList());
                        milestoneTable.setRowData(milestonesEditor.getList());
                    }
                }
            });
    Column<Milestone, String> moveReleaseDownColumn = new Column<Milestone, String>(moveReleaseDownCell) {

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

        @Override
        public void render(Cell.Context context, Milestone object, SafeHtmlBuilder sb) {
            if (context.getIndex() != milestonesEditor.getList().size() - 1) {
                super.render(context, object, sb);
            }
        }
    };
    milestoneTable.addColumn(moveReleaseDownColumn);
    milestoneTable.setColumnWidth(moveReleaseDownColumn, 22, Unit.PX);

    DelegateCell<String> moveReleaseToTopCell = new DelegateCell<String>(
            new DelegateCell.RenderDelegate<String>() {
                @Override
                public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
                    return SafeHtmlUtils
                            .fromSafeConstant("<span class=\"order-control\"><a class=\"top\"/></span>");
                }
            }, new DelegateCell.ActionDelegate<String>() {
                @Override
                public void execute(Cell.Context object) {
                    int index = object.getIndex();
                    Milestone topRelease = milestonesEditor.getList().get(index);
                    milestonesEditor.getList().remove(topRelease);
                    milestonesEditor.getList().add(0, topRelease);
                    int i = 0;
                    for (Milestone milestone : milestonesEditor.getList()) {
                        milestone.setSortkey((short) i);
                        i++;
                    }
                    Collections.sort(milestonesEditor.getList());
                    milestoneTable.setRowData(milestonesEditor.getList());
                }
            });
    Column<Milestone, String> moveReleaseToTopColumn = new Column<Milestone, String>(moveReleaseToTopCell) {

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

        @Override
        public void render(Cell.Context context, Milestone object, SafeHtmlBuilder sb) {
            if (context.getIndex() != 0) {
                super.render(context, object, sb);
            }
        }
    };
    milestoneTable.addColumn(moveReleaseToTopColumn);
    milestoneTable.setColumnWidth(moveReleaseToTopColumn, 22, Unit.PX);

    Column<Milestone, String> releaseVersionColumn = addColumn(
            new TextBoxCell(new TextBoxCell.TemplateDelegate() {
                @Override
                public SafeHtml getHtml(Context context, String string) {
                    SafeHtml releaseVerHtml = template.releaseVersion(tasksMessages.releaseVersion(), string);
                    String fieldName = "value";

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

                        return template.errorWrapper(releaseVerHtml, SafeHtmlUtils.fromString(errorMsg));
                    } else {
                        return releaseVerHtml;
                    }
                }
            }), new GetValue<Milestone, String>() {
                @Override
                public String getValue(Milestone object) {
                    return milestonesEditor.getEditors()
                            .get(milestonesEditor.getList().indexOf(object)).valueEditor.getValue();
                }
            });
    releaseVersionColumn.setFieldUpdater(new FieldUpdater<Milestone, String>() {
        @Override
        public void update(int index, Milestone object, String value) {
            Milestone currentDefaultMilestone = productDefaultRelease.getValue();
            for (Milestone milestone : presenter.getProduct().getMilestones()) {
                if (milestone.getId().equals(object.getId())) {
                    milestone.setValue(value);
                    break;
                }
            }
            for (Milestone milestone : presenter.getProduct().getMilestones()) {
                if (milestone.getId().equals(currentDefaultMilestone.getId())) {
                    productDefaultRelease.asEditor().getValue().setValue(value);
                    break;
                }
            }

            milestonesEditor.getEditors().get(index).valueEditor.setValue(value);
            productDefaultRelease.setAcceptableValues(presenter.getProduct().getMilestones());
        }
    });
    milestoneTable.addColumn(releaseVersionColumn);
    milestoneTable.setColumnWidth(releaseVersionColumn, 250, Unit.PX);

    DelegateCell<String> removeReleaseCell = new DelegateCell<String>(
            new DelegateCell.RenderDelegate<String>() {
                @Override
                public SafeHtml render(Cell.Context context, String value, SafeHtmlBuilder sb) {
                    final Milestone referenced = milestonesEditor.getList().get(context.getIndex());
                    if (referenced != null && "---".equals(referenced.getValue())) {
                        return SafeHtmlUtils.fromSafeConstant("<a class=\"delete-disabled\"><span/></a>");
                    }
                    return SafeHtmlUtils.fromSafeConstant("<a class=\"misc-icon cancel\"><span/></a>");
                }
            }, new DelegateCell.ActionDelegate<String>() {
                @Override
                public void execute(final Cell.Context object) {
                    final Milestone toRemove = milestonesEditor.getList().get(object.getIndex());
                    if (toRemove == null) {
                        return;
                    }
                    if ("---".equals(toRemove.getValue())) {
                        return;
                    }
                    presenter.deleteMilestone(toRemove.getId(), new ClientCallback<Void>() {
                        @Override
                        public void onReturn(Void aVoid) {
                            for (Milestone milestone : presenter.getProduct().getMilestones()) {
                                if (milestone.getId().equals(toRemove.getId())) {
                                    presenter.getProduct().getMilestones().remove(milestone);
                                    break;
                                }
                            }
                            productDefaultRelease.setAcceptableValues(presenter.getProduct().getMilestones());
                            milestonesEditor.getList().remove(toRemove);
                            milestoneTable.setRowData(milestonesEditor.getList());
                        }
                    });
                }
            });
    Column<Milestone, String> removeReleaseColumn = new Column<Milestone, String>(removeReleaseCell) {

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

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

    DelegateCell<String> addReleaseCell = 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) {
            Milestone newMilestone = presenter.createNewTransientMilestone(milestonesEditor.getList());
            milestonesEditor.getList().add(newMilestone);
            milestoneTable.setRowData(milestonesEditor.getList());
            presenter.getProduct().getMilestones().add(ProjectAdminTasksUtil.duplicateMilestone(newMilestone));
            productDefaultRelease.setAcceptableValues(presenter.getProduct().getMilestones());
        }
    });
    Column<Milestone, String> addReleaseColumn = new Column<Milestone, String>(addReleaseCell) {
        @Override
        public String getValue(Milestone object) {
            return null;
        }

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

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 av a 2  s .  c o m*/
        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.TaskViewImpl.java

License:Open Source License

private void initEditFields() {

    inlineEditFields.add(new InlineEditableField<String>(readOnlyTaskType, editTaskTypeAnchor, taskType) {

        @Override/*from w w  w. j a va  2s  .  c  o m*/
        public void flushTask() {
            presenter.saveTaskType(taskType.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString((t.getTaskType()));
        }

        protected SafeHtml editTriggerHtml(SafeHtml html) {
            return html; // No place to layout with the icon
        }

    });

    inlineEditFields.add(new InlineEditableField<Priority>(readOnlyPriority, editPriorityAnchor, priority) {

        @Override
        public void flushTask() {
            presenter.savePriority(priority.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString((t.getPriority().getValue()));
        }

    });

    inlineEditFields.add(new InlineEditableField<TaskSeverity>(readOnlySeverity, editSeverityAnchor, severity) {

        @Override
        public void flushTask() {
            presenter.saveSeverity(severity.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getSeverity().getValue());
        }

    });

    inlineEditFields.add(new InlineEditableField<Task>(readOnlyStatus, editStatusAnchor, statusEditor) {

        @Override
        public void flushTask() {
            presenter.saveStatus(statusEditor.getSelectedStatus(), statusEditor.getSelectedResolution(),
                    statusEditor.getDuplicateId());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            statusPanel.clear();
            if (task.getStatus() != null) {
                if (task.getResolution() != null) {
                    StringBuffer buf = new StringBuffer();

                    buf.append(task.getResolution().toString());

                    if (task.getResolution().isDuplicate() && task.getDuplicateOf() != null) {
                        buf.append(" ").append(tasksMessages.ofLc()).append(" ");
                        Label label = new Label(buf.toString());
                        statusPanel.add(label);

                        statusPanel.add(createTaskAnchor(task.getDuplicateOf()));
                    } else {
                        Label label = new Label(buf.toString());
                        statusPanel.add(label);
                    }
                }
            }

            return SafeHtmlUtils.fromString(t.getStatus().getValue());
        }

        @Override
        public void startEdit() {
            super.startEdit();
            statusPanel.clear();
        }

    });

    final InlineEditableField<String> descriptionEditableField = new InlineEditableField<String>(null, null,
            description, null) {

        @Override
        public void flushTask() {
            presenter.saveDescription(description.getValue());
            task.setWikiRenderedDescription(null);

        }

        @Override
        public void setTask(Task t) {
            readOnlyDescription.setWikiHTML(task.getWikiRenderedDescription());
            if (task.getWikiRenderedDescription() != null) {
                description.setRenderedValue(task.getWikiRenderedDescription());
            }
        }

        public void renderTask(Task t) {
            boolean anon = AuthenticationHelper.isAnonymous();
            readOnlyDescription.setVisible(anon);
            description.setVisible(!anon);
            setTask(t);
        }

        @Override
        public void startEdit() {
            super.startEdit();
            description.setEditMode();
        }

    };
    inlineEditFields.add(descriptionEditableField);
    description.getTextArea().setWidth("98%"); // FIXME
    description.addToggleListener(new ValueChangeHandler<Boolean>() {

        @Override
        public void onValueChange(ValueChangeEvent<Boolean> event) {
            if (event.getValue() && !editingFields.contains(descriptionEditableField)) {
                startInlineEdit(descriptionEditableField);
            } else {
                cancelInlineEdit(descriptionEditableField);
            }
        }
    });

    inlineEditFields.add(new InlineEditableField<String>(readOnlySummary, editSummaryAnchor, shortDescription) {

        @Override
        public void flushTask() {
            presenter.saveShortDescription(shortDescription.getText());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            boolean empty = task.getShortDescription() == null || task.getShortDescription().isEmpty();
            return SafeHtmlUtils.fromString(empty ? NOT_SET : task.getShortDescription());
        }

        protected SafeHtml editTriggerHtml(SafeHtml html) {
            return html; // No place to layout with the icon
        }
    });

    inlineEditFields
            .add(new InlineEditableField<BigDecimal>(readOnlyEstimate, editEstimateAnchor, estimatedTime) {

                @Override
                public void flushTask() {
                    presenter.saveEstimate(estimatedTime.getValue());
                }

                @Override
                protected SafeHtml getHtml(Task t) {

                    return formatThisAndSubtaskTime(t.getEstimatedTime(), t.getSumOfSubtasksEstimatedTime());
                }

            });

    inlineEditFields.add(new InlineEditableField<TaskUserProfile>(readOnlyOwner, editOwnerAnchor, assignee) {

        @Override
        public void flushTask() {
            presenter.saveOwner(assignee.getValue());
        }

        @Override
        protected void deferedStartEdit() {
            assignee.getWrappedChooser().getSuggestBox().showSuggestionList();
            assignee.getWrappedChooser().getSuggestBox().getElement().focus();
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getAssignee() == null ? NOT_SET : t.getAssignee().getRealname());
        }

        @Override
        protected Element getEditableElement() {
            return assignee.asWidget().getElement();
        }

    });

    inlineEditFields
            .add(new InlineEditableField<BigDecimal>(readOnlyTimeSpent, editTimeSpentAnchor, timeSpent) {

                @Override
                public void flushTask() {
                    if (timeSpent.getValue() == null || timeSpent.getValue().signum() == 0) {
                        // otherwise we get into a bad state
                        return;
                    }
                    WorkLog workLog = new WorkLog();
                    workLog.setHoursWorked(timeSpent.getValue());
                    presenter.saveWorkLog(workLog);
                }

                @Override
                protected SafeHtml getHtml(Task t) {
                    BigDecimal sum = null;

                    List<WorkLog> workLogs = t.getWorkLogs();
                    if (workLogs != null && !workLogs.isEmpty()) {
                        sum = BigDecimal.ZERO;
                        for (WorkLog workLog : workLogs) {
                            sum = sum.add(workLog.getHoursWorked());
                        }
                    }
                    return formatThisAndSubtaskTime(sum, t.getSumOfSubtasksTimeSpent());
                }
            });

    inlineEditFields.add(new InlineEditableField<List<TaskUserProfile>>(readOnlyCC, editCCAnchor, watchers) {

        @Override
        protected void flushTask() {
            presenter.saveCC(watchers.getValue());
        }

        @Override
        protected void deferedStartEdit() {
            watchers.getWrappedChooser().getSuggestBox().showSuggestionList();
            watchers.getWrappedChooser().getSuggestBox().getElement().focus();
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            Collections.sort(t.getWatchers());
            return getHtmlForPeople(t.getWatchers());
        }

        @Override
        protected Element getEditableElement() {
            return watchers.asWidget().getElement();
        }

        @Override
        public List<TaskUserProfile> getEditableFieldValue() {
            List<TaskUserProfile> userList = watchers.getValue();
            Collections.sort(userList);
            return userList;
        }

    });

    inlineEditFields.add(new InlineEditableField<List<Keyword>>(readOnlyTags, editTagsAnchor, keywords) {
        @Override
        protected void flushTask() {
            presenter.saveTags(keywords.getValues());
        }

        @Override
        protected void deferedStartEdit() {
            keywords.getSuggestBox().showSuggestionList();
            keywords.getSuggestBox().getElement().focus();
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return getHtmlForKeywords(t.getKeywords());

        }
    });

    inlineEditFields.add(new InlineEditableField<Iteration>(readOnlyIteration, editIterationAnchor, iteration) {

        @Override
        protected void flushTask() {
            presenter.saveIteration(iteration.getValue());

        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getIteration().getValue());

        }
    });

    inlineEditFields.add(new InlineEditableField<Date>(readOnlyDueDate, editDueDateAnchor, deadline) {

        @Override
        protected void flushTask() {
            presenter.saveDueDate(deadline.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils
                    .fromString(t.getDeadline() == null ? NOT_SET : Format.stringValueDate(t.getDeadline()));

        }
    });

    inlineEditFields.add(new InlineEditableField<List<Task>>(null, editSubtasksAnchor, subTasks) {

        @Override
        protected void flushTask() {
            presenter.saveSubTasks(subTasks.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            subTasksPanel.clear();
            List<Task> subTaskList = task.getSubTasks();
            if (subTaskList.size() > 0) {
                for (int i = 0; i < subTaskList.size(); i++) {
                    subTasksPanel.add(createTaskAnchor(subTaskList.get(i)));
                    if (i < (subTaskList.size() - 1)) {
                        subTasksPanel.add(new Label(commonProfileMessages.comma() + " "));
                    }
                }
                subTasksPanel.add(editSubtasksAnchor);
                return null;
            } else {
                subTasksPanel.add(editSubtasksAnchor);
                return SafeHtmlUtils.fromTrustedString(commonProfileMessages.none());
            }

        }

    });

    inlineEditFields.add(new InlineEditableField<List<Task>>(null, editParentAnchor, blocksTasks) {

        @Override
        protected void flushTask() {
            presenter.saveBlocks(blocksTasks.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            parentTasksPanel.clear();
            if (task.getBlocksTasks() != null && !task.getBlocksTasks().isEmpty()) {
                for (int i = 0; i < task.getBlocksTasks().size(); i++) {
                    parentTasksPanel.add(createTaskAnchor(task.getBlocksTasks().get(i)));
                    if (i < (t.getBlocksTasks().size() - 1)) {
                        parentTasksPanel.add(new Label(commonProfileMessages.comma() + " "));
                    }
                }
                parentTasksPanel.add(editParentAnchor);
                return null;
            } else {
                parentTasksPanel.add(editParentAnchor);
                return SafeHtmlUtils.fromTrustedString(commonProfileMessages.none());
            }

        }

    });

    initProductComopnentReleaseFoundIn();

}

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

License:Open Source License

private void initProductComopnentReleaseFoundIn() {
    inlineEditFields.add(new InlineEditableField<Product>(readOnlyProduct, editProductAnchor, product) {

        @Override/*w  ww .j av a2s .c om*/
        protected void flushTask() {
            presenter.saveProduct(product.getValue());

        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getProduct().getName());

        }
    });

    inlineEditFields.add(new InlineEditableField<Component>(readOnlyComponent, editComponentAnchor, component) {

        @Override
        protected void flushTask() {
            presenter.saveComponent(component.getValue());
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getComponent().getName());

        }
    });
    inlineEditFields.add(new InlineEditableField<String>(readOnlyFoundIn, editFoundInAnchor, foundInRelease) {

        @Override
        protected void flushTask() {
            presenter.saveFoundInRelease(foundInRelease.getValue());
        }

        @Override
        protected void deferedStartEdit() {
            foundInRelease.getSuggestBox().showSuggestionList();
            foundInRelease.getSuggestBox().getElement().focus();
        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getFoundInRelease() == null ? NOT_SET : t.getFoundInRelease());

        }
    });
    inlineEditFields.add(new InlineEditableField<Milestone>(readOnlyRelease, editReleaseAnchor, milestone) {

        @Override
        protected void flushTask() {
            presenter.saveRelease(milestone.getValue());

        }

        @Override
        protected SafeHtml getHtml(Task t) {
            return SafeHtmlUtils.fromString(t.getMilestone().getValue());

        }
    });

}

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

License:Open Source License

private void updateCustomFields(Task task) {
    customFieldsPanel.clear();/*w ww. j  a va2s  . c  om*/

    List<CustomField> customFields = new ArrayList<CustomField>(
            repositoryConfiguration.getCustomFields().size());

    for (FieldDescriptor field : repositoryConfiguration.getCustomFields()) {
        if (field.isObsolete()) {
            continue;
        }
        String fieldValue = task.getCustomFields().get(field.getName());
        customFields.add(new CustomField(field, fieldValue));

    }

    customFieldDriver.edit(customFields);

    List<InlineEditableField<?>> customInlineEditFields = new ArrayList<InlineEditableField<?>>();

    for (final CustomFieldEditor editor : customFieldEditor.getEditors()) {

        InlineEditableCustomField customFieldWidget = new InlineEditableCustomField(editor);
        customFieldsPanel.add(customFieldWidget);

        customInlineEditFields.add(new InlineEditableField<CustomField>(customFieldWidget.getReadOnlyField(),
                customFieldWidget.getEditFieldAnchor(), editor) {

            @Override
            protected void flushTask() {
                CustomField edited = editor.getValue();
                presenter.saveCustomField(edited.getFieldDescriptor().getName(), edited.getValue());
            }

            @Override
            protected SafeHtml getHtml(Task t) {
                String value = t.getCustomFields().get(editor.getFieldDescriptor().getName());
                final String displayValue;
                if (value == null || value.isEmpty()) {
                    displayValue = NOT_SET;
                } else if (editor.getFieldDescriptor().getFieldType().equals(FieldType.TIMESTAMP)) {
                    displayValue = Format.stringValueDateTime(new Date(Long.parseLong(value)));
                } else {
                    displayValue = value;
                }
                return SafeHtmlUtils.fromString(displayValue);
            }

            @Override
            protected Element getEditableElement() {
                return editor.getWidget().getElement();
            }
        });

    }

    for (InlineEditableField<?> f : customInlineEditFields) {
        f.renderTask(task);
    }

}

From source file:com.tractionsoftware.gwt.demo.history.client.HistoryDemo.java

License:Apache License

@Override
public void onModuleLoad() {
    RootPanel.get("location").add(location);
    RootPanel.get("links").add(links);
    RootPanel.get("events").add(events);

    History.addValueChangeHandler(new ValueChangeHandler<String>() {

        @Override/*w w  w.  j  a v a 2  s .  c  om*/
        public void onValueChange(ValueChangeEvent<String> event) {
            showLocationData(event.getValue());
            events.insertItem("[" + new Date() + "] ValueChangeEvent: value=" + event.getValue(), 0);
        }

    });
    showLocationData("");

    String hash = "#" + token;
    String uri = Document.get().getBody().getAttribute("data-file") + hash;

    links.setText(0, 0, "GWT Hyperlink");
    links.setWidget(0, 1, new Hyperlink(SafeHtmlUtils.fromString(token), token));

    links.setText(1, 0, "HTML Hash");
    links.setHTML(1, 1,
            "<a href=\"" + SafeHtmlUtils.htmlEscape(hash) + "\">" + SafeHtmlUtils.htmlEscape(hash) + "</a>");

    links.setText(2, 0, "GWT Anchor");
    links.setWidget(2, 1, new Anchor(SafeHtmlUtils.fromString(uri), uri));

    links.setText(3, 0, "HTML Relative URI");
    links.setHTML(3, 1,
            "<a href=\"" + SafeHtmlUtils.htmlEscape(uri) + "\">" + SafeHtmlUtils.htmlEscape(uri) + "</a>");

    events.setVisibleItemCount(20);
    events.setWidth("800px");

}

From source file:com.tractionsoftware.gwt.demo.history.client.HistoryDemo.java

License:Apache License

private void setLocationData(int row, String name, String value) {
    location.setText(row, 0, name);
    location.setHTML(row, 1, SafeHtmlUtils.fromString(value));
}