/** * */ package org.gcube.portlets.user.reportgenerator.client.targets; import java.util.List; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.model.FileModel; import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItemType; import org.gcube.portlets.user.workspace.client.workspace.folder.GWTFolderItem; import org.gcube.portlets.user.workspace.client.workspace.folder.GWTFolderItemType; import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTExternalImage; import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTImageDocument; import com.extjs.gxt.ui.client.dnd.DropTarget; import com.extjs.gxt.ui.client.dnd.Insert; import com.extjs.gxt.ui.client.dnd.DND.Operation; import com.extjs.gxt.ui.client.event.DNDEvent; import com.extjs.gxt.ui.client.store.TreeStoreModel; import com.extjs.gxt.ui.client.widget.Html; import com.extjs.gxt.ui.client.widget.treepanel.TreePanel; import com.google.gwt.core.client.GWT; /** * @author Massimiliano Assante assante@isti.cnr.it * */ public class DropImageListener extends DropTarget { /** * */ public static final String TIFF = "image/tiff"; protected DroppingArea panel; /** * * @param panel . * @param config . */ public DropImageListener(DroppingArea panel) { super(panel); this.panel = panel; //IMPORTANT setOperation(Operation.COPY); } @Override protected void showFeedback(DNDEvent event) { if (!isValidDropTarget(event)) { Insert.get().hide(); event.getStatus().setStatus(false); return; } super.showFeedback(event); } @SuppressWarnings("unchecked") private boolean isValidDropTarget(DNDEvent event) { GWT.log("isValidDropTarget"); TreePanel source = (TreePanel) event.getDragSource().getComponent(); List selection = source.getSelectionModel().getSelection(); for (FileModel model : selection) { GWT.log("selection: " + model.getGXTFolderItemType()); if(model.getGXTFolderItemType()!=null){ if (model.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.EXTERNAL_IMAGE) || model.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.IMAGE_DOCUMENT)) return true; // // if (model.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.TIME_SERIES)) // return true; // if(source.getStore().getParent(model) == target.getModel()) // return false; } } return false; } /** * @param source . * @param e . * @param data . * @return . */ protected void onDragDrop(DNDEvent event) { super.onDragDrop(event); if(event.getData() != null){ List listItemsSource = event.getData(); GWT.log("Number of move " + listItemsSource.size()); FileModel sourceFileModel = null; //for print for(TreeStoreModel itemSource : listItemsSource){ sourceFileModel = (FileModel) itemSource.getModel(); if(sourceFileModel.getParentFileModel()!=null) GWT.log("Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag " + " Parent Name: " + sourceFileModel.getParentFileModel().getName() + "id " + sourceFileModel.getParentFileModel().getIdentifier()); else GWT.log("Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag "); GWT.log("Child count: " + itemSource.getChildCount()); panel.fetchImage(sourceFileModel.getIdentifier(), false , true); } } } }