|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
- package com.vaadin.client;
-
- import com.google.gwt.dom.client.Element;
- import com.google.gwt.user.client.DOM;
- import com.google.gwt.user.client.ui.FlowPanel;
- import com.google.gwt.user.client.ui.HTML;
- import com.google.gwt.user.client.ui.Widget;
- import com.vaadin.client.ui.VOverlay;
-
- public class VErrorMessage extends FlowPanel {
- public static final String CLASSNAME = "v-errormessage";
-
- private Widget owner;
-
- public VErrorMessage() {
- super();
- setStyleName(CLASSNAME);
- }
-
- /**
- * Set the owner, i.e the Widget that created this {@link VErrorMessage}.
- * The owner must be set if the {@link VErrorMessage} is created
- * 'stand-alone' (not within a {@link VOverlay}), or theming might not work
- * properly.
- *
- * @see VOverlay#setOwner(Widget)
- * @param owner
- * the owner (creator Widget)
- */
- public void setOwner(Widget owner) {
- this.owner = owner;
- }
-
- public void updateMessage(String htmlErrorMessage) {
- clear();
- if (htmlErrorMessage == null || htmlErrorMessage.length() == 0) {
- add(new HTML(" "));
- } else {
- // pre-formatted on the server as div per child
- add(new HTML(htmlErrorMessage));
- }
- }
-
- /**
- * Shows this error message next to given element.
- *
- * @param indicatorElement
- * @deprecated As of 7.2, call and override {@link #showAt(Element)} instead
- */
- @Deprecated
- public void showAt(com.google.gwt.user.client.Element indicatorElement) {
- VOverlay errorContainer = (VOverlay) getParent();
- if (errorContainer == null) {
- errorContainer = new VOverlay();
- errorContainer.setWidget(this);
- errorContainer.setOwner(owner);
- }
- errorContainer.setPopupPosition(
- DOM.getAbsoluteLeft(indicatorElement)
- + 2 * DOM.getElementPropertyInt(indicatorElement,
- "offsetHeight"),
- DOM.getAbsoluteTop(indicatorElement)
- + 2 * DOM.getElementPropertyInt(indicatorElement,
- "offsetHeight"));
- errorContainer.show();
-
- }
-
- /**
- * Shows this error message next to given element.
- *
- * @param indicatorElement
- *
- * @since 7.2
- */
- public void showAt(Element indicatorElement) {
- showAt(DOM.asOld(indicatorElement));
- }
-
- public void hide() {
- final VOverlay errorContainer = (VOverlay) getParent();
- if (errorContainer != null) {
- errorContainer.hide();
- }
- }
- }
|