Java 类com.vaadin.ui.DragAndDropWrapper.WrapperTransferable 实例源码

项目:hybridbpm    文件:ProcessModelLayout.java   
@Override
public void drop(DragAndDropEvent event) {
    WrapperTransferable transfrable = (WrapperTransferable) event.getTransferable();
    WrapperTargetDetails details = (WrapperTargetDetails) event.getTargetDetails();
    System.out.println("transfrable " + transfrable.getClass().getCanonicalName());
    System.out.println("transfrable.getDraggedComponent() " + transfrable.getDraggedComponent().getClass().getCanonicalName());
    if (transfrable.getDraggedComponent() instanceof Button) {
        // Calculate the drag coordinate difference
        int xChange = details.getMouseEvent().getClientX() - transfrable.getMouseDownEvent().getClientX();
        int yChange = details.getMouseEvent().getClientY() - transfrable.getMouseDownEvent().getClientY();

        // Move the component in the absolute layout
        AbsoluteLayout.ComponentPosition componentPosition = processModelLayout.getPosition(transfrable.getSourceComponent());
        componentPosition.setLeftValue(componentPosition.getLeftValue() + xChange);
        componentPosition.setTopValue(componentPosition.getTopValue() + yChange);

        ElementModelLayout elementModelLayout = (ElementModelLayout) ((Button) transfrable.getDraggedComponent()).getParent();
        TaskModel elementModel = elementModelLayout.getTaskModel();
        elementModel.setX(componentPosition.getLeftValue());
        elementModel.setY(componentPosition.getTopValue());
        processModel.getTaskModels().put(elementModel.getId(), elementModel);
        transitionManager.setValue(processModel.getTaskModels(), processModel.getTransitionModels());
        setTaskActive(elementModel);
    }
}
项目:hawkbit    文件:UploadLayout.java   
@Override
public void drop(final DragAndDropEvent event) {
    if (validate(event)) {
        final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles();
        // selected software module at the time of file drop is
        // considered for upload

        artifactUploadState.getSelectedBaseSwModuleId().ifPresent(selectedSwId -> {
            // reset the flag
            hasDirectory = false;
            final SoftwareModule softwareModule = softwareModuleManagement.get(selectedSwId)
                    .orElse(null);
            for (final Html5File file : files) {
                processFile(file, softwareModule);
            }
            if (artifactUploadState.getNumberOfFileUploadsExpected().get() > 0) {
                processBtn.setEnabled(false);
            } else {
                // If the upload is not started, it signifies all
                // dropped files as either duplicate or directory.So
                // display message accordingly
                displayCompositeMessage();
            }
        });
    }
}
项目:hawkbit    文件:UploadLayout.java   
private boolean isFilesDropped(final DragAndDropEvent event) {
    if (event.getTransferable() instanceof WrapperTransferable) {
        final Html5File[] files = ((WrapperTransferable) event.getTransferable()).getFiles();
        return files != null;
    }
    return false;
}