Bug 205930 2.2.2 Cube Builder: Dragging a dimension from cube builder should show all the associated levels.
The current behavior is that user drags the data field from the cube and to show the hierarchy, he has to click on Show/Hide columns and select the underlying field. Proposed Solution: When the user selects the Product Line as group. Product Name is the underlying field. When user drags the Product Line field from the cube, Product Name should also follow through. If user does not want to show the Product Name, he can choose to hide it from show/hide group levels. User should also be able to add levels from the Data Cube in Data Explorer by dragging them to the cross tab.
UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dnd/DNDService.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.eclipse.birt.report.designer.internal.ui.dialogs.BaseDialog;
import org.eclipse.birt.report.designer.internal.ui.util.Policy;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionDelta;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IRegistryChangeEvent;
import org.eclipse.core.runtime.IRegistryChangeListener;
import org.eclipse.core.runtime.Platform;
/**
 * 1.register adapters with priority 2.look for capable adapter by priority
 */
public class DNDService implements IRegistryChangeListener
{
	public static int LOGIC_TRUE = 1;
	public static int LOGIC_FALSE = -1;
	public static int LOGIC_UNKNOW = 0;
	private List adapterList = new ArrayList( );
	private Map adapterPriorityMap = new HashMap( );
	private List dragAdapterList = new ArrayList( );
	private List dropAdapterList = new ArrayList( );
	private static class DNDServiceInstance {