NCBI C++ ToolKit
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
CAlgoToolManagerBase Class Referenceabstract

Search Toolkit Book for CAlgoToolManagerBase

CAlgoToolManagerBase This is base class for simple algorithmic tool managers. More...

#include <gui/core/algo_tool_manager_base.hpp>

+ Inheritance diagram for CAlgoToolManagerBase:
+ Collaboration diagram for CAlgoToolManagerBase:

Public Member Functions

 CAlgoToolManagerBase (const string &label, const string &icon_alias, const string &hint=kEmptyStr, const string &description=kEmptyStr, const string &help_id=kEmptyStr, const string &category="Unknown")
 CAlgoToolManagerBase. More...
 
IUIToolManager interface implementation
virtual void SetServiceLocator (IServiceLocator *srv_locator)
 Sets / unsets Service Locator. More...
 
virtual void SetParentWindow (wxWindow *parent)
 
virtual const IUIObjectGetDescriptor () const
 Returns the object describing this tool (UI meta data). More...
 
virtual void InitUI ()
 override this function in a derived class and initialize extra members More...
 
virtual void CleanUI ()
 override this function in a derived class and clean extra members More...
 
virtual wxPanel * GetCurrentPanel ()
 Return the panel corresponding to the current state of Tool Manager. More...
 
virtual bool CanDo (EAction action)
 Indicates whether given transition is possible in the current state. More...
 
virtual bool IsFinalState ()
 True if Tool Manager has reached its final state, i.e. More...
 
virtual bool IsCompletedState ()
 Manager goes into "Complete" state when "Finish" button is pressed and all input data is gatherred and validated. More...
 
virtual bool DoTransition (EAction action)
 Performs transition if possible and returns true, otherwise the function shall warn the user about the problem preventing the transition (such as insufficient or invalid input) and return false. More...
 
virtual IAppTaskGetTask ()
 Once parameters are gathered and validated this function is called to produce the final Task object that will be executed to do the actual computational work. More...
 
virtual void RestoreDefaults ()
 Restores the default options for the current panel. More...
 
virtual string GetCategory ()
 returns the name for the ToolCategory to which the tool belongs. More...
 
virtual string SetInputObjects (const vector< TConstScopedObjects > &input)
 sets input objects that can be used as arguments for the tool. More...
 
virtual bool CanQuickLaunch () const
 
virtual IAppTaskQuickLaunch ()
 
IExtension interface - implement in derived classes
virtual string GetExtensionIdentifier () const =0
 returns the unique human-readable identifier for the extension the id should use lowercase letters separated by underscores - "like_this" More...
 
virtual string GetExtensionLabel () const =0
 returns a displayable label for this extension ( please capitalize the key words - "My Extension" ) More...
 
IRegSettings interface implementation
virtual void SetRegistryPath (const string &path)
 
virtual void LoadSettings ()
 
virtual void SaveSettings () const
 
- Public Member Functions inherited from CObject
 CObject (void)
 Constructor. More...
 
 CObject (const CObject &src)
 Copy constructor. More...
 
virtual ~CObject (void)
 Destructor. More...
 
CObjectoperator= (const CObject &src) THROWS_NONE
 Assignment operator. More...
 
bool CanBeDeleted (void) const THROWS_NONE
 Check if object can be deleted. More...
 
bool IsAllocatedInPool (void) const THROWS_NONE
 Check if object is allocated in memory pool (not system heap) More...
 
bool Referenced (void) const THROWS_NONE
 Check if object is referenced. More...
 
bool ReferencedOnlyOnce (void) const THROWS_NONE
 Check if object is referenced only once. More...
 
void AddReference (void) const
 Add reference to object. More...
 
void RemoveReference (void) const
 Remove reference to object. More...
 
void ReleaseReference (void) const
 Remove reference without deleting object. More...
 
virtual void DoNotDeleteThisObject (void)
 Mark this object as not allocated in heap – do not delete this object. More...
 
virtual void DoDeleteThisObject (void)
 Mark this object as allocated in heap – object can be deleted. More...
 
void * operator new (size_t size)
 Define new operator for memory allocation. More...
 
