codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPFile;
import it.sauronsoftware.ftp4j.FTPDataTransferListener;
import java.io.File;
import java.util.Date;
public class applet2 extends JApplet {
private JTextField testo;
private int numeroStampato;
private boolean animazioneAttiva;
javax.swing.Timer tempor;
private JTextField testoFile;
private JTextField testoDim;
private JTextField testoOperazione;
private JTextField testoRisultato;
private JButton bottoneStopGo;
private JProgressBar bar;
private int totale = 0;
private ftp ftp = null;
private provaTimer pt;
//**************************
public class provaTimer
{
private java.util.Timer timer;
public provaTimer ()
{
timer = new java.util.Timer();
//timer.schedule(new RemindTask (),seconds*1000 );
timer.schedule(new RemindTask (), 1000);
}
public void stopTimer()
{
ftp.chiudi();
timer.cancel();
}
class RemindTask extends TimerTask
{
public void run()
{
if (ftp != null)
ftp.apri();
}
}
}
//**************************
@Override
public void init()
{
ftp = new ftp();
String nomeFile = "nomeFile.zip";
String dimensione = "254";
String operazione = "clicca su invia...";
String result = "...";
String param = getParameter("pathfile");
if (param == null)
nomeFile = "nomeFile.zip";
else
nomeFile = param;
testoFile = new JTextField(25);
testoFile.setEditable(false);
testoFile.setBackground(Color.WHITE);
testoFile.setForeground(Color.RED);
testoFile.setText(nomeFile);
testoDim = new JTextField(11);
testoDim.setEditable(false);
testoDim.setBackground(Color.WHITE);
testoDim.setForeground(Color.RED);
testoDim.setText(dimensione);
bar = new JProgressBar(0,100);
bar.setValue(0);
bar.setStringPainted(true);
testoOperazione = new JTextField(20);
testoOperazione.setEditable(false);
testoOperazione.setBackground(Color.WHITE);
testoOperazione.setForeground(Color.BLUE);
testoOperazione.setText(operazione);
testoRisultato = new JTextField(10);
testoRisultato.setEditable(false);
testoRisultato.setBackground(Color.WHITE);
testoRisultato.setForeground(Color.BLUE);
testoRisultato.setText(result);
bottoneStopGo = new JButton("invia");
bottoneStopGo.addActionListener(new RicevitoreBottone());
testo = new JTextField(4);
testo.setText("0");
numeroStampato = 1;
totale = Integer.parseInt(dimensione);
System.out.println(totale);
animazioneAttiva = false;
tempor = new javax.swing.Timer(1000, new RicevitoreEventi());
// Definisco il layout dell'applet:
Container pannelloApplet = getContentPane();
pannelloApplet.setLayout(new BorderLayout());
// inseriremo i bottoni non direttamente nell'applet,
// ma in un pannello che verra' inserito nel centro dell'
// applet. Costruiamo il pannello:
JPanel pannelloTesti = new JPanel();
pannelloTesti.setLayout(new GridLayout(1, 2));
// definisco il colore di fondo del pannelloBottoni:
pannelloTesti.setBackground(Color.GRAY);
pannelloTesti.add(testoFile);
pannelloTesti.add(testoDim);
// inserisco il pannelloTesti nel nord dell'applet:
pannelloApplet.add(pannelloTesti, BorderLayout.NORTH);
JPanel pannelloSud = new JPanel();
pannelloSud.setLayout(new GridLayout(1, 1));
// definisco il colore di fondo del pannelloBottoni:
pannelloSud.setBackground(Color.GRAY);
pannelloSud.add(bar);
pannelloApplet.add(pannelloSud, BorderLayout.SOUTH);
JPanel pannelloCentro = new JPanel();
pannelloCentro.setLayout(new GridLayout(5, 1));
// definisco il colore di fondo del pannelloBottoni:
pannelloCentro.setBackground(Color.GRAY);
pannelloCentro.add(testoOperazione);
pannelloCentro.add(testoRisultato);
pannelloCentro.add(bottoneStopGo);
pannelloCentro.add(testo);
// inserisco il pannelloTesti nel centro dell'applet:
pannelloApplet.add(pannelloCentro, BorderLayout.CENTER);
}
class RicevitoreEventi implements ActionListener {
public void actionPerformed(ActionEvent e) {
testo.setText("" + numeroStampato);
numeroStampato++;
}
}
class RicevitoreBottone implements ActionListener {
public void actionPerformed(ActionEvent e)
{
if (animazioneAttiva)
{ // quando clicco su annulla
tempor.stop();
//ftp.chiudi();
pt.stopTimer();
numeroStampato=1;
animazioneAttiva = false;
bottoneStopGo.setText("Invia");
testoRisultato.setText("Operazione Annullata");
}
else { // quando clicco su invia
tempor.start();
animazioneAttiva = true;
bottoneStopGo.setText("Annulla");
//ftp.apri();
pt = new provaTimer();
testoRisultato.setText("Trasferimento in corso");
}
}
}
@Override
public void stop() {
tempor.stop();
//ftp.chiudi();
pt.stopTimer();
numeroStampato = 1;
animazioneAttiva = false;
bottoneStopGo.setText("Invia");
testoRisultato.setText("Operazione Terminata");
}
public class Mail {
private String host = ..... e tutte le info per invio delle mail
public Mail (String cella, String descr, String data_ita, int vuota)
{
try {
//initialize the StringBuffer object within the try/catch loop
//Get system properties
//Setup mail server
//Get session
//Define message
//Set the from address
//set more destinations
//Oggetto della mail
msg.setSubject(cella+ " UPLOAD");
if(vuota==1){
//Il corpo della mail
sb.append(cella+" UPLOAD "+" file "+descr+" in data "+data_ita);
}
if(vuota==0){
//Il corpo della mail
sb.append(cella+" UPLOAD "+" file "+descr+" in data "+data_ita);
}
msg.setText(sb.toString( ));
//Per inviare il messaggio
Transport tr = session.getTransport("smtp");
tr.connect(host, user, pass);
msg.saveChanges(); // don't forget this
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch (MessagingException e) {
System.out.println(e);
}
}
}
codice:
public class MyTransferListener2 implements FTPDataTransferListener {
public void started() {
System.out.println("Trasferimento avviato"); // Trasferimento avviato
}
public void transferred(int length) {
System.out.println(length);
// Altri length byte sono stati trasferiti da quando questo metodo
// è stato richiamanto l'ultima volta
}
public void completed() {
System.out.println("Trasferimento completato"); // Trasferimento completato
}
public void aborted() {
System.out.println("Trasferimento annullato"); // Trasferimento annullato
}
public void failed() {
System.out.println("Trasferimento fallito"); // Trasferimento fallito
}
}