package eu.dnetlib.client.shared;

import com.google.gwt.event.dom.client.ContextMenuEvent;
import com.google.gwt.event.dom.client.ContextMenuHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.Widget;

public class RightClickMenu extends Composite implements ContextMenuHandler {

	private Widget base;
	private PopupPanel contextMenu;
 
	public RightClickMenu(PopupPanel contextMenu, Widget base) {
		// initialize base widget, etc...
		this.base = base;
		this.contextMenu = contextMenu;
 		this.contextMenu.hide();
		initWidget(this.base);

		// of course it would be better if base would implement
		// HasContextMenuHandlers, but the effect is the same
		addDomHandler(this, ContextMenuEvent.getType());
	}

	public void onContextMenu(ContextMenuEvent event) {
		// stop the browser from opening the context menu
		event.preventDefault();
		event.stopPropagation();
		this.contextMenu.setPopupPosition(event.getNativeEvent().getClientX(),  event.getRelativeElement().getAbsoluteTop());

		this.contextMenu.show();
		
	}

}