NCBI C++ ToolKit
vcf_load_manager.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: vcf_load_manager.cpp 38477 2017-05-15 21:10:59Z evgeniev $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Roman Katargin
27  *
28  */
29 
30 #include <ncbi_pch.hpp>
31 
32 #include "vcf_load_manager.hpp"
34 
36 
39 
40 #include <wx/filename.h>
41 
43 
45 {
46  return m_Manager.x_GetParamsPanel();
47 }
48 
49 ///////////////////////////////////////////////////////////////////////////////
50 /// CVCFLoaderManager
52  : m_Descr("VCF (Variant Call Format) files", "")
55  , m_State(eInvalid)
57  , m_OptionsPage(*this)
58 {
59  m_Descr.SetLogEvent("loaders");
60 }
61 
62 //
63 // IFileLoadPanelClient implementation
64 //
65 
67 {
68  return m_Descr.GetLabel();
69 }
70 
72 {
75 }
76 
77 //
78 // IUILoadManager implementation
79 //
80 
82 {
83  m_SrvLocator = srv_locator;
84 }
85 
86 
87 void CVCFLoaderManager::SetParentWindow(wxWindow* parent)
88 {
89  m_ParentWindow = parent;
90 }
91 
92 
94 {
95  return m_Descr;
96 }
97 
98 
100 {
101  m_State = eParams;
102 }
103 
104 
106 {
107  m_State = eInvalid;
108  m_ParamsPanel = NULL; // window is destroyed by the system
109 }
110 
112 {
113  return (m_State == eParams) ? x_GetParamsPanel() : NULL;
114 }
115 
117 {
118  if (m_ParamsPanel == NULL) {
122  }
123  return m_ParamsPanel;
124 }
125 
127 {
128  switch(m_State) {
129  case eParams:
130  return action == eNext;
131  case eCompleted:
132  return action == eBack;
133  default:
134  _ASSERT(false);
135  return false;
136  }
137 }
138 
139 
141 {
142  return m_State == eParams;
143 }
144 
145 
147 {
148  return m_State == eCompleted; // does not matter
149 }
150 
151 
153 {
154  if(m_State == eParams && action == eNext) {
156  //TODO validate
159  return true;
160  }
161  return false;
162  } else if(m_State == eCompleted && action == eBack) {
163  m_State = eParams;
164  return true;
165  }
166  _ASSERT(false);
167  return false;
168 }
169 
170 
172 {
173  return nullptr;
174 }
175 
177 {
179 }
180 
182 {
185 }
186 
187 
188 bool CVCFLoaderManager::ValidateFilenames(const vector<wxString>&)
189 {
190  // not implemented
191  return true;
192 }
193 
194 
195 void CVCFLoaderManager::SetFilenames(const vector<wxString>& filenames)
196 {
198 }
199 
200 void CVCFLoaderManager::GetFilenames(vector<wxString>& filenames) const
201 {
203 }
204 
206 {
207  return m_State == eParams;
208 }
209 
210 
211 bool CVCFLoaderManager::RecognizeFormat(const wxString& filename)
212 {
213  wxString ext;
214  wxFileName::SplitPath(filename, 0, 0, &ext);
216 }
217 
219 {
220  return fmt == CFormatGuess::eVcf;
221 }
222 
224 {
225  static string sid("vcf_format_load_manager");
226  return sid;
227 }
228 
229 
231 {
232  static string slabel("VCF (Variant Call Format) Format Load Manager");
233  return slabel;
234 }
235 
236 
237 void CVCFLoaderManager::SetRegistryPath(const string& path)
238 {
239  m_RegPath = path; // store for later use
240  m_Params.SetRegistryPath(m_RegPath + ".VcfParams");
241 }
242 
244 {
246 }
247 
248 
250 {
252 }
253 
virtual void SetRegistryPath(const string &path)
IRegSettings.
virtual void SaveSettings() const
IRegSettings.
virtual void LoadSettings()
CBedLoadParams & GetData()
Data access.
virtual bool TransferDataFromWindow()
Transfer data from the window.
virtual bool TransferDataToWindow()
Transfer data to the window.
void SetData(const CBedLoadParams &data)
static bool RecognizeExtension(EFileType fileType, const wxString &extension)
static wxString GetDialogFilter(EFileType fileType)
EFormat
The formats are checked in the same order as declared here.
@ eVcf
VCF, CVcfReader.
CVcfObjectLoader.
IAppTask.
Definition: app_task.hpp:83
IServiceLocator - an abstract mechanism for locating services.
Definition: service.hpp:71
IUIObject - object that provides basic properties often required in a UI object.
Definition: ui_object.hpp:63
#define NULL
Definition: ncbistd.hpp:225
virtual void SetFilenames(const vector< wxString > &filenames)
initilize the manager with the given filenames
virtual void CleanUI()
CleanUI() is called after the host finished using the manager.
virtual void SetServiceLocator(IServiceLocator *srv_locator)
Sets / unsets Service Locator.
virtual bool DoTransition(EAction action)
Performs transition if possible and returns true, otherwise the function shall warn the user about th...
CVCFLoaderManager & m_Manager
CBedParamsPanel * m_ParamsPanel
virtual bool RecognizeFormat(const wxString &filename)
return true if the given file format is supported by this manager
virtual void InitUI()
Initializes the Manager before using it in UI.
virtual wxString GetFormatWildcard() const
return file wildcard for the format (example - "*.txt;*.tab" )
virtual bool IsInitialState()
return true if the current state of the loader UI is the first valid state (first step in a wizard-li...
virtual string GetLabel() const
virtual IExecuteUnit * GetExecuteUnit()
virtual void SetParentWindow(wxWindow *parent)
virtual bool IsFinalState()
True if Tool Manager has reached its final state, i.e.
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
virtual wxPanel * GetCurrentPanel()
Return the panel corresponding to the current state of Tool Manager.
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
CVCFLoaderManager()
CVCFLoaderManager.
IServiceLocator * m_SrvLocator
virtual IAppTask * GetTask()
Once parameters are gathered and validated this function is called to produce the final Task object t...
virtual void SaveSettings() const
virtual void SetRegistryPath(const string &path)
virtual bool ValidateFilenames(const vector< wxString > &filenames)
checks given filenames and returns true if the manager can handle them, otherwise - shows an error me...
CBedLoadParams m_Params
CBedParamsPanel * x_GetParamsPanel()
virtual void LoadSettings()
virtual bool IsCompletedState()
Manager goes into "Complete" state when "Finish" button is pressed and all input data is gatherred an...
virtual void GetFilenames(vector< wxString > &filenames) const
get actual filenames that will be opened
virtual wxPanel * GetPanel()
vector< wxString > m_FileNames
virtual const IUIObject & GetDescriptor() const
Returns the object describing this tool (UI meta data).
virtual bool CanDo(EAction action)
Indicates whether given transition is possible in the current state.
virtual void SetLogEvent(const string &log_event)
Definition: ui_object.cpp:118
virtual const string & GetLabel() const
Definition: ui_object.cpp:124
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define wxT(x)
Definition: muParser.cpp:41
static int filenames
Definition: pcregrep.c:172
#define _ASSERT
Modified on Tue May 28 05:53:27 2024 by modify_doxy.py rev. 669887