/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.ui.client.widget.custom;
import com.extjs.gxt.ui.client.fx.Draggable;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Layout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
/**
* A specialized content panel contained in a Portal.
*
* <dl>
* <dt>Inherited Events:</dt>
* <dd>ContentPanel BeforeExpand</dd>
* <dd>ContentPanel Expand</dd>
* <dd>ContentPanel BeforeCollapse</dd>
* <dd>ContentPanel Collapse</dd>
* <dd>ContentPanel BeforeClose</dd>
* <dd>ContentPanel Close</dd>
* <dd>LayoutContainer AfterLayout</dd>
* <dd>ScrollContainer Scroll</dd>
* <dd>Container BeforeAdd</dd>
* <dd>Container Add</dd>
* <dd>Container BeforeRemove</dd>
* <dd>Container Remove</dd>
* <dd>BoxComponent Move</dd>
* <dd>BoxComponent Resize</dd>
* <dd>Component Enable</dd>
* <dd>Component Disable</dd>
* <dd>Component BeforeHide</dd>
* <dd>Component Hide</dd>
* <dd>Component BeforeShow</dd>
* <dd>Component Show</dd>
* <dd>Component Attach</dd>
* <dd>Component Detach</dd>
* <dd>Component BeforeRender</dd>
* <dd>Component Render</dd>
* <dd>Component BrowserEvent</dd>
* <dd>Component BeforeStateRestore</dd>
* <dd>Component StateRestore</dd>
* <dd>Component BeforeStateSave</dd>
* <dd>Component SaveState</dd>
* </dl>
*/
public class Portlet extends ContentPanel {
private boolean pinned = false;
public Portlet() {
this(new FlowLayout());
addStyleName("x-portlet");
}
public Portlet(Layout layout) {
super(layout);
setFrame(true);
getHeader().setStyleAttribute("cursor", "move");
setBodyStyle("backgroundColor: white;");
}
/**
* True to "pin" the porlet and stop the user from being able to move the
* portlet (defauls to false).
*
* @param pinned true for pinned
*/
public void setPinned(boolean pinned) {
this.pinned = pinned;
String c = pinned ? "default" : "move";
getHeader().setStyleAttribute("cursor", c);
if (getData("gxt.draggable") != null) {
Draggable d = (Draggable) getData("gxt.draggable");
d.setEnabled(!pinned);
}
}
/**
* Returns true if the portal is pinned.
*
* @return true if pinned
*/
public boolean isPinned() {
return pinned;
}
}