コード例 #1
0
ファイル: GalleryPanel.java プロジェクト: ssinica/ssgallery
  protected void applyImages(String folderId, String selectedImageId, JSONObject json) {

    JSONObject jsonObj = JSONHelper.getObject(json, "data");

    totalImagesCount = JSONHelper.getInteger(jsonObj, "totalImagesCount");
    prevImageId = JSONHelper.getString(jsonObj, "prevImageId");
    nextImageId = JSONHelper.getString(jsonObj, "nextImageId");
    startIndex = JSONHelper.getPrimitiveInt(jsonObj, "startIndex");

    // parse images
    List<ClientImage> images =
        JSONHelper.getArray(
            jsonObj,
            "images",
            new ValueParser<ClientImage>() {
              @Override
              public ClientImage parse(JSONValue jsonValue) {
                JSONObject json = jsonValue.isObject();
                String id = JSONHelper.getString(json, "id");
                return new ClientImage(id);
              }
            });
    if (GWTUtils.isEmpty(images)) {
      Window.alert("Failed to load images list");
      return;
    }
    loadedImages.clear();
    loadedImages.addAll(images);

    // parse folder
    JSONObject folderJson = JSONHelper.getObject(jsonObj, "folder");
    if (folderJson == null) {
      Window.alert("Failed to get images list!");
      return;
    }
    String folderCaption = JSONHelper.getString(folderJson, "caption");
    long folderSize = JSONHelper.getPrimitiveLong(json, "folderSize");
    int imagesCount = JSONHelper.getPrimitiveInt(json, "imagesCount");
    selectedFolder = new ClientFolder(folderId, folderCaption, null, folderSize, imagesCount);

    if (GWTUtils.isEmpty(selectedImageId)) {
      selectedImageId = loadedImages.get(0).getId();
      History.newItem(folderId + "/" + selectedImageId, false);
    }

    // paint folder, big photo, small images
    showImages(selectedFolder, selectedImageId, images, true);
  }
コード例 #2
0
ファイル: GalleryPanel.java プロジェクト: ssinica/ssgallery
  private void initUI() {
    History.addValueChangeHandler(this);
    addDomHandler(this, ClickEvent.getType());
    GWTUtils.setUidToElement(UID_CAPTION_CLICK, elCaption);
    GWTUtils.setUidToElement(UID_LOGIN, elLogin);
    GWTUtils.setUidToElement(UID_LOGOUT, elLogout);

    JSONObject json = JSONHelper.getJsonFromElement(Actions.JSON_DATA_EL_ID);
    String loggedInUser = null;
    if (json != null) {
      loggedInUser = JSONHelper.getString(json, "user");
    }
    setCurrentUser(loggedInUser);
  }
コード例 #3
0
ファイル: GalleryPanel.java プロジェクト: ssinica/ssgallery
  private void processClickEvent(String uid, JSONObject json) {
    if (UID_FOLDER_CLICK.equals(uid)) {
      String folderId = JSONHelper.getString(json, "folderId");
      History.newItem(folderId);
    } else if (UID_CAPTION_CLICK.equals(uid)) {
      History.newItem("");
    } else if (UID_SMALL_IMAGE_CLICK.equals(uid)) {
      String folderId = JSONHelper.getString(json, "folderId");
      String imageId = JSONHelper.getString(json, "imageId");
      History.newItem(folderId + "/" + imageId);

      FullScreenHelper.startFullscreen(elBigPhotoW);

    } else if (UID_SMALL_LEFT.equals(uid)) {
      if (selectedFolder == null || GWTUtils.isEmpty(prevImageId)) {
        Window.alert("No more images");
      } else {
        loadSmallImages(selectedFolder.getId(), prevImageId, false);
        History.newItem(selectedFolder.getId() + "/" + prevImageId, false);
      }
    } else if (UID_SMALL_RIGHT.equals(uid)) {
      if (selectedFolder == null || GWTUtils.isEmpty(nextImageId)) {
        Window.alert("No more images");
      } else {
        loadSmallImages(selectedFolder.getId(), nextImageId, true);
        History.newItem(selectedFolder.getId() + "/" + nextImageId, false);
      }
    } else if (UID_LOGIN.equals(uid)) {
      login();
    } else if (UID_LOGOUT.equals(uid)) {
      logout();
    } else if (UID_ROTATE_LEFT.equals(uid)) {
      rotate(true);
    } else if (UID_ROTATE_RIGHT.equals(uid)) {
      rotate(false);
    }
  }