001/** 002 * Copyright (C) 2014 Universidade de Aveiro, DETI/IEETA, Bioinformatics Group - http://bioinformatics.ua.pt/ 003 * 004 * This file is part of Dicoogle/dicoogle. 005 * 006 * Dicoogle/dicoogle is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * Dicoogle/dicoogle is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with Dicoogle. If not, see <http://www.gnu.org/licenses/>. 018 */ 019 020package pt.ua.dicoogle.rGUI.fileTransfer; 021 022import java.awt.Desktop; 023import java.awt.Image; 024import java.awt.Toolkit; 025import java.io.File; 026import java.io.IOException; 027import org.slf4j.Logger; 028import org.slf4j.LoggerFactory; 029import org.slf4j.Logger; 030import org.slf4j.LoggerFactory; 031import javax.swing.JOptionPane; 032import pt.ua.dicoogle.Main; 033import pt.ua.dicoogle.core.ClientSettings; 034import pt.ua.dicoogle.rGUI.RFileBrowser.RemoteFile; 035 036/** 037 * 038 * @author Samuel Campos <samuelcampos@ua.pt> 039 */ 040@Deprecated 041public class TransferStatus extends javax.swing.JFrame { 042 043 private RemoteFile file; 044 private String filePath; 045 046 /** Creates new form TransferStatus */ 047 public TransferStatus(RemoteFile file) { 048 initComponents(); 049 050 Image image = Toolkit.getDefaultToolkit().getImage(Thread.currentThread().getContextClassLoader().getResource("trayicon.gif")); 051 this.setIconImage(image); 052 053 this.file = file; 054 jProgressBar.setMaximum((int) file.length()); 055 jProgressBar.setMinimum(0); 056 jProgressBar.setValue(0); 057 jProgressBar.setStringPainted(true); 058 059 jButtonView.setEnabled(false); 060 jLabelFileName.setText(file.getName()); 061 jLabelFileSize.setText(String.valueOf(file.length())); 062 } 063 064 /** This method is called from within the constructor to 065 * initialize the form. 066 * WARNING: Do NOT modify this code. The content of this method is 067 * always regenerated by the Form Editor. 068 */ 069 @SuppressWarnings("unchecked") 070 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents 071 private void initComponents() { 072 073 jLabel1 = new javax.swing.JLabel(); 074 jLabelFileName = new javax.swing.JLabel(); 075 jLabel2 = new javax.swing.JLabel(); 076 jLabelFileSize = new javax.swing.JLabel(); 077 jProgressBar = new javax.swing.JProgressBar(); 078 jButtonView = new javax.swing.JButton(); 079 jLabelState = new javax.swing.JLabel(); 080 jLabel4 = new javax.swing.JLabel(); 081 jLabelProgress = new javax.swing.JLabel(); 082 083 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 084 setTitle("File Transfer"); 085 086 jLabel1.setFont(new java.awt.Font("Lucida Grande", 1, 13)); 087 jLabel1.setText("File:"); 088 089 jLabelFileName.setText("<FileName>"); 090 091 jLabel2.setFont(new java.awt.Font("Lucida Grande", 1, 13)); 092 jLabel2.setText("Size (Bytes):"); 093 094 jLabelFileSize.setText("<FileSize>"); 095 096 jButtonView.setText("View"); 097 jButtonView.addActionListener(new java.awt.event.ActionListener() { 098 public void actionPerformed(java.awt.event.ActionEvent evt) { 099 jButtonViewActionPerformed(evt); 100 } 101 }); 102 103 jLabelState.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N 104 jLabelState.setText("Downloading the file from the server.."); 105 106 jLabel4.setFont(new java.awt.Font("Lucida Grande", 1, 13)); 107 jLabel4.setText("Progress:"); 108 109 jLabelProgress.setText("<Progress>"); 110 111 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); 112 getContentPane().setLayout(layout); 113 layout.setHorizontalGroup( 114 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 115 .add(layout.createSequentialGroup() 116 .add(36, 36, 36) 117 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 118 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) 119 .add(jButtonView) 120 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 121 .add(jLabel4) 122 .add(jProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 323, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) 123 .add(jLabelState) 124 .add(layout.createSequentialGroup() 125 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 126 .add(jLabel2) 127 .add(jLabel1)) 128 .add(18, 18, 18) 129 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 130 .add(jLabelFileName) 131 .add(jLabelFileSize) 132 .add(jLabelProgress)))) 133 .addContainerGap(41, Short.MAX_VALUE)) 134 ); 135 layout.setVerticalGroup( 136 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 137 .add(layout.createSequentialGroup() 138 .add(26, 26, 26) 139 .add(jLabelState) 140 .add(18, 18, 18) 141 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 142 .add(jLabel1) 143 .add(jLabelFileName)) 144 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 145 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 146 .add(jLabel2) 147 .add(jLabelFileSize)) 148 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE) 149 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 150 .add(jLabel4) 151 .add(jLabelProgress)) 152 .add(7, 7, 7) 153 .add(jProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) 154 .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) 155 .add(jButtonView) 156 .addContainerGap()) 157 ); 158 159 pack(); 160 }// </editor-fold>//GEN-END:initComponents 161 162 private void jButtonViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonViewActionPerformed 163 if (ClientSettings.getInstance().getExtV() == null 164 || ClientSettings.getInstance().getExtV().equals("")) { 165 166 try { 167 Desktop.getDesktop().open(new File(filePath)); 168 169 } catch (IOException ex) { 170 String folder = filePath.substring(0, filePath.lastIndexOf('/')); 171 172 try { 173 Desktop.getDesktop().open(new File(folder)); 174 175 } catch (IOException ex1) { 176 JOptionPane.showMessageDialog(this, "Dicoogle can't open this file!", "Error opening the file", JOptionPane.ERROR_MESSAGE); 177 } 178 } 179 } else { 180 try { 181 ProcessBuilder pb = new ProcessBuilder(ClientSettings.getInstance().getExtV(), filePath); 182 pb.start(); 183 184 } catch (IOException ex) { 185 186 String folder = filePath.substring(0, filePath.lastIndexOf('/')); 187 188 try { 189 Desktop.getDesktop().open(new File(folder)); 190 191 } catch (IOException ex1) { 192 JOptionPane.showMessageDialog(this, "Dicoogle can't open this file!", "Error opening the file", JOptionPane.ERROR_MESSAGE); 193 } 194 } 195 } 196 }//GEN-LAST:event_jButtonViewActionPerformed 197 198 // Variables declaration - do not modify//GEN-BEGIN:variables 199 private javax.swing.JButton jButtonView; 200 private javax.swing.JLabel jLabel1; 201 private javax.swing.JLabel jLabel2; 202 private javax.swing.JLabel jLabel4; 203 private javax.swing.JLabel jLabelFileName; 204 private javax.swing.JLabel jLabelFileSize; 205 private javax.swing.JLabel jLabelProgress; 206 private javax.swing.JLabel jLabelState; 207 private javax.swing.JProgressBar jProgressBar; 208 // End of variables declaration//GEN-END:variables 209 210 public void setFilePath(String filePath){ 211 this.filePath = filePath; 212 } 213 214 public void setTransferedBytes(long size){ 215 long perc = (size * 100 / file.length()); 216 217 jProgressBar.setValue((int) size); 218 jProgressBar.setString(String.valueOf(perc) + "%"); 219 220 221 jLabelProgress.setText(String.valueOf(size)); 222 223 if(size == file.length()){ 224 jLabelState.setText("Download complete. Click 'View' button"); 225 226 if(this.filePath != null) 227 jButtonView.setEnabled(true); 228 } 229 } 230 231 public void errorInTransfer(String error){ 232 JOptionPane.showMessageDialog(this, error, 233 "Transfer Error", JOptionPane.ERROR_MESSAGE); 234 235 //closes this window 236 this.dispatchEvent(new java.awt.event.WindowEvent(this, 237 java.awt.Event.WINDOW_DESTROY)); 238 } 239}