/*
* 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.tree;
import com.extjs.gxt.ui.client.core.El;
import com.extjs.gxt.ui.client.widget.tree.Tree.Joint;
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
/**
* @deprecated see {@link TreePanel}
*/
public class FastTreeItemUI extends DefaultTreeItemUI {
public FastTreeItemUI() {
styleTreeJointOver = "x-ftree-ec-over";
styleTreeOver = "x-ftree-node-over";
styleTreeSelected = "x-ftree-selected";
}
public void afterRender() {
if (item.root) return;
itemEl = item.getElement().getFirstChild().cast();
jointEl = itemEl.getFirstChild().cast();
iconEl = jointEl.getNextSibling().cast();
textEl = iconEl.getNextSibling().cast();
containerEl = new El((Element) itemEl.getNextSibling().cast());
containerEl.setVisible(false);
// item.updateJointStyle();
// item.disableTextSelection(true);
}
@Override
public Element getJointElement() {
return jointEl;
}
@Override
public native String getTemplate(String id, String text, String iconStyle, int joint, int level) /*-{
var j = "";
switch (joint) {
case(1):
j = "x-ftree-joint-plus";
break;
case(2):
j = "x-ftree-joint-minus";
break;
}
return ['<div id=' + id + ' class="x-tree-item x-ftree-arrows">',
'<div class="x-ftree-node x-ftree-collapsed">',
'<img src="gxt/images/default/shared/clear.gif" class="x-ftree-joint ' + j + '"></img><img src="gxt/images/default/shared/clear.gif" class="x-ftree-icon ' + iconStyle + '"></img><span class="x-ftree-text">' + text + '</span>',
'</div>',
'<div class="x-ftree-el-ct" style="margin-left: 18px"/></div>',
'</div>'].join("");
}-*/;
@Override
public boolean isSelectableTarget(Element target) {
if (DOM.isOrHasChild(jointEl, target)) {
return false;
}
return true;
}
@Override
public void onIconStyleChange(String style) {
if (style != null) {
fly(iconEl).setStyleAttribute("display", "");
fly(iconEl).setStyleName("x-ftree-icon " + style);
} else {
fly(iconEl).setStyleAttribute("display", "none");
}
}
@Override
public void onIndentChange(int indent) {
}
@Override
public void onJointChange(Joint joint) {
switch (joint) {
case NONE:
jointEl.setClassName("x-ftree-joint");
break;
case EXPANDED:
jointEl.setClassName("x-ftree-joint x-ftree-joint-minus");
break;
case COLLAPSED:
jointEl.setClassName("x-ftree-joint x-ftree-joint-plus");
break;
}
}
@Override
public void onSelectedChange(boolean selected) {
if (item.isRendered()) {
fly(itemEl).setStyleName(styleTreeSelected, selected);
if (!selected) {
onOverChange(false);
}
}
}
}