Projet
Creation d'une application capable de se connecter a un site FTP, ou un site WWW pour recuperer des fichiers ou visualiser des images.
Menu:
Point forts de
notre application : (bien sur tout ce que nous proposons dans cette
application existe deja dans la nature, mais toutes ces fonctions ne sont
pas toutes incluses dans un seul et meme programme ):
Possiblite de se connecter
a un site Ftp, avec un nom de login, et un mot de passe, on peut alors
charger (UpLoad), ou mettre n'importe quel fichier.
Posibilite
de se connecter a un site distant HTTP. Il peut alors charger les images
presentes dans une page. Pour une page donnee on ne prend que les fichiers
'locaux' a cette page. Les liens distants ne sont pas pris en compte.
Possibilite
de se promener sur les liens html.
Possiblite de programmer
l'execution d'une commande a une date et une heure precise.
Possibilte
de ne pas se connecter tout de suite au site distant, mais simplement programmer
des commandes (par exemple rapatrier tous les fichiers zip)
Possibilite de visualiser
des images en local, ou sur un site HTTP.
Gestion
d'un cache pour les connections, en fait deux caches independants pour
les connections Http et Ftp.
Interface graphique simple
et amusante (poubelle animee).
Un browser de fichier configurable
qui reconnait automatiquement le format de certains fichiers (par rapport
a leur extension), par exemple au reconnait les images .gif, .jpg, ...
Un fichier de configuration
qui permet de rajouter ou de changer les icones, les couleurs, les type
de fichiers reconnus, ainsi que de passer en mode debuggage.
Une fenetre totalement retaillable,
objets par objets.
Completion des noms (en local,
ou en distant).
Interets pedagogiques
:Au cours de ce projet nous avons pu voir l'utilisation de certaines fonctionnalites
de Java, dont :
Utilisation des composantes
graphiques de Java (affichage d'images, animations, interface homme-machine).
Utilisation des composantes
reseaux de Java (Socket, Url, ...).
Utilisation de protocoles
: Ftp (programmation de celui-ci), Http.
Utilisation des threads
Utilisation d'un language
tel que HTML (avec 'parsage' de celui-ci).
Quelques points de
programmation : pour concevoir notre application nous avons utilises
les elements suivant du language Java :
Programmation objets (!!!!!).
Programmation a l'aide d'interface
(notamment pour la gestion des fichiers, nous avons une interface pour
gerer les fichiers locaux ou distants (ftp, ou http).
Une classe permettant la
configuration globale et locale de notre application (on peut passer en
mode debuggage pour chaque classe).
Quelques captures d'ecran
Le menu 'Url Parametrers'
La fenetre principale
La fenetre priciplale avec analyse des
resultats
Comment utliser notre
application?
URL Parameters Definit
les parametres d'une URL.
Options: Non
implemente ....
Results: Ananlyse
les resultats des dernieres commandes lancees par programmation horaire.
Quit : quit
!!!!
Date : Date de programmation
des commandes (MMM JJ AAAA HH:MM:SS). (norme UTC)
Put : Prend le fichier
local pour le mettre (upload) dans le site FTP. (ne fonctionne pas en HTTP).
Si le bouton BROWSE est selectionne on utilise alors les filtres
sous la 'FILE ZONE' local files.
Get : Charge
le fichier selectionne (dans Remote) pour le mettre en local. Si le
bouton BROWSE est selectionne on utilise alors les filtres sous la
'FILE ZONE' remote files.
Execute : Execute
les commandes programmees
Edit : Non implemente
...
Remove: enleve la
commande slectionnee du panneau 'Operations'
La poubelle: lorsque
que l'on a enleve un evenement (commande Remove) on peut le recuperer
avant de le suprimer definitivement. On clique sur la poubelle, elle tombe
(!!!) et le panneau Operations affiche alors son contenu. On peut
alors soit effacer definitivement la commande (bouton Remove) soit
la restaurer (commande UnDelete).
Browse : c'est
un bouton qui permet de se connecter au site distant ou pas, et pouvoir
utiliser les filtres (pour GET et PUT)
Le texte sous les menus
de selection (filtre): c'est ici que l'on decide de filtrer les
fichiers (par exemple *.gif), ces filtres sont pris en compte quand le
bouton BROWSE est selectionne. On a le droit a une seule *
(ou alors *.*).
L'heure
et la date : sur la fentre principale l'heure est affichee en
permanence, en appuyant dessus avec la souris, l'heure est affichee.
Le Futur de notre application
: pour que l'application soit reelement complete il faudrait rajouter
(nous n'avons pas eu le temps de le faire par manque de temps.
Possibilite de visualiser
les images sur les sites Ftp (autre qu'anonymous).
Possibilte d'editer ou de
visualiser d'autres format de fichier (audio, texte, ...).
Possibilite de faire du recursif
sur les fichiers (recuperer une arborecence).
Possibilte
de recharger une page dans le chache, ce n'est pour le moment pas possible
(il suffirait juste de rajouter un bouton car le,code est pret).
Trouver
et corriger les buggs (si si il doit y en avoir !!!! et il y en a ....).
Le code (genere
par JavaDoc)
Les classes liees au reseau (Ftp, Http, Html):
Les classes liees a l'interface graphique :
BrowserPanel
ButtonBar
ButtonZone
DirectoryFilter
RegexpFilter
FileZone
MyList
OperationList
OperationPanel
ShowFrame
TrashAnimator
URLDialog
Passwd
Les Classes liees aux thread (programmation)
Pour telecharger l'archive du code
Pour telecharger l'archive de la documentation
Pour voir les sources