예제 #1
0
  public void sprayFileList(List<FileWrapper> list) {
    checkBoxList.clear();
    selectedFileSet.clear();
    flowPanel.clear();

    for (final FileWrapper fileWrapper : list) {
      final FlowPanel tempFlowPanel = new FlowPanel();
      flowPanel.add(tempFlowPanel);
      tempFlowPanel.getElement().getStyle().setProperty("margin", 50, Unit.PX);
      tempFlowPanel.getElement().getStyle().setProperty("textAlign", "center");
      tempFlowPanel.getElement().getStyle().setProperty("verticalAlign", "top");
      tempFlowPanel.getElement().getStyle().setProperty("display", "inline-block");
      tempFlowPanel.sinkEvents(Event.ONDBLCLICK);
      tempFlowPanel.sinkEvents(Event.ONCONTEXTMENU);

      final CheckBox chckbxFileName = new CheckBox(fileWrapper.getName());

      Image imgFileIcon;
      switch (fileWrapper.getKind()) {
        case DIR:
          imgFileIcon = new Image("/img/folder.png");
          tempFlowPanel.addHandler(
              new DoubleClickHandler() {
                public void onDoubleClick(DoubleClickEvent event) {
                  presenter.changeDirectory(fileWrapper.getPath());
                }
              },
              DoubleClickEvent.getType());
          tempFlowPanel.addHandler(
              new ContextMenuHandler() {
                public void onContextMenu(ContextMenuEvent event) {
                  event.preventDefault();
                  event.stopPropagation();
                  FileContextMenu fileContextMenu =
                      new FileContextMenu(
                          presenter,
                          ContextMenuType.DIRECTORY,
                          fileWrapper.getPath(),
                          selectedFileSet);
                  fileContextMenu.setPopupPosition(
                      event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());
                  fileContextMenu.show();
                  chckbxFileName.setValue(true, true);
                }
              },
              ContextMenuEvent.getType());
          break;

        default:
          imgFileIcon = new Image("/img/file.png");
          tempFlowPanel.addHandler(
              new DoubleClickHandler() {
                public void onDoubleClick(DoubleClickEvent event) {
                  presenter.downloadFiles(selectedFileSet);
                }
              },
              DoubleClickEvent.getType());
          tempFlowPanel.addHandler(
              new ContextMenuHandler() {
                public void onContextMenu(ContextMenuEvent event) {
                  event.preventDefault();
                  event.stopPropagation();
                  FileContextMenu fileContextMenu =
                      new FileContextMenu(
                          presenter,
                          ContextMenuType.OTHERS,
                          fileWrapper.getPath(),
                          selectedFileSet);
                  fileContextMenu.setPopupPosition(
                      event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());
                  fileContextMenu.show();
                  chckbxFileName.setValue(true, true);
                }
              },
              ContextMenuEvent.getType());
          break;
      }
      tempFlowPanel.add(imgFileIcon);
      imgFileIcon.setSize("128px", "128px");
      imgFileIcon.getElement().getStyle().setProperty("display", "block");

      checkBoxList.add(chckbxFileName);
      tempFlowPanel.add(chckbxFileName);
      chckbxFileName.addStyleName("iconName");
      chckbxFileName.getElement().getStyle().setProperty("display", "block");

      chckbxFileName.addClickHandler(clickHandlerStopPropagation);
      chckbxFileName.addValueChangeHandler(
          new ValueChangeHandler<Boolean>() {
            public void onValueChange(ValueChangeEvent<Boolean> event) {
              if (event.getValue()) {
                tempFlowPanel.getElement().getStyle().setBackgroundColor("lightblue");
                selectedFileSet.add(fileWrapper.getPath());
              } else {
                tempFlowPanel.getElement().getStyle().clearBackgroundColor();
                selectedFileSet.remove(fileWrapper.getPath());
              }

              if (!mntmDeleteFile.isEnabled() && selectedFileSet.size() > 0) {
                mntmDeleteFile.setEnabled(true);
              } else if (selectedFileSet.size() == 0) {
                mntmDeleteFile.setEnabled(false);
              }

              if (selectedFileSet.size() == 1
                  && !mntmDownloadFile.isEnabled()
                  && !mntmRenameFile.isEnabled()) {
                mntmDownloadFile.setEnabled(true);
                mntmRenameFile.setEnabled(true);
              } else if (selectedFileSet.size() != 1
                  && mntmDownloadFile.isEnabled()
                  && mntmRenameFile.isEnabled()) {
                mntmDownloadFile.setEnabled(false);
                mntmRenameFile.setEnabled(false);
              }
            }
          });

      imgFileIcon.addClickHandler(
          new ClickHandler() {
            public void onClick(ClickEvent event) {
              event.stopPropagation();
              setAllCheckBoxFalse();
              chckbxFileName.setValue(true, true);
            }
          });
      imgFileIcon.addMouseOverHandler(
          new MouseOverHandler() {
            public void onMouseOver(MouseOverEvent event) {
              if (!chckbxFileName.getValue())
                tempFlowPanel.getElement().getStyle().setBackgroundColor("lightgray");
            }
          });
      imgFileIcon.addMouseOutHandler(
          new MouseOutHandler() {
            public void onMouseOut(MouseOutEvent event) {
              if (!chckbxFileName.getValue())
                tempFlowPanel.getElement().getStyle().clearBackgroundColor();
            }
          });
    }
  }
