package org.unc.hive.client; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.CaptionPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PushButton; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Panel; public class ClosablePanel extends SimplePanel { private VerticalPanel container; private HorizontalPanel header; private HorizontalPanel contentWrapper; private CaptionPanel filtering; private ScrollPanel content; private PushButton closeButton; private String headerStyle; private String headerText = ""; private boolean isOpened; private HTML headerHTML; public ClosablePanel() { super(); isOpened = false; header = new HorizontalPanel(); // header.setWidth("100%"); header.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); header.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); closeButton = new PushButton(new Image("./img/closebutton.png")); // closeButton.setStyleName("closebutton-style"); closeButton.setWidth("17px"); closeButton.setHeight("18px"); headerHTML = new HTML(); closeButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { // TODO Auto-generated method stub ClosablePanel.this.setIsOpened(false); ClosablePanel.this.removeFromParent(); } }); header.add(headerHTML); header.add(closeButton); container = new VerticalPanel(); container.add(header); contentWrapper = new HorizontalPanel(); container.add(contentWrapper); this.add(container); } public void setHeaderStyle(String style) { this.headerStyle = style; header.setStyleName(this.headerStyle); } public void setHeaderText(String text) { this.headerText = text; headerHTML.setHTML("<h4>Your search for<span> "+ this.headerText + "</span> returns following concepts:</h4>"); } public void setIsOpened(boolean isOpened) { this.isOpened = isOpened; } public boolean getIsOpened() { return this.isOpened; } public void setContent(ScrollPanel sp) { if (this.content == null) { this.content = sp; contentWrapper.add(content); } else { this.content.removeFromParent(); this.content = sp; this.contentWrapper.add(sp); } } public void setFiltering(CaptionPanel filtering) { if(this.filtering == null) { this.filtering = filtering; contentWrapper.add(filtering); } else { this.filtering.removeFromParent(); this.filtering = filtering; this.contentWrapper.add(filtering); } } public void reopen(Panel parent, ScrollPanel content) { this.isOpened = true; this.setContent(content); parent.add(this); } }