void * operator new[] (size_t size)
 Define new[] operator for 'array' memory allocation. More...
 
void operator delete (void *ptr)
 Define delete operator for memory deallocation. More...
 
void operator delete[] (void *ptr)
 Define delete[] operator for memory deallocation. More...
 
void * operator new (size_t size, void *place)
 Define new operator. More...
 
void operator delete (void *ptr, void *place)
 Define delete operator. More...
 
void * operator new (size_t size, CObjectMemoryPool *place)
 Define new operator using memory pool. More...
 
void operator delete (void *ptr, CObjectMemoryPool *place)
 Define delete operator. More...
 
virtual void DebugDump (CDebugDumpContext ddc, unsigned int depth) const
 Define method for dumping debug information. More...
 
- Public Member Functions inherited from CDebugDumpable
 CDebugDumpable (void)
 
virtual ~CDebugDumpable (void)
 
void DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const
 
void DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const
 
void DumpToConsole (void) const
 
- Public Member Functions inherited from IUIToolManager
virtual wxPanel * GetMaxPanel ()
 Return the panel that occupies max size on display, to calculate dialog window size. More...
 
virtual IUIToolManagerGetAlternateToolManager ()
 If a transition fails, it may make sense to switch to a different tool manger When a tool manager identifies a more appropriate manager for a task, it returns it here, otherwise NULL. More...
 
virtual IExecuteUnitGetExecuteUnit ()
 
virtual IWizardPageGetFirstPage ()
 Returns first options page (if any) of the tool to be shown in wizard dialog. More...
 
virtual IWizardPageGetOptionsPage ()
 Returns page for tool options (long wizard path via "Options" button) More...
 
virtual void SetPrevPage (IWizardPage *)
 Sets a wizard page which should show before the first page of the tool. More...
 
virtual void SetNextPage (IWizardPage *)
 Sets a wizard page which should show after the last page of the tool. More...
 
virtual void ResetState ()
 
virtual bool UsesSingleOMScope ()
 
virtual ~IUIToolManager ()
 
- Public Member Functions inherited from IExtension
virtual ~IExtension ()
 
- Public Member Functions inherited from IRegSettings
virtual ~IRegSettings ()
 

Protected Types

enum  EState { eInvalid = -1 , eParams , eSelectProject , eCompleted }
 defines states of the Tool Manager More...
 

Protected Member Functions

virtual CAlgoToolManagerParamsPanelx_GetParamsPanel ()=0
 returns a pointer to the parameters panel, override in derived classes More...
 
virtual IRegSettingsx_GetParamsAsRegSetting ()=0
 return a pointer to Parameters object as IRegSettings interface More...
 
virtual bool x_CreateParamsPanelIfNeeded ()=0
 returns / creates Parameters panel, override in derived classes see cpp file for example More...
 
virtual CDataLoadingAppJobx_CreateLoadingJob ()=0
 factory method for creating the job that executes the tool algorithm override in derived classes More...
 
virtual void x_InitProjectParams ()
 init m_ProjectParams, in particular can select target project based on the tool input More...
 
virtual bool x_ValidateParams ()
 validates user input in Parameters panel, report errors if any More...
 
virtual void x_CreateProjectPanelIfNeeded ()
 returns / creates Project panel More...
 
virtual void x_SetInputObjects (const vector< TConstScopedObjects > &input)
 
virtual string x_ValidateInputObjects ()
 
void x_ConvertInputObjects (const CTypeInfo *typeInfo, map< string, TConstScopedObjects > &results)
 
void x_ConvertInputObjects (const CTypeInfo *typeInfo, TConstScopedObjects &results)
 
ILockerx_GetDataLocker ()
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 

Protected Attributes

CUIObject m_Descriptor
 describes the Manager's UI properties More...
 
const string m_Category
 defines tool category More...
 
IServiceLocatorm_SrvLocator
 
wxWindow * m_ParentWindow
 a window that will serve as a parent for our panels More...
 
string m_RegPath
 registry path to the settings More...
 
EState m_State
 tool manager state (int the Run Tool wizard) More...
 