예제 #2
0
파일: SearchBar.java 프로젝트: galderz/rhq
 private void setupStarImage() {
   StarImageEventHandler handler = new StarImageEventHandler();
   starImage.addClickHandler(handler);
   starImage.addMouseOverHandler(handler);
   starImage.addMouseOutHandler(handler);
 }
예제 #3
0
파일: BasicThumb.java 프로젝트: Odilio/kune
  /**
   * Instantiates a new basic thumb.
   *
   * @param imageRef This can be a ImageResource or a String Url
   * @param imgSize the img size
   * @param text the text
   * @param textMaxLenght the text max lenght
   * @param crop the crop
   * @param clickHandler the click handler
   */
  public BasicThumb(
      final Object imageRef,
      final int imgSize,
      final String text,
      final int textMaxLenght,
      final boolean crop,
      final ClickHandler clickHandler) {
    super();
    onOverLabel = false;
    panel = new VerticalPanel();
    if (imageRef instanceof String) {
      final String imageUrl = (String) imageRef;
      if (imgSize == NOSIZE) {
        image = new Image(imageUrl);
      } else {
        if (crop) {
          image = new Image(imageUrl, 0, 0, imgSize, imgSize);
        } else {
          image = new Image(imageUrl);
          image.setPixelSize(imgSize, imgSize);
        }
      }
    } else if (imageRef instanceof ImageResource) {
      image = new Image((ImageResource) imageRef);
      image.setPixelSize(imgSize, imgSize);
    } else {
      // This should not happen
      image = new Image();
      image.setPixelSize(imgSize, imgSize);
      Log.info("Unrecognized icon of BasicThumb: " + imageRef);
    }
    final String title = textMaxLenght == NOSIZE ? text : TextUtils.ellipsis(text, textMaxLenght);
    label = new Label(title);
    panel.add(image);
    panel.add(label);
    panel.addStyleName("k-basic-thumb");
    panel.addStyleName("kune-Margin-Mini-trbl");
    panel.addStyleName("k-pointer");
    panel.addStyleName("k-floatleft");
    panel.setCellHorizontalAlignment(label, VerticalPanel.ALIGN_CENTER);
    if (clickHandler != null) {
      addClickHandlerImpl(clickHandler);
    }
    image.addMouseOverHandler(
        new MouseOverHandler() {

          @Override
          public void onMouseOver(final MouseOverEvent event) {
            if (onOverLabel) {
              label.setVisible(true);
            }
          }
        });
    image.addMouseOutHandler(
        new MouseOutHandler() {

          @Override
          public void onMouseOut(final MouseOutEvent event) {
            if (onOverLabel) {
              label.setVisible(false);
            }
          }
        });
    setElement(panel.getElement());
  }