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

@SuppressIsSafeHtmlCastCheck
public HTMLPanel(String tag, @IsSafeHtml String html) 

Source Link

Document

Creates an HTML panel whose root element has the given tag, and with the specified HTML contents.

Usage

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

@Override
public SurveyStageInterface getInterface(final Callback1<MealOperation> onComplete,
        final Callback1<Function1<Pair<FoodEntry, Meal>, Pair<FoodEntry, Meal>>> onIntermediateStateChange) {
    final SafeHtml promptText = SafeHtmlUtils.fromSafeConstant(messages.editRecipeIngredientsPrompt_promptText(
            SafeHtmlUtils.htmlEscape(meal.foods.get(foodIndex).description())));
    final UUID compoundFoodId = meal.foods.get(foodIndex).link.id;

    final Function1<FoodEntry, Boolean> noLinkedFoodsFilter = new Function1<FoodEntry, Boolean>() {
        @Override/*from   w w  w  .  j  ava2 s . co m*/
        public Boolean apply(FoodEntry argument) {
            return argument.link.linkedTo.accept(new Option.Visitor<UUID, Boolean>() {
                @Override
                public Boolean visitSome(UUID item) {
                    return !item.equals(compoundFoodId);
                }

                @Override
                public Boolean visitNone() {
                    return true;
                }
            });
        }
    };

    final Button done = WidgetFactory.createGreenButton(
            messages.editRecipeIngredientsPrompt_continueButtonLabel(), "editRecipeContinueButton",
            new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    onComplete.call(MealOperation.update(new Function1<Meal, Meal>() {
                        @Override
                        public Meal apply(Meal argument) {
                            ArrayList<FoodEntry> linkedFoods = new ArrayList<FoodEntry>();
                            for (FoodEntry e : ingredientList.getEnteredItems())
                                linkedFoods.add(e.relink(FoodLink.newLinked(compoundFoodId))
                                        .withFlag(RawFood.FLAG_RECIPE_INGREDIENT));

                            return argument.withFoods(filter(argument.foods, noLinkedFoodsFilter))
                                    .plusAllFoods(linkedFoods).updateFood(foodIndex, argument.foods
                                            .get(foodIndex).withFlag(CompoundFood.FLAG_INGREDIENTS_COMPLETE));
                        }
                    }));
                }
            });

    done.getElement().setId("intake24-done-button");

    ingredientList = new EditableFoodList(messages.editMeal_addFoodButtonLabel(), false,
            new Callback1<List<FoodEntry>>() {
                @Override
                public void call(List<FoodEntry> arg1) {
                    onIntermediateStateChange
                            .call(new Function1<Pair<FoodEntry, Meal>, Pair<FoodEntry, Meal>>() {
                                @Override
                                public Pair<FoodEntry, Meal> apply(Pair<FoodEntry, Meal> argument) {

                                    ArrayList<FoodEntry> linkedFoods = new ArrayList<FoodEntry>();
                                    for (FoodEntry e : ingredientList.getEnteredItems())
                                        linkedFoods.add(e.relink(FoodLink.newLinked(compoundFoodId))
                                                .withFlag(RawFood.FLAG_RECIPE_INGREDIENT));

                                    return Pair.create(null,
                                            argument.right
                                                    .withFoods(
                                                            filter(argument.right.foods, noLinkedFoodsFilter))
                                                    .plusAllFoods(linkedFoods));
                                }
                            });
                }
            });

    ingredientList.disableLinkedFoodsIndentation();

    for (FoodEntry f : Meal.linkedFoods(meal.foods, meal.foods.get(foodIndex)))
        ingredientList.addItem(Option.some(f));

    final HTMLPanel foodHeader = new HTMLPanel("h2",
            SafeHtmlUtils.htmlEscape(messages.editRecipeIngredientsPrompt_ingredientsHeader()));
    final FlowPanel foodListContainer = new FlowPanel();
    foodListContainer.getElement().setId("intake24-ingredient-list");
    foodListContainer.add(foodHeader);
    foodListContainer.add(ingredientList);
    ShepherdTour.makeShepherdTarget(foodListContainer);

    FlowPanel contents = new FlowPanel();
    contents.addStyleName("intake24-edit-meal-prompt");

    Panel promptPanel = WidgetFactory.createPromptPanel(promptText,
            ShepherdTour.createTourButton(tour, EditRecipeIngredientsPrompt.class.getSimpleName()));
    contents.add(promptPanel);
    ShepherdTour.makeShepherdTarget(promptPanel);

    contents.add(foodListContainer);
    contents.add(WidgetFactory.createButtonsPanel(done));

    ShepherdTour.makeShepherdTarget(done);

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

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

