/* * Ext GWT 2.2.4 - Ext for GWT * Copyright(c) 2007-2010, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.ui.client.dnd; import com.extjs.gxt.ui.client.core.XDOM; import com.extjs.gxt.ui.client.widget.BoxComponent; import com.google.gwt.user.client.Element; /** * A custom component used to show insert locations with drop targets. */ public class Insert extends BoxComponent { private static Insert instance; public static Insert get() { if (instance == null) { instance = new Insert(); instance.render(XDOM.getBody()); } return instance; } Insert() { setShadow(false); hide(); } public void show(Element c) { c.insertBefore(getElement(), null); show(); } @Override protected void onHide() { super.onHide(); el().remove(); } @Override protected void onRender(Element target, int index) { super.onRender(target, index); StringBuffer sb = new StringBuffer(); sb.append("<table class=\"x-insert-bar\" height=\"6\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr>"); sb.append("<td height=\"6\" class=\"x-insert-left\"><div style=\"width: 3px\"></div></td>"); sb.append("<td class=\"x-insert-mid\" width=\"100%\"> </td>"); sb.append("<td class=\"x-insert-right\"><div style=\"width: 3px\"></div></td>"); sb.append("</tr></tbody></table>"); setElement(XDOM.create(sb.toString()), target, index); } @Override protected void onShow() { super.onShow(); if (!el().isConnected()) { XDOM.getBody().insertBefore(getElement(), null); } } }