vector< TConstScopedObjectsm_InputObjects
 original input objects, the tool needs to select a subset of objects that can serve as valid input More...
 
SProjectSelectorParams m_ProjectParams
 
CProjectSelectorPanelm_ProjectSelPanel
 

Additional Inherited Members

- Public Types inherited from CObject
enum  EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern }
 Control filling of newly allocated memory. More...
 
typedef CObjectCounterLocker TLockerType
 Default locker type for CRef. More...
 
typedef atomic< Uint8TCounter
 Counter type is CAtomiCounter. More...
 
typedef Uint8 TCount
 Alias for value type of counter. More...
 
- Public Types inherited from IUIToolManager
enum  EAction { eBack = 0 , eNext , eSkip }
 
- Static Public Member Functions inherited from CObject
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (void)
 Define method to throw null pointer exception. More...
 
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (const type_info &type)
 
static EAllocFillMode GetAllocFillMode (void)
 
static void SetAllocFillMode (EAllocFillMode mode)
 
static void SetAllocFillMode (const string &value)
 Set mode from configuration parameter value. More...
 
- Static Public Member Functions inherited from CDebugDumpable
static void EnableDebugDump (bool on)
 
- Static Public Attributes inherited from CObject
static const TCount eCounterBitsCanBeDeleted = 1 << 0
 Define possible object states. More...
 
static const TCount eCounterBitsInPlainHeap = 1 << 1
 Heap signature was found. More...
 
static const TCount eCounterBitsPlaceMask
 Mask for 'in heap' state flags. More...
 
static const int eCounterStep = 1 << 2
 Skip over the "in heap" bits. More...
 
static const TCount eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2)
 Minimal value for valid objects (reference counter is zero) Must be a single bit value. More...
 
static const TCount eCounterStateMask
 Valid object, and object in heap. More...
 

Detailed Description

CAlgoToolManagerBase This is base class for simple algorithmic tool managers.

The class provides two pages to the Run Tool dialog. 1. Parameters page is for entering tool parameters; derived from CAlgoToolManagerParamsPanel class. 2. Project selection page the standard page for specifying how results shall be added to the workspace - CProjectSelectorPanel. When Finish button is pressed the manager creates a standard CDataLoadingAppTask that executes a job in the background. Derived classed must implement a pure virtual function that creates the job.

Definition at line 67 of file algo_tool_manager_base.hpp.

Member Enumeration Documentation

◆ EState

defines states of the Tool Manager

Enumerator
eInvalid 
eParams 
eSelectProject 
eCompleted 

Definition at line 121 of file algo_tool_manager_base.hpp.

Constructor & Destructor Documentation

◆ CAlgoToolManagerBase()

CAlgoToolManagerBase::CAlgoToolManagerBase ( const string label,
const string icon_alias,
const string hint = kEmptyStr,
const string description = kEmptyStr,
const string help_id = kEmptyStr,
const string category = "Unknown" 
)

CAlgoToolManagerBase.

Definition at line 57 of file algo_tool_manager_base.cpp.

Member Function Documentation

◆ CanDo()

bool CAlgoToolManagerBase::CanDo ( EAction  action)
virtual

Indicates whether given transition is possible in the current state.

Implements IUIToolManager.

Definition at line 241 of file algo_tool_manager_base.cpp.

References _ASSERT, IUIToolManager::eBack, eCompleted, eInvalid, IUIToolManager::eNext, eParams, eSelectProject, and m_State.

◆ CanQuickLaunch()

virtual bool CAlgoToolManagerBase::CanQuickLaunch ( ) const
inlinevirtual

Implements IUIAlgoToolManager.

Reimplemented in CSplignTool, CMuscleTool, CMafftTool, and CKalignTool.

Definition at line 102 of file algo_tool_manager_base.hpp.

◆ CleanUI()

void CAlgoToolManagerBase::CleanUI ( )
virtual

◆ DoTransition()

bool CAlgoToolManagerBase::DoTransition ( EAction  action)
virtual

Performs transition if possible and returns true, otherwise the function shall warn the user about the problem preventing the transition (such as insufficient or invalid input) and return false.

