Example usage for com.google.gwt.user.client.ui HTMLPanel HTMLPanel

List of usage examples for com.google.gwt.user.client.ui HTMLPanel HTMLPanel

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui HTMLPanel HTMLPanel.

Prototype

private HTMLPanel(Element elem) 

Source Link

Document

Construct a new HTMLPanel with the specified element.

Usage

From source file:strat.mining.multipool.stats.client.mvp.view.impl.DonationViewImpl.java

License:Open Source License

@Override
public void setNotAvailable() {
    mainContainer.remove(progressBar);//from   w ww  . j ava2 s  .co  m
    mainContainer.remove(notAvailablePanel);
    notAvailablePanel = new HTMLPanel(
            "Not Available. <a href=\"http://blockchain.info\" target=\"_blank\">Blockchain.info</a> may be down.");
    mainContainer.add(notAvailablePanel, new HtmlData(".donationProgressBar"));
}

From source file:stroom.editor.client.view.HtmlViewImpl.java

License:Apache License

@Override
public void setHtml(final String html) {
    final HTMLPanel htmlPanel = new HTMLPanel(html);
    scrollPanel.setWidget(htmlPanel);/* www .  j  ava  2  s  .co  m*/
}

From source file:uk.ac.ncl.openlab.intake24.client.CallbackRequestForm.java

private void doRequest() {
    requestCallbackButton.setEnabled(false);

    errorMessage.clear();//from   w  w w .  ja  va  2  s . c o m

    if (nameTextBox.getText().isEmpty() || phoneNumberTextBox.getText().isEmpty()) {
        errorMessage
                .add(new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.callbackRequestForm_fieldsEmpty())));
        errorMessage.getElement().addClassName("intake24-login-error-message");
        requestCallbackButton.setEnabled(true);
        return;
    }

    if (EmbeddedData.surveyId.equals("demo")) {
        errorMessage.add(new HTMLPanel(SafeHtmlUtils
                .fromSafeConstant(messages.callbackRequestForm_disabledForDemo("support@intake24.co.uk"))));
        errorMessage.getElement().addClassName("intake24-login-error-message");
        requestCallbackButton.setEnabled(true);
        return;
    }

    errorMessage.add(new LoadingWidget());

    HelpService.INSTANCE.requestCallback(EmbeddedData.surveyId,
            new CallbackRequest(nameTextBox.getText(), phoneNumberTextBox.getText()),
            new MethodCallback<Void>() {
                @Override
                public void onFailure(Method method, Throwable exception) {

                    if (method.getResponse().getStatusCode() == 429) {
                        errorMessage.clear();
                        errorMessage.getElement().addClassName("intake24-login-error-message");
                        errorMessage.add(new HTMLPanel(
                                SafeHtmlUtils.fromSafeConstant(messages.callbackRequestForm_tooSoon())));

                        GoogleAnalytics.trackHelpCallbackRejected();
                    } else {
                        errorMessage.clear();
                        errorMessage.add(
                                new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.serverErrorTitle())));
                        errorMessage.add(new HTMLPanel(SafeHtmlUtils
                                .fromSafeConstant(messages.serverErrorText(EmbeddedData.surveySupportEmail))));
                        errorMessage.getElement().addClassName("intake24-login-error-message");
                        requestCallbackButton.setEnabled(true);
                    }
                }

                @Override
                public void onSuccess(Method method, Void response) {
                    errorMessage.clear();
                    errorMessage.getElement().addClassName("intake24-login-success-message");
                    errorMessage.add(new HTMLPanel(
                            SafeHtmlUtils.fromSafeConstant(messages.callbackRequestForm_success())));

                    GoogleAnalytics.trackHelpCallbackAccepted();
                }
            });
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.FlatFinalPage.java

License:Apache License

