public static void showPicasaGallery(Long id, String name) {
    notFoundIfNull(id);
    PicasaGallery gallery = PicasaGallery.findById(id);
    notFoundIfNull(gallery);

    PicasawebService service = new PicasawebService("portfolio");
    List<PhotoEntry> photoEntries = Collections.emptyList();
    try {
      java.net.URL feedUrl = new java.net.URL(gallery.getFeedUrl());

      AlbumFeed feed = service.getFeed(feedUrl, AlbumFeed.class);
      photoEntries = feed.getPhotoEntries();
    } catch (MalformedURLException e) {
      Logger.error("Service URL for Picasa is not well formed");
      e.printStackTrace();
    } catch (IOException e) {
      Logger.error("Error I/O while communicating with Picasa Service");
      e.printStackTrace();
    } catch (ServiceException e) {
      Logger.error("Picasa service error");
      e.printStackTrace();
    }

    List<ImageView> images = new ArrayList<ImageView>();
    for (PhotoEntry entry : photoEntries) {
      ImageView image = new ImageView();
      // We take the largest
      image.thumbnail =
          entry.getMediaThumbnails().get(entry.getMediaThumbnails().size() - 1).getUrl();
      image.url = entry.getMediaContents().get(0).getUrl();
      images.add(image);
    }

    render("Application/gallery.html", images, gallery);
  }
예제 #2
0
 public ImplRaceDriverService() throws IOException, ServiceException {
   drivers = new ArrayList<RaceDriver>();
   Query myQuery = new Query(feedURL);
   myQuery.setStringCustomParameter("kind", "photo");
   myQuery.setStringCustomParameter("tag", "Driver");
   AlbumFeed feed = picasawebService.query(myQuery, AlbumFeed.class);
   for (PhotoEntry photo : feed.getPhotoEntries()) {
     RaceDriver driver = new RaceDriver();
     driver.setName(photo.getDescription().getPlainText());
     driver.setUrl(photo.getMediaContents().get(0).getUrl());
     Query tagQuery =
         new Query(
             new URL(
                 "https://picasaweb.google.com/data/feed/api/user/107302466601293793664/albumid/"
                     + photo.getAlbumId()
                     + "/photoid/"
                     + photo.getGphotoId()
                     + "?kind=tag"));
     AlbumFeed tags = picasawebService.query(tagQuery, AlbumFeed.class);
     for (TagEntry tag : tags.getTagEntries()) {
       if (tag.getTitle().getPlainText().startsWith("wiki:")) {
         driver.setWikiUrl(tag.getTitle().getPlainText().substring(5));
       }
     }
     drivers.add(driver);
   }
 }