License:Apache License

private void show(final LookupResult result, final String resultName, final String foodHeader,
        final String categoryHeader) {

    GlobalScrollTracker.INSTANCE.resetMaxYOffset();

    final FlowPanel ui = new FlowPanel();
    ui.addStyleName("intake24-food-browser-ui");

    ui.add(historyBackLink());// ww  w  .j a  va  2  s. co m

    if (!result.foods.isEmpty()) {
        foodsContainer = new FlowPanel();
        foodsContainer.addStyleName("intake24-food-browser-foods-container");
        foodsContainer.getElement().setId("intake24-food-browser-foods-container");

        int index = 1;

        for (final FoodHeader food : result.foods)
            if (food.code.equals(SpecialData.FOOD_CODE_SANDWICH)
                    || food.code.equals(SpecialData.FOOD_CODE_SALAD)) {
                foodsContainer.add(createFoodButton(food, index));
                index++;
            }

        HTMLPanel header = new HTMLPanel("h2", foodHeader);
        foodsContainer.add(header);

        for (final FoodHeader food : result.foods)
            if (!(food.code.equals(SpecialData.FOOD_CODE_SANDWICH)
                    || food.code.equals(SpecialData.FOOD_CODE_SALAD))) {
                foodsContainer.add(createFoodButton(food, index));
                index++;
            }

        ui.add(foodsContainer);
    } else {
        foodsContainer = null;
    }

    if (!result.categories.isEmpty()) {
        categoriesContainer = new FlowPanel();
        categoriesContainer.addStyleName("intake24-food-browser-categories-container");
        categoriesContainer.getElement().setId("intake24-food-browser-categories-container");
        HTMLPanel header = new HTMLPanel("h2", categoryHeader);
        categoriesContainer.add(header);

        for (final CategoryHeader categoryData : result.categories) {
            Label item = new Label(categoryData.description());
            item.addStyleName("intake24-food-browser-category");
            item.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent arg0) {
                    UxEventsHelper.postSearchResultSelected(new SearchResultSelectionData(Viewport.getCurrent(),
                            ContainerPosition.fromElement("intake24-food-browser-foods-container"),
                            ContainerPosition.fromElement("intake24-food-browser-categories-container"),
                            ContainerPosition.fromElement("intake24-food-browser-buttons-container").getOrDie(),
                            Option.none(), Option.some(categoryData), -1));
                    pushHistory(result, resultName, foodHeader, categoryHeader);
                    browse(categoryData.code, categoryData.description());
                }
            });
            categoriesContainer.add(item);
        }

        ui.add(categoriesContainer);
    } else {
        categoriesContainer = null;
    }

    if (result.categories.isEmpty() && result.foods.isEmpty()) {
        FlowPanel div = new FlowPanel();
        div.addStyleName("intake24-food-lookup-no-results");
        div.add(new HTMLPanel(messages.foodBrowser_searchResultsEmpty()));
        ui.add(div);
    }

    FlowPanel div = new FlowPanel();
    div.addStyleName("intake24-food-browser-browse-all-container");
    div.getElement().setId("intake24-food-browser-buttons-container");

    final Panel buttonsPanel = WidgetFactory.createButtonsPanel();
    div.add(buttonsPanel);

    if (allowBrowsingAllFoods) {
        browseAllFoodsButton = WidgetFactory.createButton(messages.foodBrowser_browseAllFoodsLabel());
        browseAllFoodsButton.addStyleName("intake24-food-browser-browse-all-button");
        browseAllFoodsButton.getElement().setId("intake24-food-browser-browse-all-button");
        browseAllFoodsButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent arg0) {
                pushHistory(result, resultName, foodHeader, categoryHeader);

                UxEventsHelper.postBrowseAllFoodsButtonClicked();

                limitBrowseAllCategory.accept(new Option.SideEffectVisitor<Pair<String, String>>() {
                    @Override
                    public void visitSome(Pair<String, String> item) {
                        browse(item.left, item.right);
                    }

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

            }
        });

        buttonsPanel.add(browseAllFoodsButton);
    } else {
        browseAllFoodsButton = null;
    }

    cantFindButton = WidgetFactory.createButton(messages.foodBrowser_cantFindButtonLabel());
    cantFindButton.getElement().setId("intake24-food-browser-cant-find-button");

    tryAgainButton = null;
    missingFoodButton = null;
    cantFindPopupPrompt = null;

    cantFindButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent arg0) {

            UxEventsHelper.postCantFindButtonClicked();

            cantFindButton.setEnabled(false);

            final FlowPanel fadeDiv = new FlowPanel();
            fadeDiv.addStyleName("intake24-food-browser-overlay");

            final FlowPanel popupDiv = new FlowPanel();
            popupDiv.addStyleName("intake24-food-browser-popup");
            popupDiv.getElement().setId("cant-find-food-popup");

            cantFindPopupPrompt = new HTMLPanel(allowBrowsingAllFoods
                    ? SafeHtmlUtils.fromSafeConstant(messages.foodBrowser_cantFindFullPopupContents())
                    : SafeHtmlUtils.fromSafeConstant(messages.foodBrowser_cantFindBrowseOnlyPopupContents()));

            tryAgainButton = WidgetFactory.createButton(messages.foodBrowser_cantFindTryAgainButtonLabel(),
                    new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                            cantFindButton.setEnabled(true);
                            popupDiv.removeFromParent();

                            PromptInterfaceManager.scrollPromptIntoView();

                            tryAgainButton = null;
                            missingFoodButton = null;
                            cantFindPopupPrompt = null;

                            // fadeDiv.removeFromParent();
                        }
                    });

            tryAgainButton.getElement().setId("intake24-food-browser-try-again-button");

            missingFoodButton = WidgetFactory.createButton(messages.foodBrowser_reportMissingFoodButtonLabel(),
                    new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                            GoogleAnalytics.trackMissingFoodReported();
                            onMissingFoodReported.call();

                        }
                    });

            missingFoodButton.getElement().setId("intake24-food-browser-missing-food-button");

            popupDiv.add(cantFindPopupPrompt);
            popupDiv.add(WidgetFactory.createButtonsPanel(tryAgainButton, missingFoodButton));

            // ui.add(fadeDiv);
            ui.add(popupDiv);

            Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                public native void scrollIntoView() /*-{
                                                    $wnd.$('html, body').animate({
                                                    scrollTop: $wnd.$("#cant-find-food-popup").offset().top
                                                    }, 500);
                                                    }-*/;

                @Override
                public void execute() {
                    scrollIntoView();
                }
            });
        }
    });

    skipFoodHandler.accept(new Option.SideEffectVisitor<SkipFoodHandler>() {

        @Override
        public void visitSome(final SkipFoodHandler handler) {
            skipFoodButton = WidgetFactory.createButton(handler.skipButtonLabel, new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    handler.onFoodSkipped.call();

                }
            });

            skipFoodButton.getElement().setId("intake24-food-browser-skip-food-button");

            buttonsPanel.add(skipFoodButton);
        }

        @Override
        public void visitNone() {
            skipFoodButton = null;
        }
    });

    buttonsPanel.add(cantFindButton);

    ui.add(div);

    contents.clear();
    contents.add(ui);

    IEHack.forceReflowDeferred();
}

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

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

    content.add(WidgetFactory.createPromptPanel(promptText));

    final FlowPanel errorMessageDiv = new FlowPanel();

    content.add(errorMessageDiv);/*from ww  w.  j a  va 2s  .c  om*/
    errorMessageDiv.addStyleName("intake24-text-box-question-warning");

    final TextBox weightTextBox = new TextBox();
    weightTextBox.addStyleName("intake24-weight-type-in-textbox");

    HTMLPanel unitsLabel = new HTMLPanel("span", unitLabel.asString());

    content.add(weightTextBox);
    content.add(unitsLabel);

    Button accept = WidgetFactory.createGreenButton(acceptText, "weightTypeInContinueButton",
            new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {

                    try {
                        double weight = Double.parseDouble(weightTextBox.getText());

                        if (weight <= 0.0 || weight > 2000) {
                            errorMessageDiv.clear();
                            errorMessageDiv.add(new Label(messages.weightTypeIn_rangeError()));
                        } else
                            onComplete.call(weight);
                    } catch (NumberFormatException e) {
                        errorMessageDiv.clear();
                        errorMessageDiv.add(new Label(messages.weightTypeIn_formatError()));
                    }
                }
            });

    content.add(WidgetFactory.createButtonsPanel(accept));

    return content;
}

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