@Override
public SimpleSurveyStageInterface getInterface(Callback1<Survey> onComplete,
        Callback2<Survey, Boolean> onIntermediateStateChange) {
    final CompletedSurvey finalData = data.finalise(log);
    final FlowPanel contents = new FlowPanel();
    contents.addStyleName("intake24-survey-content-container");

    contents.add(new LoadingPanel(messages.submitPage_loadingMessage()));

    SurveyService.INSTANCE.submitSurvey(EmbeddedData.surveyId, finalData,
            new MethodCallback<SurveySubmissionResponse>() {
                @Override//from   w  w w .j a v  a 2s  .  c  o  m
                public void onFailure(Method method, Throwable exception) {
                    contents.clear();

                    if (exception instanceof RequestTimeoutException) {
                        final MethodCallback<SurveySubmissionResponse> outer = this;

                        contents.add(
                                new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.submitPage_timeout())));

                        contents.add(WidgetFactory.createGreenButton(messages.submitPage_tryAgainButton(),
                                "finalPageTryAgainButton", new ClickHandler() {
                                    @Override
                                    public void onClick(ClickEvent event) {
                                        SurveyService.INSTANCE.submitSurvey(EmbeddedData.surveyId, finalData,
                                                outer);
                                    }
                                }));
                    } else {
                        contents.add(
                                new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.submitPage_error())));
                    }

                    contents.add(new HTMLPanel(finalPageHtml));
                }

                @Override
                public void onSuccess(Method method, SurveySubmissionResponse response) {
                    contents.clear();
                    HTMLPanel p = new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.submitPage_success()));
                    p.getElement().getStyle().setMarginBottom(30, Style.Unit.PX);
                    contents.add(p);

                    if (response.redirectToFeedback) {

                        HTMLPanel p1 = new HTMLPanel("h4", surveyMessages.finalPage_feedbackLabel());
                        p1.getElement().getStyle().setMarginBottom(0, Style.Unit.PX);

                        contents.add(p1);

                        Button feedbackButton = WidgetFactory.createGreenButton(
                                surveyMessages.finalPage_feedbackButtonLabel(), "feedbackButton",
                                new ClickHandler() {
                                    @Override
                                    public void onClick(ClickEvent clickEvent) {
                                        UrlBuilder builder = Window.Location.createUrlBuilder();

                                        for (String paramName : Window.Location.getParameterMap().keySet()) {
                                            builder.removeParameter(paramName);
                                        }

                                        builder.setPath(Window.Location.getPath() + "/feedback");
                                        builder.setHash("/");

                                        Window.open(builder.buildString(), "_blank", "");
                                    }
                                });

                        contents.add(feedbackButton);
                    }

                    response.followUpUrl.accept(new Option.SideEffectVisitor<String>() {
                        @Override
                        public void visitSome(String url) {

                            if (response.redirectToFeedback) {
                                HTMLPanel p2 = new HTMLPanel("h4",
                                        surveyMessages.finalPage_externalFollowUpLabel_afterFeedback());
                                p2.getElement().getStyle().setMarginBottom(0, Style.Unit.PX);
                                contents.add(p2);
                            } else {
                                HTMLPanel p2 = new HTMLPanel("h4",
                                        surveyMessages.finalPage_externalFollowUpLabel_noFeedback());
                                p2.getElement().getStyle().setMarginBottom(0, Style.Unit.PX);
                                contents.add(p2);
                            }

                            FlowPanel externalLinkDiv = new FlowPanel();

                            externalLinkDiv.add(WidgetFactory.createGreenButton(
                                    surveyMessages.finalPage_externalFollowUpButtonLabel(),
                                    "finalPageExternalUrlButton", new ClickHandler() {
                                        @Override
                                        public void onClick(ClickEvent clickEvent) {
                                            Window.open(url, "_blank", "");
                                        }
                                    }));

                            contents.add(externalLinkDiv);
                        }

                        @Override
                        public void visitNone() {
                        }
                    });

                    contents.add(new HTMLPanel(finalPageHtml));

                    UxEventsHelper.cleanSessionId();
                    StateManagerUtil.clearLatestState(AuthCache.getCurrentUserId());
                }
            });

    return new SimpleSurveyStageInterface(contents, FlatFinalPage.class.getSimpleName());
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.NavigationPanel.java

License:Apache License

