Bug 120072 Support intellisense for "this" object in script editor & expression builder.
In BIRT, "this" object in javaScript methods represents the current report item or report item instamnce, for example, "this" object represents an ILabel object in label report item's onPrepare() method, and an ILabelInstance object in label report item's onCreate() and onRender() method. Script editor should support inteli-sense for "this" object for all report items. DE will define those methods using standard ROM method defintion, and the first argument will be the "this" object. This is also consistent with eventhandler interface defined for java event handler. Script editor (GUI) should use DE-API to get the classtype of the first argument of the current method, and use reflection to get all the methods defined on this classes, and display after the "this." is enetered.
UI/org.eclipse.birt.report.designer.ui.lib.explorer/src/org/eclipse/birt/report/designer/ui/lib/explorer/LibraryExplorerTreeViewPage.java
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseTrackAdapter;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.PlatformUI;
import org.osgi.service.prefs.BackingStoreException;
/**
 * This class represents the tree view page of the data view
 * 
 */
public class LibraryExplorerTreeViewPage extends LibraryExplorerViewPage implements
		Listener,
		IValidationListener,
		ActivityStackListener,
		IPreferenceChangeListener
{
	private static final String LABEL_DOUBLE_CLICK = Messages.getString( "DataViewTreeViewerPage.tooltip.DoubleClickToEdit" ); 
	private ListenerElementVisitor visitor = new ListenerElementVisitor( this );
	private List dataSetsToRefresh = new ArrayList( );
	private ILibraryProvider libraryProvider;
	private IEclipsePreferences reportPreferenceNode;
	private TreeViewer treeViewer;
	/**
	 * constructor