/** * */ package org.gcube.portlets.user.workspaceexplorerapp.client.grid; import org.gcube.portlets.user.workspaceexplorerapp.client.download.DownloadType; import org.gcube.portlets.user.workspaceexplorerapp.client.event.DownloadItemEvent; import org.gcube.portlets.user.workspaceexplorerapp.shared.Item; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; import gwt.material.design.client.ui.MaterialLink; /** * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * Mar 8, 2016 */ public class MenuMoreOptionsOnItem extends Composite { private static MenuMoreOptionsOnItemUiBinder uiBinder = GWT.create(MenuMoreOptionsOnItemUiBinder.class); interface MenuMoreOptionsOnItemUiBinder extends UiBinder { } @UiField MaterialLink open; @UiField MaterialLink download; private HandlerManager eventBus; private Item itemToDownload; private Command commandOnClick; public MenuMoreOptionsOnItem(HandlerManager eventBus) { initWidget(uiBinder.createAndBindUi(this)); this.eventBus = eventBus; download.addClickHandler(new ClickHandler() { /* (non-Javadoc) * @see com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event.dom.client.ClickEvent) */ @Override public void onClick(ClickEvent event) { MenuMoreOptionsOnItem.this.eventBus.fireEvent(new DownloadItemEvent(itemToDownload, DownloadType.DOWNLOAD)); GWT.log("commandOnClick " + commandOnClick); if(commandOnClick!=null) commandOnClick.execute(); } }); open.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { MenuMoreOptionsOnItem.this.eventBus.fireEvent(new DownloadItemEvent(itemToDownload, DownloadType.OPEN)); GWT.log("commandOnClick " + commandOnClick); if(commandOnClick!=null) commandOnClick.execute(); } }); } /** * Inits the on item. * * @param itemToDownload the item to download * @param commandOnClick the command on click */ public void initOnItem(Item itemToDownload, Command commandOnClick){ this.itemToDownload = itemToDownload; this.commandOnClick = commandOnClick; } }