示例#1
0
  /**
   * Accionado quando se faz clique no botao para extrair um ficheiro.
   *
   * <p>Permite extrair o conteudo de um ficheiro selecionado pelo utilizador. A extracção só será
   * possivel caso o objecto selecionado seja um ficheiro.
   *
   * <p>É lançado uma excepção caso a extracção falhe.
   *
   * @param evt
   */
  private void jMenuItem6ActionPerformed(
      java.awt.event.ActionEvent evt) { // GEN-FIRST:event_jMenuItem6ActionPerformed
    try {
      // verificar a seleccão
      int row = jTable1.getSelectedRow();
      Object obj = jTable1.getModel().getValueAt(row, 0);
      if (obj instanceof RFPFileHeader) {
        final JFileChooser fc = new JFileChooser();
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int returnVal = fc.showOpenDialog(this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
          File dir = fc.getCurrentDirectory();
          File dest = fc.getSelectedFile();

          if ((int) (((RFPFileHeader) obj).getFlags() & RFPBinaryFile.RFP_COMPRESSED)
              == RFPBinaryFile.RFP_COMPRESSED) {
            rfpFile.decompressFile(((RFPFileHeader) obj).getFilenameId(), dest.getPath());

          } else {
            rfpFile.extractFile(((RFPFileHeader) obj).getFilenameId(), dest.getPath());
          }
        }
      } else {
        JOptionPane.showMessageDialog(
            null,
            "Impossivel extrair ficheiro.",
            "Extração de Ficheiro",
            JOptionPane.ERROR_MESSAGE);
      }
    } catch (Exception ex) {
      JOptionPane.showMessageDialog(
          null, "Impossivel extrair ficheiro.", "Extração de Ficheiro", JOptionPane.ERROR_MESSAGE);
    }
  } // GEN-LAST:event_jMenuItem6ActionPerformed