package com.vaadin.addon.spreadsheet.client; /* * #%L * Vaadin Spreadsheet * %% * Copyright (C) 2013 - 2015 Vaadin Ltd * %% * This program is available under Commercial Vaadin Add-On License 3.0 * (CVALv3). * * See the file license.html distributed with this software for more * information about licensing. * * You should have received a copy of the CVALv3 along with this program. * If not, see <http://vaadin.com/license/cval-3>. * #L% */ import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Style.Display; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.PopupPanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.ui.VWindow; public class PopupButtonHeader extends Widget { protected final static String CLASSNAME = PopupButtonWidget.POPUP_OVERLAY_CLASSNAME + "-header"; private DivElement root = Document.get().createDivElement(); private DivElement close = Document.get().createDivElement(); private DivElement caption = Document.get().createDivElement(); private PopupPanel popup; private SheetWidget sheetWidget; public PopupButtonHeader() { root.setClassName(CLASSNAME); close.setClassName(VWindow.CLASSNAME + "-closebox"); close.setAttribute("role", "button"); caption.setClassName("header-caption"); root.appendChild(close); root.appendChild(caption); Event.sinkEvents(close, Event.ONCLICK); Event.setEventListener(close, this); setElement(root); } public void setCaption(String caption) { this.caption.setInnerText(caption); } public void setPopup(PopupPanel popup) { this.popup = popup; } public void setSheet(SheetWidget sheetWidget) { this.sheetWidget = sheetWidget; } @Override public void onBrowserEvent(Event event) { if (event.getEventTarget().equals(close)) { popup.hide(); sheetWidget.focusSheet(); } else { super.onBrowserEvent(event); } } public void setHidden(boolean headerHidden) { getElement().getStyle().setDisplay( headerHidden ? Display.NONE : Display.BLOCK); } public boolean isHidden() { return Display.NONE.getCssName().equals( getElement().getStyle().getDisplay()); } }