Typically this function would take user input from the current panel, validate the input and go to the next state creating new UI panel if needed.

Implements IUIToolManager.

Reimplemented in CSrcEditTool, CMergeTool, CCleanupTool, and CNGAlignTool.

Definition at line 272 of file algo_tool_manager_base.cpp.

References _ASSERT, ncbi::grid::netcache::search::fields::created, eCompleted, eInvalid, IUIToolManager::eNext, eParams, eSelectProject, CException::GetMsg(), Info(), LOG_POST, m_ProjectSelPanel, m_State, NcbiErrorBox(), next(), CException::ReportAll(), CProjectSelectorPanel::TransferDataFromWindow(), CProjectSelectorPanel::TransferDataToWindow(), x_CreateParamsPanelIfNeeded(), x_CreateProjectPanelIfNeeded(), x_GetParamsPanel(), and x_ValidateParams().

Referenced by CCleanupTool::DoTransition(), CMergeTool::DoTransition(), and CSrcEditTool::DoTransition().

◆ GetCategory()

string CAlgoToolManagerBase::GetCategory ( )
virtual

returns the name for the ToolCategory to which the tool belongs.

Tools are shown in in UI groupped by Categories.

Implements IUIAlgoToolManager.

Definition at line 402 of file algo_tool_manager_base.cpp.

References m_Category.

◆ GetCurrentPanel()

wxPanel * CAlgoToolManagerBase::GetCurrentPanel ( )
virtual

Return the panel corresponding to the current state of Tool Manager.

Implements IUIToolManager.

Reimplemented in CNGAlignTool.

Definition at line 113 of file algo_tool_manager_base.cpp.

References eParams, eSelectProject, m_ProjectSelPanel, m_State, NULL, and x_GetParamsPanel().

Referenced by RestoreDefaults().

◆ GetDescriptor()

const IUIObject & CAlgoToolManagerBase::GetDescriptor ( ) const
virtual

Returns the object describing this tool (UI meta data).

Implements IUIToolManager.

Definition at line 85 of file algo_tool_manager_base.cpp.

References m_Descriptor.

◆ GetExtensionIdentifier()

virtual string CAlgoToolManagerBase::GetExtensionIdentifier ( ) const
pure virtual

◆ GetExtensionLabel()

virtual string CAlgoToolManagerBase::GetExtensionLabel ( ) const
pure virtual

◆ GetTask()

IAppTask * CAlgoToolManagerBase::GetTask ( )
virtual

Once parameters are gathered and validated this function is called to produce the final Task object that will be executed to do the actual computational work.

Implements IUIToolManager.

Reimplemented in CSrcEditTool, CAutodefToolManager, CMergeTool, CCleanupTool, and CCreateGeneModelToolManager.

Definition at line 374 of file algo_tool_manager_base.cpp.

References CProjectSelectorPanel::GetParams(), IServiceLocator::GetServiceByType(), m_ProjectParams, m_ProjectSelPanel, m_SrvLocator, SProjectSelectorParams::ToLoadingOptions(), x_CreateLoadingJob(), and x_GetDataLocker().

◆ InitUI()

void CAlgoToolManagerBase::InitUI ( )
virtual

◆ IsCompletedState()

bool CAlgoToolManagerBase::IsCompletedState ( )
virtual

Manager goes into "Complete" state when "Finish" button is pressed and all input data is gatherred and validated.

Typically this is the last state after Final state. This state does not have an associated UI panel. When manager reaches the Completed state the framework hides the dialog and calls GetTask() function.

Implements IUIToolManager.

Definition at line 266 of file algo_tool_manager_base.cpp.

References eCompleted, and m_State.

◆ IsFinalState()

bool CAlgoToolManagerBase::IsFinalState ( )
virtual

True if Tool Manager has reached its final state, i.e.

the last page (panel) in the sequence is displayed and "Finish" button is shown. The framework calls this function to decide whether Finish or Next button needs to be shown.

Implements IUIToolManager.

Reimplemented in CSrcEditTool, CMergeTool, CCleanupTool, and CNGAlignTool.