public void stateChanged(final Survey state) {
    mealsPanel.clear();//w  w w .  j  a v  a 2s.  c  om

    Button addMealButton = WidgetFactory.createButton(messages.addMealLabel(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            requestAddMeal.call();
        }
    });

    addMealButton.getElement().setId("intake24-add-meal-button");

    UnorderedList<MealPanel> mealList = new UnorderedList<MealPanel>();
    mealList.addStyleName("intake24-meal-list");

    for (WithIndex<Meal> m : state.mealsSortedByTime) {
        MealPanel p = new MealPanel(m.value, m.index, state.selectedElement, new Callback1<Selection>() {
            @Override
            public void call(Selection arg1) {
                requestSelection.call(arg1);
            }
        });
        mealList.addItem(p);
    }

    headerContainer = new FlowPanel();
    headerContainer.addStyleName("intake24-meals-panel-header-container");

    headerButton = new FlowPanel();
    headerButton.addStyleName("intake24-meals-panel-header-button");

    HTMLPanel header = new HTMLPanel(SafeHtmlUtils.fromSafeConstant(messages.navPanelHeader()));
    header.addStyleName("intake24-meals-panel-header");

    headerContainer.add(headerButton);
    headerContainer.add(header);

    mealsPanel.add(headerContainer);
    mealsPanel.add(mealList);
    mealsPanel.add(addMealButton);

    headerButton.sinkEvents(Event.ONCLICK | Event.ONTOUCHSTART);

    headerButton.addHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent clickEvent) {
            togglePanel();
        }
    }, ClickEvent.getType());

    headerButton.addHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent touchStartEvent) {
            togglePanel();

        }
    }, TouchStartEvent.getType());

    onWindowResize();
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.prompts.AssociatedFoodPrompt.java

License:Apache License

