コード例 #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);
  }