Definition at line 259 of file algo_tool_manager_base.cpp.

References eParams, eSelectProject, m_State, and IUIToolManager::UsesSingleOMScope().

◆ LoadSettings()

void CAlgoToolManagerBase::LoadSettings ( )
virtual

◆ QuickLaunch()

virtual IAppTask* CAlgoToolManagerBase::QuickLaunch ( )
inlinevirtual

Implements IUIAlgoToolManager.

Reimplemented in CSplignTool, CMuscleTool, CMafftTool, and CKalignTool.

Definition at line 103 of file algo_tool_manager_base.hpp.

◆ RestoreDefaults()

void CAlgoToolManagerBase::RestoreDefaults ( )
virtual

Restores the default options for the current panel.

Reimplemented from IUIToolManager.

Definition at line 389 of file algo_tool_manager_base.cpp.

References GetCurrentPanel(), and CAlgoToolManagerParamsPanel::RestoreDefaults().

◆ SaveSettings()

void CAlgoToolManagerBase::SaveSettings ( ) const
virtual

◆ SetInputObjects()

string CAlgoToolManagerBase::SetInputObjects ( const vector< TConstScopedObjects > &  input)
virtual

sets input objects that can be used as arguments for the tool.

the manager can save the pointer, it will remain valid until CleanUI() is called.

Implements IUIAlgoToolManager.

Definition at line 412 of file algo_tool_manager_base.cpp.

References x_SetInputObjects(), and x_ValidateInputObjects().

◆ SetParentWindow()

void CAlgoToolManagerBase::SetParentWindow ( wxWindow *  parent)
virtual

Implements IUIToolManager.

Definition at line 79 of file algo_tool_manager_base.cpp.

References m_ParentWindow.

◆ SetRegistryPath()

void CAlgoToolManagerBase::SetRegistryPath ( const string path)
virtual

◆ SetServiceLocator()

void CAlgoToolManagerBase::SetServiceLocator ( IServiceLocator srv_locator)
virtual

Sets / unsets Service Locator.

Tool Manager can use the locator to obtain the services necessary services.

Implements IUIToolManager.

Definition at line 73 of file algo_tool_manager_base.cpp.

References m_SrvLocator.

◆ x_ConvertInputObjects() [1/2]

void CAlgoToolManagerBase::x_ConvertInputObjects ( const CTypeInfo typeInfo,
map< string, TConstScopedObjects > &  results 
)
protected

◆ x_ConvertInputObjects() [2/2]

void CAlgoToolManagerBase::x_ConvertInputObjects ( const CTypeInfo typeInfo,
TConstScopedObjects results 
)
protected

◆ x_CreateLoadingJob()

virtual CDataLoadingAppJob* CAlgoToolManagerBase::x_CreateLoadingJob ( )
protectedpure virtual

◆ x_CreateParamsPanelIfNeeded()

virtual bool CAlgoToolManagerBase::x_CreateParamsPanelIfNeeded ( )
protectedpure virtual

◆ x_CreateProjectPanelIfNeeded()

void CAlgoToolManagerBase::x_CreateProjectPanelIfNeeded ( )
protectedvirtual

◆ x_GetDataLocker()

ILocker * CAlgoToolManagerBase::x_GetDataLocker ( )
protected

◆ x_GetParamsAsRegSetting()

virtual IRegSettings* CAlgoToolManagerBase::x_GetParamsAsRegSetting ( )
protectedpure virtual

◆ x_GetParamsPanel()

virtual CAlgoToolManagerParamsPanel* CAlgoToolManagerBase::x_GetParamsPanel ( )
protectedpure virtual

◆ x_InitProjectParams()

void CAlgoToolManagerBase::x_InitProjectParams ( )
protectedvirtual

◆ x_SetInputObjects()

void CAlgoToolManagerBase::x_SetInputObjects ( const vector< TConstScopedObjects > &  input)
protectedvirtual

Definition at line 407 of file algo_tool_manager_base.cpp.

References m_InputObjects.

Referenced by SetInputObjects().

◆ x_ValidateInputObjects()

