package org.gwtoolbox.widget.client.panel.layout.drawer;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ResizeComposite;
import org.gwtoolbox.commons.ui.client.event.custom.ToggleHandler;
import org.gwtoolbox.widget.client.panel.layout.PanelLayout;
/**
* @author Uri Boness
*/
public class DrawerPane extends ResizeComposite {
private PanelLayout main;
private final Drawer drawer;
public DrawerPane(final DrawerLayout layout, final Drawer drawer) {
this.drawer = drawer;
main = new PanelLayout(drawer.getName());
switch (drawer.getPosition()) {
case LEFT:
main.setCloseTool(PanelLayout.Tools.SLIDE_LEFT);
break;
case RIGHT:
main.setCloseTool(PanelLayout.Tools.SLIDE_RIGHT);
break;
default:
main.setCloseTool(PanelLayout.Tools.SLIDE_DOWN);
}
main.setClosable(true);
main.addCloseHandler(new CloseHandler<PanelLayout>() {
public void onClose(CloseEvent<PanelLayout> panelLayoutCloseEvent) {
layout.hideDrawer(drawer.getPosition());
}
});
Image icon = drawer.getIcon();
if (icon != null) {
main.setIcon(icon);
}
main.setContent(drawer.getContent());
initWidget(main);
}
public void addTool(PanelLayout.Tool tool, ClickHandler handler) {
main.addTool(tool, handler);
}
public void addToggleTool(PanelLayout.ToggleTool tool, ToggleHandler handler) {
main.addToggleTool(tool, handler);
}
}