License:Apache License

public static final SimplePrompt<UpdateFunc> withHeader(final SimplePrompt<UpdateFunc> prompt,
        final String headerText) {
    return new SimplePrompt<UpdateFunc>() {
        @Override//from w w w .j  a  v a 2  s.c  om
        public FlowPanel getInterface(final Callback1<UpdateFunc> onComplete) {
            FlowPanel contents = prompt.getInterface(onComplete);

            contents.insert(new HTMLPanel("h1", headerText), 0);

            return contents;
        }

        @Override
        public String getClassName() {
            return prompt.getClassName();
        }
    };
}

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

License:Apache License

public AuthTokenForm() {

    FlowPanel container = new FlowPanel();
    container.getElement().addClassName("intake24-login-container");

    FlowPanel header = new FlowPanel();
    header.getElement().addClassName("intake24-login-header");

    FlowPanel formContainer = new FlowPanel();
    formContainer.getElement().addClassName("intake24-login-form-container");

    HTMLPanel welcome = new HTMLPanel("h1", messages.loginForm_welcome());
    header.add(welcome);// w  w  w. j  a va 2s .  c om

    form = new VerticalPanel();
    form.getElement().addClassName("intake24-login-form");

    container.add(header);
    formContainer.add(form);
    container.add(formContainer);

    initWidget(container);
}

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

