VTK
dox/IO/Core/vtkSortFileNames.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkSortFileNames.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00033 #ifndef __vtkSortFileNames_h
00034 #define __vtkSortFileNames_h
00035 
00036 #include "vtkIOCoreModule.h" // For export macro
00037 #include "vtkObject.h"
00038 
00039 class vtkStringArray;
00040 
00041 //BTX
00042 // this is a helper class defined in the .cxx file
00043 class vtkStringArrayVector;
00044 //ETX
00045 
00046 class VTKIOCORE_EXPORT vtkSortFileNames : public vtkObject
00047 {
00048 public:
00049 
00050   vtkTypeMacro(vtkSortFileNames,vtkObject);
00051   void PrintSelf(ostream& os, vtkIndent indent);
00052   static vtkSortFileNames *New();
00053 
00055 
00059   vtkSetMacro(Grouping, int);
00060   vtkGetMacro(Grouping, int);
00061   vtkBooleanMacro(Grouping, int);
00063 
00065 
00070   vtkSetMacro(NumericSort, int);
00071   vtkGetMacro(NumericSort, int);
00072   vtkBooleanMacro(NumericSort, int);
00074 
00076 
00078   vtkSetMacro(IgnoreCase, int);
00079   vtkGetMacro(IgnoreCase, int);
00080   vtkBooleanMacro(IgnoreCase, int);
00082 
00084 
00087   vtkSetMacro(SkipDirectories, int);
00088   vtkGetMacro(SkipDirectories, int);
00089   vtkBooleanMacro(SkipDirectories, int);
00091 
00093 
00094   void SetInputFileNames(vtkStringArray *input);
00095   vtkGetObjectMacro(InputFileNames, vtkStringArray);
00097 
00099   virtual vtkStringArray *GetFileNames();
00100 
00105   virtual int GetNumberOfGroups();
00106 
00109   virtual vtkStringArray *GetNthGroup(int i);
00110 
00114   virtual void Update();
00115 
00116 protected:
00117   vtkSortFileNames();
00118   ~vtkSortFileNames();
00119 
00120   int NumericSort;
00121   int IgnoreCase;
00122   int Grouping;
00123   int SkipDirectories;
00124 
00125   vtkTimeStamp UpdateTime;
00126 
00127   vtkStringArray *InputFileNames;
00128   vtkStringArray *FileNames;
00129   vtkStringArrayVector *Groups;
00130 
00132   virtual void Execute();
00133 
00135   virtual void SortFileNames(vtkStringArray *input, vtkStringArray *output);
00136 
00138 
00139   virtual void GroupFileNames(vtkStringArray *input,
00140                               vtkStringArrayVector *output);
00142 
00143 
00144 private:
00145   vtkSortFileNames(const vtkSortFileNames&);  // Not implemented.
00146   void operator=(const vtkSortFileNames&);  // Not implemented.
00147 };
00148 
00149 #endif