string CAlgoToolManagerBase::x_ValidateInputObjects ( )
protectedvirtual

Definition at line 125 of file algo_tool_manager_base.cpp.

References ITERATE, m_InputObjects, and IUIToolManager::UsesSingleOMScope().

Referenced by SetInputObjects().

◆ x_ValidateParams()

bool CAlgoToolManagerBase::x_ValidateParams ( )
protectedvirtual

Member Data Documentation

◆ m_Category

const string CAlgoToolManagerBase::m_Category
protected

defines tool category

Definition at line 167 of file algo_tool_manager_base.hpp.

Referenced by GetCategory().

◆ m_Descriptor

CUIObject CAlgoToolManagerBase::m_Descriptor
protected

◆ m_InputObjects

vector<TConstScopedObjects> CAlgoToolManagerBase::m_InputObjects
protected

◆ m_ParentWindow

wxWindow* CAlgoToolManagerBase::m_ParentWindow
protected

a window that will serve as a parent for our panels

Definition at line 172 of file algo_tool_manager_base.hpp.

Referenced by CClustalOmegaTool::GetMaxPanel(), CClustalwTool::GetMaxPanel(), CKalignTool::GetMaxPanel(), CMafftTool::GetMaxPanel(), CMuscleTool::GetMaxPanel(), CProSplignTool::GetMaxPanel(), CSplignTool::GetMaxPanel(), CCommonTaxTreeTool::GetMaxPanel(), CDebugMacroTool::GetMaxPanel(), CAdvancedCleanupTool::GetMaxPanel(), SetParentWindow(), CNGAlignTool::x_CreateBALSTPanelIfNeeded(), CCleanupAlignmentsToolManager::x_CreateParamsPanelIfNeeded(), CClustalOmegaTool::x_CreateParamsPanelIfNeeded(), CClustalwTool::x_CreateParamsPanelIfNeeded(), CCreateGeneModelToolManager::x_CreateParamsPanelIfNeeded(), CFindOverlapTool::x_CreateParamsPanelIfNeeded(), CGroupAlignmentsToolManager::x_CreateParamsPanelIfNeeded(), CKalignTool::x_CreateParamsPanelIfNeeded(), CMafftTool::x_CreateParamsPanelIfNeeded(), CMergeAlignmentsToolManager::x_CreateParamsPanelIfNeeded(), CMuscleTool::x_CreateParamsPanelIfNeeded(), CNGAlignTool::x_CreateParamsPanelIfNeeded(), CProSplignTool::x_CreateParamsPanelIfNeeded(), CSplignTool::x_CreateParamsPanelIfNeeded(), CCommonTaxTreeTool::x_CreateParamsPanelIfNeeded(), CTreeBuilderTool::x_CreateParamsPanelIfNeeded(), CCleanupTool::x_CreateParamsPanelIfNeeded(), CMergeTool::x_CreateParamsPanelIfNeeded(), CWindowMaskerTool::x_CreateParamsPanelIfNeeded(), CAutodefToolManager::x_CreateParamsPanelIfNeeded(), CDebugMacroTool::x_CreateParamsPanelIfNeeded(), CSrcEditTool::x_CreateParamsPanelIfNeeded(), CAdvancedCleanupTool::x_CreateParamsPanelIfNeeded(), CCreateNeedlemanWunschToolManager::x_CreateParamsPanelIfNeeded(), and x_CreateProjectPanelIfNeeded().

◆ m_ProjectParams

SProjectSelectorParams CAlgoToolManagerBase::m_ProjectParams
protected

◆ m_ProjectSelPanel

CProjectSelectorPanel* CAlgoToolManagerBase::m_ProjectSelPanel
protected

◆ m_RegPath

string CAlgoToolManagerBase::m_RegPath
protected

◆ m_SrvLocator

IServiceLocator* CAlgoToolManagerBase::m_SrvLocator
protected

◆ m_State

EState CAlgoToolManagerBase::m_State
protected

The documentation for this class was generated from the following files:
Modified on Sat Dec 02 09:20:16 2023 by modify_doxy.py rev. 669887