D:\NewZebra\JavaApplications\DesignPatternsProject\src\structural_patterns\composite_tree\FileFolderTreeServices.java
 1 /*
 2  * FileFolderTreeServices.java
 3  *
 4  */
 5 package structural_patterns.composite_tree;
 6 
 7 /**
 8  *
 9  * @author Sam Eldin
10  */
11 
12 
13 
14 import java.io.*;
15 import java.text.*;
16 import java.util.*;
17 
18 public class FileFolderTreeServices extends CompositeNodeServices {
19     
20     /** Creates a new instance of FileFolderTreeServices */
21     public FileFolderTreeServices() {
22     }
23     /*
24      *
25      */
26     public CompositeNode PollingTree(){
27         
28         pollRootNode();
29         
30 //       File rootFolder = new File(System.getProperty("user.home"));
31        File rootFolder = new File(CompositeNodeBase.FOLDER_PATH);
32        if(null == rootFolder)
33           return(CompositeNodeBase.ROOT);
34        
35        String folderName = rootFolder.getName();
36        
37        CompositeNode firstFolderNode = addNode(CompositeNodeBase.ROOT, 
38                                                 folderName, 
39                                                 false, 
40                                                 CompositeNodeBase.DEFAULT_NODE_ID);       
41         if(rootFolder.isDirectory())
42            addFilesToTree(firstFolderNode, rootFolder);
43         //=================================================
44         CompositeNode startCompositeNode = CompositeNodeBase.ROOT;
45         //=================================================
46         return(CompositeNodeBase.ROOT);
47     }    
48     /**
49      *
50      */
51      public void addFilesToTree (CompositeNode parentFolderNode, File parentFolder){
52          
53           String [] fileListNames = parentFolder.list();
54           int index;
55           CompositeNode childFileNode = null;
56           String path = parentFolder.getAbsoluteFile()
57                         + File.separator;
58           
59           for(index = 0; index < fileListNames.length; index++)
60           {
61               String fileName = fileListNames[index];
62               childFileNode = addNode(parentFolderNode, 
63                                       fileName, 
64                                       false, 
65                                       CompositeNodeBase.DEFAULT_NODE_ID);
66               fileName = path + fileName;
67               File tempFile = new File( fileName);
68               if(tempFile.isDirectory())
69                     addFilesToTree (childFileNode, tempFile);
70           }
71      }
72     /**
73      *
74      */
75      public static void main (String[] args)
76     {
77         FileFolderTreeServices fileFolderTreeServices = new FileFolderTreeServices();
78         CompositeNode startCompositeNode = fileFolderTreeServices.PollingTree();
79         
80          int x = 0;
81          
82     }
83 }
84 
85