Vous êtes sur la page 1sur 15

explorateur de fichier (mvc)

Chergui Oussama boudjemaa azzedine

Gr02

En utilisant le mvc (model/view/control) pour créer une application java pour explorer les fichier similaire à celui de windows.

La première classe que nous allons regarder est le main

classe, FileBrowser:

allons regarder est le main classe, ​ FileBrowser : ​ Cette classe fait 2 choses: -Instancie

Cette classe fait 2 choses:

-Instancie la classe FileBrowserModel.

-Instancie la classe FileBrowserFrame.

I-Model:

Les classes de model que nous allons examiner ​ ​sont:

I-1)FileBrowserModel:

examiner ​ ​ sont: ​ I-1) ​ FileBrowserModel : -La classe contient une instance de ​

-La classe contient une instance de FileSystemView. -La classe FileBrowserModel crée le DefaultTreeModel pour le JTree. Il effectue une recherche en largeur d'abord, et obtient les enfants et petits-enfants du fichier racine.

I-2) FileNode:

​ ​ ​ ​ ​ ​ I-2) ​ FileNode : -La classe ​ FileNode est essentiellement

-La classe FileNode est essentiellement un papier d'emballage d'un fichier. Il s'agit de la classe qui est stockée dans les noeuds DefaultMutableTreeNode de DefaultTreeModel. Ce papier d'emballage me permet de contrôler ce que la méthode toString renvoie au JTree. Plus tard, j'ai ajouté le boolean generateGrandchildren pour contrôler la génération des petits-enfants du répertoire sélectionné.

I-3)FileTableModel:

​ ​ ​ ​ ​ I-3) ​ FileTableModel : -Ici, nous avons étendu ​ AbstractTableModel de

-Ici, nous avons étendu AbstractTableModel de sorte que nous n'avions qu'à définir ce qui était nécessaire . La méthode getColumnClass indique à JTable quels types d'objets sont dans chaque colonne. La méthode add row ajoute tous les objets colonne comme une ligne List. - La méthode setColumnWidths définit non seulement la largeur des colonnes, mais utilise un DateRenderer spécial pour la troisième colonne, la dernière date de modification.

II-VIEW Les classes de view que nous allons examiner ​ ​sont:

II-1)FileBrowserFrame:

allons examiner ​ ​ sont: II-1) ​ FileBrowserFrame : -La méthode ​ createPartControl est standard. -Nous
allons examiner ​ ​ sont: II-1) ​ FileBrowserFrame : -La méthode ​ createPartControl est standard. -Nous

-La méthode createPartControl est standard. -Nous n'étendons pas le JFrame. Nous utilisons un JFrame.

-La méthode createMainPanel est un JPanel et 3 autres JPanels dans un JPanel. En définissant 3 JPanels inclus, nous pouvons utiliser le BorderLayout sur les 3 JPanels inclus. Cela permet aux informations dans les 2 volets de défilement de croître en taille que le JFrame est développé ou maximisé.

-Vers le bas, nous avons 4 méthodes de commodité, en commençant par la méthode updateFileDetail. Nous passons une instance de la classe FileBrowserFrame aux controllers. Ils n'ont pas à connaître les autres classes de vue, donc nous créons ces méthodes pour les classes de control.

-La méthode setLookAndFeel définit le look et l'aspect de Windows.

ces méthodes pour les classes de control. -La méthode ​ setLookAndFeel définit le look et l'aspect

II-2)TreeScrollPane:

​ ​ ​ ​ ​ ​ ​ ​ II-2) ​ TreeScrollPane : -Nous créons un ​

-Nous créons un JTree et le mettons dans un JScrollPane. Le JTree a deux listeners et un renderer. Parce que nous mettons le JScollPane à l'ouest d'une disposition de bordure JPanel, la hauteur de JScrollPane se dilate pour remplir la taille du JPanel. Nous définissons la largeur dans la classe pour nous assurer qu'elle ne devient pas trop étroite.

II-3)TableScrollPane:

​ ​ ​ II-3) ​ TableScrollPane : -Les méthodes ​ clearDefaultTableModel et setDefaultTableModel sont

-Les méthodes clearDefaultTableModel et setDefaultTableModel sont exécutées comme une méthode de control, mais sont codées dans la méthode de view. Nous avons encore une séparation des préoccupations de MVC.

II-4) FileDetailPanel.

​ ​ ​ ​ ​ ​ II-4) ​ FileDetailPanel . -Cette classe utilise un ​ GridBagLayout

-Cette classe utilise un GridBagLayout pour aligner les JLabels et JTextField en deux colonnes. -La méthode addComponent crée un GridBagConstraints pour chaque composant Swing.

II-5)DesktopButtonPanel:

​ ​ II-5) ​ DesktopButtonPanel : -La classe interne ​ OpenListener vérifie si le ​ FileNode

-La classe interne OpenListener vérifie si le FileNode contenant un fichier, le bureau est pris en charge et l'action ouverte du bureau est prise en charge avant d'essayer d'ouvrir le fichier. L'outil par défaut de l'extension de fichier, comme le Bloc-notes pour .txt, est ouvert. Si le fichier ne peut pas être ouvert, une IOException est lancée.

III-CONTROL:

Les classes de controller que nous allons examiner ​ ​sont:

III-1) FileSelectionListener:

examiner ​ ​ sont: III-1) ​ FileSelectionListener : -Cet listener est déclenché lorsqu'un fichier ou

-Cet listener est déclenché lorsqu'un fichier ou répertoire est sélectionné dans le JTree. Les noeuds petits-enfants du répertoire sélectionné sont créés dans un thread séparé, afin de ne pas ralentir l'interface graphique. Les tâches longues (plus de 300 millisecondes) doivent être exécutées dans un thread séparé, afin de ne pas ralentir l'interface graphique.Le Model table est mis à jour, le model de détail de fichier est mis à jour et le model de bouton de bureau est mis à jour. Cela met également à jour la classe view.

III-2)TreeExpandListener:

​ ​ III-2) ​ TreeExpandListener : -Cet lintener est déclenché lorsque vous développez ou contractez un

-Cet lintener est déclenché lorsque vous développez ou contractez un nœud sur le JTree. Lorsqu'un nœud est développé, les noeuds petits-enfants du répertoire étendu sont créés. Cela est exécuté dans un thread distinct, afin de ne pas ralentir l'interface graphique.

III-3)TableSelectionListener:

​ ​ III-3) ​ TableSelectionListener : -Cet listener est déclenché lorsque vous sélectionnez l'une des lignes

-Cet listener est déclenché lorsque vous sélectionnez l'une des lignes JTable. Cet listener met à jour le model de détail de fichier cet le model de bouton de bureau.

Il existe encore 3 classes pour compléter le navigateur de fichiers. Il ya 2 classes de renderer et 1 classe Runnable.

FileTreeCellRenderer:La méthode getTreeCellRendererComponent obtient l'icône de fichier et le texte de fichier du système d'exploitation Windows, en utilisant la classe FileSystemView, via FileBrowserModel. Nous devons définir tout sur le JLabel, y compris les couleurs d'arrière-plan et de premier plan, lorsqu'elles sont sélectionnées et quand elles ne sont pas sélectionnées.

DateRenderer :Cette classe rend une date dans un format jj MMM yyyy pour le JTable.

AddNodes:Cette classe ajoute les noeuds petits-enfants du nœud courant.