/** * 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