@Override
public SurveyStageInterface getInterface(final Callback1<MealOperation> onComplete,
        Callback1<Function1<Pair<FoodEntry, Meal>, Pair<FoodEntry, Meal>>> updateIntermediateState) {
    final EncodedFood food = (EncodedFood) pair.left;
    final AssociatedFood prompt = food.enabledPrompts.get(promptIndex);

    final FlowPanel content = new FlowPanel();
    PromptUtil.addBackLink(content);/*from   w  w  w  .java 2  s.  c o m*/
    final Panel promptPanel = WidgetFactory.createPromptPanel(
            SafeHtmlUtils.fromSafeConstant("<p>" + SafeHtmlUtils.htmlEscape(prompt.promptText) + "</p>"),
            WidgetFactory.createHelpButton(new ClickHandler() {
                @Override
                public void onClick(ClickEvent arg0) {
                    String promptType = AssociatedFoodPrompt.class.getSimpleName();
                    GoogleAnalytics.trackHelpButtonClicked(promptType);
                    ShepherdTour.startTour(getShepherdTourSteps(), promptType);
                }
            }));
    content.add(promptPanel);
    ShepherdTour.makeShepherdTarget(promptPanel);

    UxEventsHelper.postManualAssociatedFoodReceived(
            new ManualReceivedData(new FoodHeader(food.data.code, food.data.localDescription), prompt));

    final Callback1<FoodData> addNewFood = new Callback1<FoodData>() {
        @Override
        public void call(final FoodData result) {
            onComplete.call(MealOperation.update(new Function1<Meal, Meal>() {
                @Override
                public Meal apply(final Meal meal) {
                    // Special case for cereal:
                    // if a "milk on cereal" food is linked to a cereal food
                    // copy bowl type from the parent food
                    Option<String> bowl_id = getParamValue(food, "bowl");

                    FoodData foodData = bowl_id.accept(new Option.Visitor<String, FoodData>() {
                        @Override
                        public FoodData visitSome(String bowl_id) {
                            return result.withPortionSizeMethods(
                                    appendPotionSizeParameter(result.portionSizeMethods, "bowl", bowl_id));
                        }

                        @Override
                        public FoodData visitNone() {
                            return result;
                        }
                    });

                    EncodedFood assocFood = new EncodedFood(foodData, FoodLink.newUnlinked(),
                            "associated food prompt");

                    return linkAssociatedFood(meal.plusFood(assocFood), food, assocFood, prompt.linkAsMain);
                }

                ;
            }));
        }
    };

    final Callback addMissingFood = new Callback() {
        @Override
        public void call() {
            onComplete.call(MealOperation.update(new Function1<Meal, Meal>() {
                @Override
                public Meal apply(final Meal meal) {
                    FoodEntry missingFood = new MissingFood(FoodLink.newUnlinked(),
                            prompt.genericName.substring(0, 1).toUpperCase() + prompt.genericName.substring(1),
                            false, Option.<MissingFoodDescription>none())
                                    .withCustomDataField(MissingFood.KEY_ASSOC_FOOD_NAME, food.description())
                                    .withCustomDataField(MissingFood.KEY_ASSOC_FOOD_CATEGORY,
                                            prompt.foodOrCategoryCode.getRightOrDie());

                    return linkAssociatedFood(meal.plusFood(missingFood), food, missingFood, prompt.linkAsMain);
                }
            }));
        }
    };

    final Callback1<FoodEntry> addExistingFood = new Callback1<FoodEntry>() {
        @Override
        public void call(final FoodEntry existing) {
            onComplete.call(MealOperation.update(new Function1<Meal, Meal>() {
                @Override
                public Meal apply(final Meal meal) {
                    return linkAssociatedFood(meal, food, existing, prompt.linkAsMain);
                }

                ;
            }));
        }
    };

    foodBrowser = new FoodBrowser(locale, new Callback2<FoodData, Integer>() {
        @Override
        public void call(FoodData result, Integer index) {

            UxEventsHelper.postManualAssociatedFoodConfirmed(
                    new ManualConfirmedData(new FoodHeader(food.data.code, food.data.localDescription),
                            getSelectedFoods(), prompt, new FoodHeader(result.code, result.localDescription)));

            addNewFood.call(result);
        }
    }, new Callback1<String>() {
        @Override
        public void call(String code) {
            throw new RuntimeException("Special foods are not allowed as associated foods");
        }
    }, new Callback() {
        @Override
        public void call() {
            addMissingFood.call();
        }
    }, Option.<SkipFoodHandler>none(), false, Option.<Pair<String, String>>none(), Option.none(),
            Option.none());

    Button no = WidgetFactory.createButton(messages.assocFoods_noButtonLabel(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {

            UxEventsHelper.postManualAssociatedFoodRejected(
                    new ManualRejectedData(new FoodHeader(food.data.code, food.data.localDescription), prompt));

            onComplete
                    .call(MealOperation.updateEncodedFood(foodIndex, new Function1<EncodedFood, EncodedFood>() {
                        @Override
                        public EncodedFood apply(EncodedFood argument) {
                            return argument.minusPrompt(promptIndex);
                        }
                    }));
        }
    });

    Button yes = WidgetFactory.createButton(messages.assocFoods_yesButtonLabel(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            if (prompt.foodOrCategoryCode.isRight()) {
                content.clear();
                PromptUtil.addBackLink(content);
                content.add(promptPanel);
                content.add(new HTMLPanel(
                        SafeHtmlUtils.fromSafeConstant(messages.assocFoods_specificFoodPrompt())));
                content.add(interf);

                content.add(foodBrowser);
                isInBrowserMode = true;

                foodBrowser.browse(prompt.foodOrCategoryCode.getRightOrDie(),
                        messages.assocFoods_allFoodsDataSetName());
            } else {
                content.clear();
                content.add(new LoadingPanel(messages.foodBrowser_loadingMessage()));

                FoodDataService.INSTANCE.getFoodData(locale, prompt.foodOrCategoryCode.getLeftOrDie(),
                        new MethodCallback<FoodData>() {
                            @Override
                            public void onFailure(Method method, Throwable exception) {
                                content.clear();
                                content.add(WidgetFactory.createDefaultErrorMessage());
                                content.add(WidgetFactory.createBackLink());
                            }

                            @Override
                            public void onSuccess(Method method, FoodData response) {

                                UxEventsHelper.postManualAssociatedFoodConfirmed(new ManualConfirmedData(
                                        new FoodHeader(food.data.code, food.data.localDescription),
                                        getSelectedFoods(), prompt,
                                        new FoodHeader(response.code, response.localDescription)));

                                addNewFood.call(response);
                            }
                        });
            }
        }
    });

    yes.getElement().setId("intake24-assoc-food-yes-button");

    final int existingIndex = CollectionUtils.indexOf(pair.right.foods, new Function1<FoodEntry, Boolean>() {
        @Override
        public Boolean apply(FoodEntry argument) {
            return argument.accept(new FoodEntry.Visitor<Boolean>() {
                @Override
                public Boolean visitRaw(RawFood food) {
                    return false;
                }

                @Override
                public Boolean visitEncoded(EncodedFood food) {
                    // don't suggest foods that are already linked to other
                    // foods
                    if (food.link.isLinked())
                        return false;
                    // don't suggest linking the food to itself
                    else if (food.link.id.equals(pair.left.link.id))
                        return false;
                    // don't suggest if the food has foods linked to it
                    else if (!Meal.linkedFoods(pair.right.foods, food).isEmpty())
                        return false;
                    else if (prompt.foodOrCategoryCode.isRight())
                        return food.isInCategory(prompt.foodOrCategoryCode.getRightOrDie());
                    else
                        return food.data.code.equals(prompt.foodOrCategoryCode.getLeftOrDie());
                }

                @Override
                public Boolean visitTemplate(TemplateFood food) {
                    return false;
                }

                @Override
                public Boolean visitMissing(MissingFood food) {
                    return false;
                }

                @Override
                public Boolean visitCompound(CompoundFood food) {
                    return false;
                }
            });
        }
    });

    no.getElement().setId("intake24-assoc-food-no-button");

    tour = TreePVector.<ShepherdTour.Step>empty()
            .plus(new ShepherdTour.Step("noButton", "#intake24-assoc-food-no-button",
                    helpMessages.assocFood_noButtonTitle(), helpMessages.assocFood_noButtonDescription()))
            .plus(new ShepherdTour.Step("yesButton", "#intake24-assoc-food-yes-button",
                    helpMessages.assocFood_yesButtonTitle(), helpMessages.assocFood_yesButtonDescription()));

    if (existingIndex != -1) {
        Button yesExisting = WidgetFactory.createButton(messages.assocFoods_alreadyEntered(),
                new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        UxEventsHelper.postManualAssociatedFoodAlreadyReported(new ManualAlreadyReportedData(
                                new FoodHeader(food.data.code, food.data.localDescription), prompt));
                        addExistingFood.call(pair.right.foods.get(existingIndex));
                    }
                });

        yesExisting.getElement().setId("intake24-assoc-food-yes-existing-button");

        tour = tour.plus(new ShepherdTour.Step("yesButton", "#intake24-assoc-food-yes-existing-button",
                helpMessages.assocFood_yesExistingButtonTitle(),
                helpMessages.assocFood_yesExistingButtonDescription(), "top right", "bottom right"));

        ShepherdTour.makeShepherdTarget(yesExisting);

        buttonsPanel = WidgetFactory.createButtonsPanel(no, yes, yesExisting);
    } else {
        buttonsPanel = WidgetFactory.createButtonsPanel(no, yes);
    }

    content.add(buttonsPanel);

    ShepherdTour.makeShepherdTarget(yes, no);

    interf = new FlowPanel();

    return new SurveyStageInterface.Aligned(content, HasHorizontalAlignment.ALIGN_LEFT,
            HasVerticalAlignment.ALIGN_TOP, SurveyStageInterface.DEFAULT_OPTIONS,
            AssociatedFoodPrompt.class.getSimpleName());
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.prompts.ConfirmCompletionPromptFlexibleRecall.java

