ckan-metadata-publisher-widget/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/DialogWorkspaceExplorer.java

114 lines
3.4 KiB
Java

package org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.resources;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.WorkspaceItemSelectedEvent;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectPanel;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.github.gwtbootstrap.client.ui.Button;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
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.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
public class DialogWorkspaceExplorer extends Composite {
private static DialogBoxWorkspaceUiBinder uiBinder = GWT.create(DialogBoxWorkspaceUiBinder.class);
interface DialogBoxWorkspaceUiBinder extends UiBinder<Widget, DialogWorkspaceExplorer> {
}
@UiField
Button okButton;
@UiField
Button cancelButton;
@UiField
FlowPanel panelContainer;
private DialogBox dialogBox;
private Item selectedItem;
private HandlerManager eventBus;
public DialogWorkspaceExplorer(DialogBox dialog, HandlerManager eventBus) {
initWidget(uiBinder.createAndBindUi(this));
this.dialogBox = dialog;
this.eventBus = eventBus;
FilterCriteria filterCriteria = null;
List<ItemType> selectableTypes = Arrays.asList(ItemType.DOCUMENT, ItemType.EXTERNAL_IMAGE,
ItemType.EXTERNAL_FILE, ItemType.EXTERNAL_PDF_FILE, ItemType.EXTERNAL_URL, ItemType.REPORT_TEMPLATE,
ItemType.REPORT, ItemType.CSV, ItemType.MOVIE, ItemType.ZIP, ItemType.RAR, ItemType.HTML, ItemType.XML,
ItemType.TEXT_PLAIN, ItemType.DOCUMENT, ItemType.PRESENTATION, ItemType.SPREADSHEET, ItemType.METADATA,
ItemType.PDF_DOCUMENT, ItemType.IMAGE_DOCUMENT, ItemType.URL_DOCUMENT, ItemType.GCUBE_ITEM,
ItemType.TIME_SERIES
);
WorkspaceExplorerSelectPanel selectDialog = new WorkspaceExplorerSelectPanel("Select the file...",
filterCriteria, selectableTypes);
selectDialog.setWidth("700px");
selectDialog.setHeight("370px");
WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {
GWT.log("onSelectedItem: " + item);
selectedItem = item;
}
@Override
public void onFailed(Throwable throwable) {
GWT.log("onFailed..");
}
@Override
public void onAborted() {
GWT.log("onAborted..");
}
@Override
public void onNotValidSelection() {
GWT.log("onNotValidSelection..");
}
};
selectDialog.addWorkspaceExplorerSelectNotificationListener(listener);
panelContainer.add(selectDialog);
}
@UiHandler("okButton")
void onOKClick(ClickEvent e) {
if(selectedItem!=null) {
eventBus.fireEvent(new WorkspaceItemSelectedEvent(selectedItem));
dialogBox.hide();
}
}
@UiHandler("cancelButton")
void onCancelClick(ClickEvent e) {
dialogBox.hide();
}
}