/**
   * Called when a component changed location within the layout
   *
   * @param event The drag and drop event
   */
  @Override
  protected void handleComponentReordering(DragAndDropEvent event) {
    AbsoluteLayoutTargetDetails details = (AbsoluteLayoutTargetDetails) event.getTargetDetails();
    DDAbsoluteLayout layout = (DDAbsoluteLayout) details.getTarget();
    LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable();
    Component component = transferable.getComponent();

    // Get top-left pixel position
    int leftPixelPosition = details.getRelativeLeft();
    int topPixelPosition = details.getRelativeTop();

    ComponentPosition position = layout.getPosition(component);

    position.setLeft((float) leftPixelPosition, Sizeable.UNITS_PIXELS);
    position.setTop((float) topPixelPosition, Sizeable.UNITS_PIXELS);
  }
Beispiel #2
0
    @SuppressWarnings("static-access")
    void reload() {
      Collection<?> children =
          folder == null
              ? DDTest6.get().tree1.rootItemIds()
              : DDTest6.get().tree1.getChildren(folder);
      if (children == null) {
        l.removeAllComponents();
        return;
      } else {
        // make modifiable
        children = new HashSet<Object>(children);
      }
      Set<Component> removed = new HashSet<Component>();
      for (Iterator<Component> componentIterator = l.getComponentIterator();
          componentIterator.hasNext(); ) {
        FileIcon next = (FileIcon) componentIterator.next();
        if (!children.contains(next.file)) {
          removed.add(next);
        } else {
          children.remove(next.file);
        }
      }

      for (Component component : removed) {
        l.removeComponent(component);
      }

      for (Object object : children) {
        FileIcon fileIcon = new FileIcon((File) object);
        l.addComponent(fileIcon);
        ComponentPosition position = l.getPosition(fileIcon);
        position.setTop(Float.valueOf((y++ / 5) % 5 * 100), UNITS_PIXELS);
        position.setLeft(Float.valueOf(x++ % 5 * 100), UNITS_PIXELS);
      }
    }
Beispiel #3
0
    @Override
    @SuppressWarnings("static-access")
    public void drop(DragAndDropEvent dropEvent) {

      if (dropEvent.getTransferable().getSourceComponent() instanceof FileIcon) {
        // update the position

        DragAndDropWrapper.WrapperTransferable transferable =
            (WrapperTransferable) dropEvent.getTransferable();
        MouseEventDetails mouseDownEvent = transferable.getMouseDownEvent();

        WrapperTargetDetails dropTargetDetails =
            (WrapperTargetDetails) dropEvent.getTargetDetails();

        MouseEventDetails mouseEvent = dropTargetDetails.getMouseEvent();

        int deltaX = mouseEvent.getClientX() - mouseDownEvent.getClientX();
        int deltaY = mouseEvent.getClientY() - mouseDownEvent.getClientY();

        ComponentPosition position = l.getPosition(transferable.getSourceComponent());
        position.setTop(position.getTopValue() + deltaY, UNITS_PIXELS);
        position.setLeft(position.getLeftValue() + deltaX, UNITS_PIXELS);

      } else if (dropEvent.getTransferable().getSourceComponent() == tree1) {

        // dragged something from tree to the folder shown

        File draggedFile = (File) ((DataBoundTransferable) dropEvent.getTransferable()).getItemId();
        DDTest6.get().setParent(draggedFile, folder);
      } else {
        // expecting this to be an html5 drag
        WrapperTransferable tr = (WrapperTransferable) dropEvent.getTransferable();
        Html5File[] files2 = tr.getFiles();
        if (files2 != null) {
          for (Html5File html5File : files2) {
            String fileName = html5File.getFileName();
            // int bytes = html5File.getFileSize();
            final ByteArrayOutputStream bas = new ByteArrayOutputStream();

            StreamVariable streamVariable =
                new StreamVariable() {

                  @Override
                  public OutputStream getOutputStream() {
                    return bas;
                  }

                  @Override
                  public boolean listenProgress() {
                    return false;
                  }

                  @Override
                  public void onProgress(StreamingProgressEvent event) {}

                  @Override
                  public void streamingStarted(StreamingStartEvent event) {}

                  @Override
                  public void streamingFinished(StreamingEndEvent event) {}

                  @Override
                  public void streamingFailed(StreamingErrorEvent event) {}

                  @Override
                  public boolean isInterrupted() {
                    return false;
                  }
                };

            html5File.setStreamVariable(streamVariable);

            File file = new File(fileName, bas);
            file.setType(html5File.getType());
            // FF don't know csv
            if (fileName.endsWith(".csv")) {
              file.setType("text/csv");
            }
            DDTest6.get().fs1.addBean(file);
            DDTest6.get().tree1.setChildrenAllowed(file, false);
            DDTest6.get().setParent(file, folder);
          }
        }
      }
    }