License:Apache License

public ErrorPage(String title, String text) {

    FlowPanel container = new FlowPanel();

    container.addStyleName("intake24-error-page-container");

    HTMLPanel titlePanel = new HTMLPanel("h2", title);
    HTMLPanel textPanel = new HTMLPanel(text);

    container.add(titlePanel);/*  w ww . j  a v  a 2 s.com*/
    container.add(textPanel);

    initWidget(container);
}

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

License:Apache License

public GenUserForm() {

    FlowPanel container = new FlowPanel();
    container.getElement().addClassName("intake24-login-container");

    FlowPanel header = new FlowPanel();
    header.getElement().addClassName("intake24-login-header");

    FlowPanel formContainer = new FlowPanel();
    formContainer.getElement().addClassName("intake24-login-form-container");

    HTMLPanel welcome = new HTMLPanel("h1", messages.loginForm_welcome());
    header.add(welcome);/*from  ww w  . j ava 2s .c  o  m*/

    form = new VerticalPanel();
    form.getElement().addClassName("intake24-login-form");

    form.add(new LoadingWidget());

    container.add(header);
    formContainer.add(form);
    container.add(formContainer);

    initWidget(container);
}

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

License:Apache License

public LoginForm(final Callback1<Credentials> attemptLogin, boolean sessionExpired) {
    this.attemptLogin = attemptLogin;

    FlowPanel container = new FlowPanel();
    container.getElement().addClassName("intake24-login-container");

    FlowPanel header = new FlowPanel();
    header.getElement().addClassName("intake24-login-header");

    FlowPanel formContainer = new FlowPanel();
    formContainer.getElement().addClassName("intake24-login-form-container");

    HTMLPanel welcome = new HTMLPanel("h1", messages.loginForm_welcome());
    header.add(welcome);//w  w  w .j  a  v a  2 s. co m

    Grid credentials = new Grid(2, 2);

    credentials.setCellPadding(5);

    Label userLabel = new Label(messages.loginForm_userNameLabel());
    Label passLabel = new Label(messages.loginForm_passwordLabel());

    this.userNameTextBox = new TextBox();
    this.passwordTextBox = new PasswordTextBox();

    credentials.setWidget(0, 0, userLabel);
    credentials.setWidget(1, 0, passLabel);
    credentials.setWidget(0, 1, userNameTextBox);
    credentials.setWidget(1, 1, passwordTextBox);

    VerticalPanel form = new VerticalPanel();
    form.getElement().addClassName("login-form");
    form.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);

    FlowPanel linkPanel = new FlowPanel();

    linkPanel.add(WidgetFactory.createTutorialVideoLink());

    HTMLPanel messagePanel = new HTMLPanel("h1",
            sessionExpired ? messages.loginForm_sessionExpired() : messages.loginForm_logInToContinue());

    HTMLPanel divider = new HTMLPanel(messages.loginForm_logInSeparator());
    divider.getElement().addClassName("intake24-login-form-divider");

    form.add(messagePanel);
    form.add(divider);
    form.add(linkPanel);
    form.add(credentials);

    statusPanel = new FlowPanel();
    form.add(statusPanel);

    loginButton = WidgetFactory.createButton(messages.loginForm_logInButtonLabel(), new ClickHandler() {
        public void onClick(ClickEvent event) {
            doLoginAttempt();
        }
    });

    loginButton.getElement().addClassName("intake24-login-button");

    passwordTextBox.addKeyPressHandler(new KeyPressHandler() {
        public void onKeyPress(KeyPressEvent event) {
            if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER)
                doLoginAttempt();
        }
    });

    userNameTextBox.addKeyPressHandler(new KeyPressHandler() {
        public void onKeyPress(KeyPressEvent event) {
            if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER)
                doLoginAttempt();
        }
    });

    form.add(WidgetFactory.createButtonsPanel(loginButton));
    form.getElement().addClassName("intake24-login-form");

    container.add(header);
    formContainer.add(form);
    container.add(formContainer);

    initWidget(container);
}