private FlowPanel createAlert(String alertText) {
    FlowPanel result = new FlowPanel();
    HTMLPanel promptPanel = new HTMLPanel(alertText);
    promptPanel.addStyleName("intake24-alert");
    result.add(promptPanel);//  w  w w.  j a v  a 2 s  .c  om
    return result;
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.prompts.SameAsBeforePrompt.java

@Override
public SurveyStageInterface getInterface(final Callback1<MealOperation> onComplete,
        Callback1<Function1<Pair<FoodEntry, Meal>, Pair<FoodEntry, Meal>>> updateIntermediateState) {

    final FlowPanel content = new FlowPanel();
    PromptUtil.addBackLink(content);//from   w w  w.j  av  a  2 s .co  m
    final Panel promptPanel = WidgetFactory.createPromptPanel(
            SafeHtmlUtils.fromSafeConstant(messages
                    .sameAsBefore_promptText(SafeHtmlUtils.htmlEscape(food.description().toLowerCase()))),
            ShepherdTour.createTourButton(tour, SameAsBeforePrompt.class.getSimpleName()));
    content.add(promptPanel);

    final EncodedFood mainFoodAsBefore = asBefore.mainFood;
    final PVector<FoodEntry> assocFoodsAsBefore = asBefore.linkedFoods;

    final double leftoversWeight = mainFoodAsBefore.completedPortionSize().leftoversWeight();
    final double servingWeight = mainFoodAsBefore.completedPortionSize().servingWeight();

    final int leftoversPercent = (int) (leftoversWeight * 100.0 / servingWeight);
    final int leftoversPercentRounded = (leftoversPercent + 4) / 5 * 5;

    final String portionSize = messages.sameAsBefore_servingSize(
            Integer.toString((int) servingWeight) + (mainFoodAsBefore.isDrink() ? " ml" : " g"));
    final String leftovers = (leftoversWeight < 0.01)
            ? (mainFoodAsBefore.isDrink() ? messages.sameAsBefore_noLeftoversDrink()
                    : messages.sameAsBefore_noLeftoversFood())
            : messages.sameAsBefore_leftovers(leftoversPercentRounded + "%");

    HTMLPanel portionSizePanel = new HTMLPanel(portionSize);
    portionSizePanel.getElement().setId("intake24-sab-portion-size");
    content.add(portionSizePanel);
    HTMLPanel leftoversPanel = new HTMLPanel(leftovers);
    leftoversPanel.getElement().setId("intake24-sab-leftovers");
    content.add(leftoversPanel);

    String assocFoodsHTML = messages.sameAsBefore_hadItWith();

    if (!assocFoodsAsBefore.isEmpty())
        assocFoodsHTML += "<ul>";

    for (FoodEntry f : assocFoodsAsBefore) {
        EncodedFood assocFood = f.asEncoded();

        String assocFoodDescription;

        if (assocFood.isInCategory(SpecialData.FOOD_CODE_MILK_IN_HOT_DRINK))
            assocFoodDescription = SafeHtmlUtils.htmlEscape(assocFood.description()) + " ("
                    + SafeHtmlUtils.htmlEscape(MilkInHotDrinkPortionSizeScript.amounts.get(
                            Integer.parseInt(assocFood.completedPortionSize().data.get("milkPartIndex"))).name)
                    + ")";
        else
            assocFoodDescription = SafeHtmlUtils.htmlEscape(assocFood.description()) + " ("
                    + Integer.toString((int) assocFood.completedPortionSize().servingWeight())
                    + (assocFood.isDrink() ? " ml" : " g") + ")";

        assocFoodsHTML += "<li>" + assocFoodDescription + "</li>";
    }

    HTMLPanel assocFoodsPanel;

    if (!assocFoodsAsBefore.isEmpty()) {
        assocFoodsHTML += "</ul>";
        assocFoodsPanel = new HTMLPanel(assocFoodsHTML);

    } else {
        assocFoodsPanel = new HTMLPanel(messages.sameAsBefore_noAddedFoods());
    }

    assocFoodsPanel.getElement().setId("intake24-sab-assoc-foods");
    content.add(assocFoodsPanel);

    Button yes = WidgetFactory.createButton(messages.sameAsBefore_confirmButtonLabel(), new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            onComplete.call(MealOperation.update(new Function1<Meal, Meal>() {
                @Override
                public Meal apply(final Meal meal) {

                    PVector<FoodEntry> updatedFoods = meal.foods
                            .with(foodIndex,
                                    food.withPortionSize(
                                            PortionSize.complete(mainFoodAsBefore.completedPortionSize()))
                                            .disableAllPrompts())
                            .plusAll(map(assocFoodsAsBefore, new Function1<FoodEntry, FoodEntry>() {
                                @Override
                                public FoodEntry apply(FoodEntry assocFood) {
                                    return assocFood.relink(FoodLink.newLinked(food.link.id));
                                }
                            }));

                    return meal.withFoods(updatedFoods);
                }
            }));
        }
    });

    yes.getElement().setId("intake24-sab-yes-button");

    Button no = WidgetFactory.createButton(messages.sameAsBefore_rejectButtonLabel(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            onComplete
                    .call(MealOperation.updateEncodedFood(foodIndex, new Function1<EncodedFood, EncodedFood>() {

                        @Override
                        public EncodedFood apply(EncodedFood argument) {
                            return argument.markNotSameAsBefore();
                        }
                    }));

        }
    });

    no.getElement().setId("intake24-sab-no-button");

    content.add(WidgetFactory.createButtonsPanel(yes, no));

    ShepherdTour.makeShepherdTarget(promptPanel, portionSizePanel, leftoversPanel, assocFoodsPanel, yes, no);

    return new SurveyStageInterface.Aligned(content, HasHorizontalAlignment.ALIGN_LEFT,
            HasVerticalAlignment.ALIGN_TOP, SurveyStageInterface.DEFAULT_OPTIONS,
            SameAsBeforePrompt.class.getSimpleName());
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.prompts.simple.OptionalFoodPrompt.java

