private void openAlbum(String id) {
    try {
      ArrayList<String> titles = FigooPicasaClient.listPicasaAlbumTitle(picasa, id, this.usernamePicasa);
      ArrayList<String> ids = FigooPicasaClient.listPicasaAlbumID(picasa, id, this.usernamePicasa);
      String albumName = FigooPicasaClient.getAlbumNameByID(picasa, id, this.usernamePicasa);

      this.lastPicasaId = id;
      jButton11.setEnabled(false);
      jList2 = new JList();
      jList2.setName("0");
      jList2.addKeyListener(new MyKeyListener());
      jScrollPane2.setViewportView(jList2);
      DefaultListModel listModel = new DefaultListModel();
      jList2.setCellRenderer(new ListRenderer());
      jLabel2.setText("/picasa/" + albumName);
      final JList list2 = jList2;

      if (titles != null && ids != null) {

        Vector pole = new Vector();
        Vector pole2 = new Vector();

        JLabel icon;
        JPopupMenu popup;
        JMenuItem menuItem;
        popup = new JPopupMenu();
        menuItem = new JMenuItem("Open");
        Font font = menuItem.getFont();
        menuItem.setFont(new Font("Tahoma", Font.BOLD, 11));
        menuItem.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {

            ListModel lm = list2.getModel();
            JPanel dir = (JPanel) lm.getElementAt(list2.getSelectedIndex());
            openTempPicasaFile(dir.getName());
          }
        });
        popup.add(menuItem);

        menuItem = new JMenuItem("Modify");
        menuItem.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            modifyPicasa();
          }
        });
        popup.add(menuItem);

        menuItem = new JMenuItem("Download");
        menuItem.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            downloadPicasa(list2);
          }
        });
        popup.add(menuItem);

        menuItem = new JMenuItem("Delete");
        menuItem.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            deletePicasa();
          }
        });
        popup.add(menuItem);
        popup.addSeparator();
        menuItem = new JMenuItem("Properties");

        menuItem.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            propertiesDialog();
          }
        });
        popup.add(menuItem);

        JPanel p = new JPanel();
        p.setName("..");
        p.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));
        JLabel name = new JLabel("..");
        p.add(name);
        pole2.add(p);
        File tmp;
        for (int i = 0; i < titles.size(); i++) {

          p = new JPanel();
          p.setName(ids.get(i));
          p.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));
          name = new JLabel(titles.get(i));
          pole.add(p);

          tmp = File.createTempFile("aaaa", titles.get(i).substring(titles.get(i).lastIndexOf(".")));

          Icon image = getIcon(tmp);
          icon = new JLabel(image);
          p.add(icon);
          p.add(name);
        }

        final JPopupMenu popup2 = popup;

        jList2.addMouseListener(new MouseAdapter() {
          @Override
          public void mouseClicked(MouseEvent me) {
            if (SwingUtilities.isRightMouseButton(me)
                    && !list2.isSelectionEmpty()
                    && list2.locationToIndex(me.getPoint())
                    == list2.getSelectedIndex()) {
              popup2.show(list2, me.getX(), me.getY());
            }
          }
        });
        pole2.addAll(pole);
        jList2.setListData(pole2);

        jList2.addMouseListener(new DirectoryActionJList(jList2, 0));
        jList2.addKeyListener(null);
      }
    } catch (MalformedURLException ex) {
      ErrorDialog ed = new ErrorDialog(new javax.swing.JFrame(), true, "Open album", ex.getMessage());
      ed.setVisible(true);
    } catch (IOException ex) {
      ErrorDialog ed = new ErrorDialog(new javax.swing.JFrame(), true, "Open album", ex.getMessage());
      ed.setVisible(true);
    } catch (ServiceException ex) {
      ErrorDialog ed = new ErrorDialog(new javax.swing.JFrame(), true, "Open album", ex.getMessage());
      ed.setVisible(true);
      ex.printStackTrace();
    }
  }