00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00019 #ifndef __vtkPVFileEntry_h
00020 #define __vtkPVFileEntry_h
00021
00022 #include "vtkPVObjectWidget.h"
00023
00024 class vtkKWLabel;
00025 class vtkKWPushButton;
00026 class vtkKWEntry;
00027 class vtkKWEntry;
00028 class vtkPVSource;
00029 class vtkKWScaleWithEntry;
00030 class vtkKWFrame;
00031 class vtkPVListBoxToListBoxSelectionEditor;
00032 class vtkPVFileEntryObserver;
00033 class vtkKWPopupButton;
00034
00035
00036 template<class KeyType,class DataType> class vtkArrayMap;
00037
00038
00039 class VTK_EXPORT vtkPVFileEntry : public vtkPVObjectWidget
00040 {
00041 public:
00042 static vtkPVFileEntry* New();
00043 vtkTypeRevisionMacro(vtkPVFileEntry, vtkPVObjectWidget);
00044 void PrintSelf(ostream& os, vtkIndent indent);
00045
00047
00048 void SetLabel(const char* label);
00049 const char* GetLabel();
00051
00053 virtual void Create(vtkKWApplication *pvApp);
00054
00056
00057 virtual void SetValue(const char* fileName);
00058 const char* GetValue();
00060
00062 void BrowseCallback();
00063
00066 virtual void SetBalloonHelpString(const char *str);
00067
00069
00070 vtkSetStringMacro(Extension);
00071 vtkGetStringMacro(Extension);
00073
00074
00076
00079 vtkPVFileEntry* ClonePrototype(vtkPVSource* pvSource,
00080 vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map);
00082
00083
00084
00086
00088 virtual void Accept();
00089
00091
00095 virtual void ResetInternal();
00096
00098 virtual void Initialize();
00099
00101 virtual void Trace(ofstream *file);
00102
00104 void EntryChangedCallback();
00105
00107 void TimestepChangedCallback();
00108
00110 void SetTimeStep(int ts);
00111
00113 virtual int GetNumberOfFiles();
00114
00116 void ExecuteEvent(vtkObject *o, unsigned long event, void* calldata);
00117
00119
00120 void UpdateAvailableFiles() { this->UpdateAvailableFiles(0); }
00121 void UpdateAvailableFiles(int force);
00123
00130 virtual void UpdateEnableState();
00131
00133 virtual void SaveInBatchScript(ofstream *file);
00134
00135 protected:
00136 vtkPVFileEntry();
00137 ~vtkPVFileEntry();
00138
00139 vtkKWLabel *LabelWidget;
00140 vtkKWPushButton *BrowseButton;
00141 vtkKWEntry *Entry;
00142
00143 char* Extension;
00144 int InSetValue;
00145
00146
00147 vtkKWFrame *TimestepFrame;
00148 vtkKWScaleWithEntry *Timestep;
00149 int TimeStep;
00150
00151 vtkSetStringMacro(Path);
00152 char* Path;
00153
00154 int IgnoreFileListEvents;
00155
00156 vtkPVListBoxToListBoxSelectionEditor* FileListSelect;
00157 vtkKWPopupButton* FileListPopup;
00158
00159
00160 virtual void CopyProperties(vtkPVWidget* clone, vtkPVSource* pvSource,
00161 vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map);
00162
00163
00164 int ReadXMLAttributes(vtkPVXMLElement* element,
00165 vtkPVXMLPackageParser* parser);
00166
00167 unsigned long ListObserverTag;
00168 vtkPVFileEntryObserver* Observer;
00169
00170 void UpdateTimeStep();
00171
00176 void UpdateTimesteps();
00177
00178 int Initialized;
00179
00180 private:
00181 vtkPVFileEntry(const vtkPVFileEntry&);
00182 void operator=(const vtkPVFileEntry&);
00183 };
00184
00185 #endif