Bug 126658 [CommonNavigator] [DND] Complete definition of DND API
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewer.java
if (widget instanceof Item) {
			Item ti = (Item) widget;
			if (!getExpanded(ti)) {
				boolean needDummy = isExpandable(parentElement);
				boolean haveDummy = false;
				
				Item[] items = getItems(ti);
				for (int i = 0; i < items.length; i++) {
					if (items[i].getData() != null) {
						disassociate(items[i]);
						items[i].dispose();
					} else {
						if (needDummy && !haveDummy) {
							haveDummy = true;
						} else {
							items[i].dispose();
						}
					}
				}
				
				if (needDummy && !haveDummy)
					newItem(ti, SWT.NULL, -1);
				return;
			}
		}
		if (childElements.length > 0) {
			Object[] filtered = filter(childElements);
			if (getSorter() != null)