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

Go to the SVN repository for this file.

1 /* $Id: bed_load_manager.cpp 38522 2017-05-22 18:19:49Z 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 "bed_load_manager.hpp"
34 
36 
38 
39 #include <wx/filename.h>
40 
42 
44 {
45  return m_Manager.x_GetParamsPanel();
46 }
47 
48 ///////////////////////////////////////////////////////////////////////////////
49 /// CBedLoadManager
51  : m_Descr("BED files", "")
54  , m_State(eInvalid)
56  , m_OptionsPage(*this)
57 {
58  m_Descr.SetLogEvent("loaders");
59 }
60 
61 //
62 // IFileLoadPanelClient implementation
63 //
64 
66 {
67  return m_Descr.GetLabel();
68 }
69 
71 {
74 }
75 
76 //
77 // IUILoadManager implementation
78 //
79 
81 {
82  m_SrvLocator = srv_locator;
83 }
84 
85 
86 void CBedLoadManager::SetParentWindow(wxWindow* parent)
87 {
88  m_ParentWindow = parent;
89 }
90 
91 
93 {
94  return m_Descr;
95 }
96 
97 
99 {
100  m_State = eParams;
101 }
102 
103 
105 {
106  m_State = eInvalid;
107  m_ParamsPanel = NULL; // window is destroyed by the system
108 }
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 
171 {
172  return nullptr;
173 }
174 
176 {
178 }
179 
181 {
184 }
185 
186 
187 bool CBedLoadManager::ValidateFilenames(const vector<wxString>& /*filenames*/)
188 {
189  // not implemented
190  return true;
191 }
192 
193 
194 void CBedLoadManager::SetFilenames(const vector<wxString>& filenames)
195 {
197 }
198 
199 void CBedLoadManager::GetFilenames(vector<wxString>& filenames) const
200 {
202 }
203 
205 {
206  return m_State == eParams;
207 }
208 
209 
210 bool CBedLoadManager::RecognizeFormat(const wxString& filename)
211 {
212  wxString ext;
213  wxFileName::SplitPath(filename, 0, 0, &ext);
214  return ext == wxT("bed");
215 }
216 
218 {
219  // This does not load all data for bed15 format, but it does
220  // load the fields that bed15 and bed have in common correctly
221  return ( fmt == CFormatGuess::eBed || fmt == CFormatGuess::eBed15 );
222 }
223 
225 {
226  static string sid("bed_format_load_manager");
227  return sid;
228 }
229 
230 
232 {
233  static string slabel("BED Format Load Manager");
234  return slabel;
235 }
236 
237 void CBedLoadManager::SetRegistryPath(const string& path)
238 {
239  m_RegPath = path; // store for later use
240  m_Params.SetRegistryPath(m_RegPath + ".BedParams");
241 }
242 
244 {
246 }
247 
248 
250 {
252 }
253 
virtual void SetRegistryPath(const string &path)
IRegSettings.
virtual void SaveSettings() const
IRegSettings.
virtual void LoadSettings()
CBedObjectLoader.
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 wxString GetDialogFilter(EFileType fileType)
EFormat
The formats are checked in the same order as declared here.
@ eBed
UCSC BED file format, CBedReader.
@ eBed15
UCSC BED15 or microarray format.
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 IAppTask * GetTask()
Once parameters are gathered and validated this function is called to produce the final Task object t...
CBedLoadManager()
CBedLoadManager.
virtual bool ValidateFilenames(const vector< wxString > &filenames)
checks given filenames and returns true if the manager can handle them, otherwise - shows an error me...
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
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 void SetParentWindow(wxWindow *parent)
virtual void SetRegistryPath(const string &path)
virtual bool CanDo(EAction action)
Indicates whether given transition is possible in the current state.
virtual wxString GetFormatWildcard() const
return file wildcard for the format (example - "*.txt;*.tab" )
virtual void InitUI()
Initializes the Manager before using it in UI.
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
vector< wxString > m_FileNames
virtual void SaveSettings() const
virtual void CleanUI()
CleanUI() is called after the host finished using the manager.
virtual const IUIObject & GetDescriptor() const
Returns the object describing this tool (UI meta data).
CBedParamsPanel * m_ParamsPanel
virtual void LoadSettings()
virtual wxPanel * GetCurrentPanel()
Return the panel corresponding to the current state of Tool Manager.
virtual bool IsFinalState()
True if Tool Manager has reached its final state, i.e.
virtual wxPanel * GetPanel()
virtual string GetLabel() const
virtual bool RecognizeFormat(const wxString &filename)
return true if the given file format is supported by this manager
CBedLoadManager & m_Manager
wxWindow * m_ParentWindow
CBedParamsPanel * x_GetParamsPanel()
IServiceLocator * m_SrvLocator
virtual bool IsCompletedState()
Manager goes into "Complete" state when "Finish" button is pressed and all input data is gatherred an...
virtual bool DoTransition(EAction action)
Performs transition if possible and returns true, otherwise the function shall warn the user about th...
CBedLoadParams m_Params
virtual IExecuteUnit * GetExecuteUnit()
virtual void SetFilenames(const vector< wxString > &filenames)
initilize the manager with the given filenames
virtual void SetServiceLocator(IServiceLocator *srv_locator)
Sets / unsets Service Locator.
virtual void GetFilenames(vector< wxString > &filenames) const
get actual filenames that will be opened
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 Wed May 29 18:40:29 2024 by modify_doxy.py rev. 669887