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); }