123 lines
3.7 KiB
Java
123 lines
3.7 KiB
Java
/**
|
|
*
|
|
*/
|
|
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<FileModel> source = (TreePanel<FileModel>) event.getDragSource().getComponent();
|
|
List<FileModel> 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<TreeStoreModel> 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);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|