package org.ovirt.engine.ui.userportal.widget.basic; import org.ovirt.engine.ui.userportal.widget.UserPortalSplitLayoutPanel; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Widget; public class BasicViewSplitLayoutPanel extends UserPortalSplitLayoutPanel { private static final int SPLILLER_WIDTH_PX = 4; private final SafeHtml topBackgroundImage; private final SafeHtml middleBackgroundImage; interface SplitterTemplate extends SafeHtmlTemplates { @Template("<div style=\"width: {2}px; position: absolute; left: 0px; top: 0px; right: 0px; bottom: 2px\">{0}</div>" + "<div style=\"background-color: #3a5f7c; width: {2}px; position: absolute; left: 0px; top: 5px; right: 0px; bottom: 2px\">{1}</div>") SafeHtml dragger(SafeHtml topImage, SafeHtml middleImage, int width); } private static final SplitterTemplate template = GWT.create(SplitterTemplate.class); public BasicViewSplitLayoutPanel(ImageResource topBackgroundImage, ImageResource middleBackgroundImage) { super(SPLILLER_WIDTH_PX); this.topBackgroundImage = createImageWithStyle(topBackgroundImage, "position: absolute; top: " + 0 + "px; left: " + 0 + "px;"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ this.middleBackgroundImage = createImageWithStyle(middleBackgroundImage, "position: absolute; top: " + 50 + "%; left: " + 1 + "px;"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @Override public void addWest(Widget widget, double size) { int width = Window.getClientWidth(); // as it is not possible to set the width in ui.xml in percentage // it has to be set here super.addWest(widget, width * 0.6); } public void initWidget() { Element dragger = findElementByClassName(this.getElement(), "gwt-SplitLayoutPanel-HDragger"); //$NON-NLS-1$ if (dragger != null) { dragger.setInnerHTML( template.dragger( topBackgroundImage, middleBackgroundImage, SPLILLER_WIDTH_PX).asString() ); } } }