License:Apache License

@Override
public FlowPanel getInterface(final Callback1<Option<String>> onComplete) {
    final FlowPanel content = new FlowPanel();

    final Panel promptPanel = WidgetFactory.createPromptPanel(def.promptHtml);
    content.add(promptPanel);/*  w w w.j a va  2s.  c  o m*/

    final FoodBrowser foodBrowser = new FoodBrowser(locale, new Callback2<FoodData, Integer>() {
        @Override
        public void call(FoodData result, Integer index) {
            onComplete.call(Option.some(result.code));
        }
    }, new Callback1<String>() {
        @Override
        public void call(String code) {
            throw new RuntimeException("Special foods are not allowed as associated foods");
        }
    }, new Callback() {
        @Override
        public void call() {
            // FIXME: A quick hack to get rid of compiler errors -- this
            // prompt seems to be unused
            // fix this if this is actually used!
            onComplete.call(Option.<String>none());
        }
    }, Option.<SkipFoodHandler>none(), true, Option.<Pair<String, String>>none(), Option.none(), Option.none());

    Button no = WidgetFactory.createButton(def.noButtonText/* "No, I did not" */, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            onComplete.call(Option.<String>none());
        }
    });

    Button yes = WidgetFactory.createButton(def.yesButtonText/* "Yes, I had some" */, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            content.clear();
            PromptUtil.addBackLink(content);
            content.add(promptPanel);
            content.add(new HTMLPanel(def.foodChoicePromptHtml /*
                                                                 * SafeHtmlUtils
                                                               * .
                                                               * fromSafeConstant
                                                               * (
                                                               * "<p>Please select the specific type of this food that you've had:</p>"
                                                               * )
                                                               */));
            content.add(interf);

            content.add(foodBrowser);

            foodBrowser.browse(def.categoryCode, "?");
        }
    });

    buttonsPanel = WidgetFactory.createButtonsPanel(no, yes);
    content.add(buttonsPanel);

    interf = new FlowPanel();

    return content;
}

From source file:uk.ac.ncl.openlab.intake24.client.survey.WelcomePage.java

License:Apache License

@Override
public SimpleSurveyStageInterface getInterface(final Callback1<Survey> onComplete,
        Callback2<Survey, Boolean> onIntermediateStateChange) {
    final Button startButton = WidgetFactory.createGreenButton(surveyMessages.welcomePage_ready(),
            "welcomePageReadyButton", new ClickHandler() {
                public void onClick(ClickEvent event) {
                    onComplete.call(initialData.withFlag(FLAG_WELCOME_PAGE_SHOWN));
                }//from w  ww.j av  a 2s  . c om
            });

    FlowPanel contents = new FlowPanel();
    contents.getElement().addClassName("intake24-survey-content-container");
    HTMLPanel htmlPanel = new HTMLPanel(SafeHtmlUtils.fromSafeConstant(welcomeHtml));

    contents.add(htmlPanel);
    contents.add(startButton);

    return new SimpleSurveyStageInterface(contents, WelcomePage.class.getSimpleName());
}