Added custom portal view

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-portlet@73905 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Federico De Faveri 2013-04-23 15:22:01 +00:00
parent 0c78725475
commit ef56fdc786
1 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,118 @@
/**
*
*/
package org.gcube.portlets.user.td.client;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.Window;
import com.sencha.gxt.core.client.dom.XDOM;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
import com.sencha.gxt.widget.core.client.container.Viewport.ViewportAppearance;
/**
* @author "Federico De Faveri defaveri@isti.cnr.it"
*
*/
public class PortalViewport extends SimpleContainer {
protected int rightScrollBarSize = 17;
protected boolean enableScroll;
/**
* Creates a viewport layout container with the default appearance.
*/
public PortalViewport() {
this(GWT.<ViewportAppearance> create(ViewportAppearance.class));
}
/**
* Creates a viewport layout container with the specified appearance.
*
* @param appearance the appearance of the viewport layout container
*/
public PortalViewport(ViewportAppearance appearance) {
super(true);
SafeHtmlBuilder sb = new SafeHtmlBuilder();
appearance.render(sb);
setElement(XDOM.create(sb.toSafeHtml()));
monitorWindowResize = true;
getFocusSupport().setIgnore(false);
resize();
}
/**
* Returns true if window scrolling is enabled.
*
* @return true if window scrolling is enabled
*/
public boolean getEnableScroll() {
return enableScroll;
}
/**
* Sets whether window scrolling is enabled.
*
* @param enableScroll true to enable window scrolling
*/
public void setEnableScroll(boolean enableScroll) {
this.enableScroll = enableScroll;
Window.enableScrolling(enableScroll);
}
/**
* @return the rightScrollBarSize
*/
public int getRightScrollBarSize() {
return rightScrollBarSize;
}
/**
* @param rightScrollBarSize the rightScrollBarSize to set
*/
public void setRightScrollBarSize(int rightScrollBarSize) {
this.rightScrollBarSize = rightScrollBarSize;
}
@Override
protected void onAttach() {
setEnableScroll(enableScroll);
resize();
super.onAttach();
}
protected void resize()
{
int viewWidth = calculateWidth() - rightScrollBarSize;
int viewHeight = calculateHeight();
Log.trace("resize viewWidth: "+viewWidth+" viewHeight: "+viewHeight+" clientWidth: "+Window.getClientWidth()+" clientHeight: "+Window.getClientHeight());
setPixelSize(viewWidth, viewHeight);
}
/**
* {@inheritDoc}
*/
@Override
protected void onWindowResize(int width, int height) {
int viewWidth = calculateWidth();
int viewHeight = calculateHeight();
Log.trace("onWindowResize viewWidth: "+viewWidth+" viewHeight: "+viewHeight+" clientWidth: "+Window.getClientWidth()+" clientHeight: "+Window.getClientHeight());
setPixelSize(viewWidth, viewHeight);
}
protected int calculateWidth()
{
int leftBorder = getAbsoluteLeft();
return Window.getClientWidth() - 2 * leftBorder;
}
protected int calculateHeight()
{
int topBorder = getAbsoluteTop();
return Window.getClientHeight() - topBorder - 34;
}
}