List of usage examples for com.google.gwt.user.client.ui HTMLPanel HTMLPanel
@SuppressIsSafeHtmlCastCheck
public HTMLPanel(String tag, @IsSafeHtml String html)
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); }