1 #ifndef GUI_WIDGETS_ALNMULTI___ALNMULTI_MODEL__HPP
2 #define GUI_WIDGETS_ALNMULTI___ALNMULTI_MODEL__HPP
82 kMasterRowIndex = -1000
100 const IAlignRow* GetRow(TNumrow row)
const;
102 const size_t GetNumRows()
const;
104 bool IsRowVisible(TNumrow row)
const;
105 bool IsRowSelected(TNumrow row)
const;
108 int GetRowState(TNumrow row)
const;
110 inline void GetSelectedRows(vector<TNumrow>& rows);
112 virtual void CreateRows(
void);
113 virtual void ClearRows(
void);
116 virtual void CreateConsensus(
void);
118 void SetPortLimits(
void);
121 virtual bool CanChangeMasterRow()
const;
122 virtual bool SetMasterRow(TNumrow new_row);
128 virtual void EnableAutoSorting(
bool b_en);
132 virtual void UpdateSortOrder(
void);
145 virtual void SetShownElements(
int shown_mask);
150 virtual void SetRowOrder(
const vector<TNumrow>& rows,
int pos = 0);
156 void SetVisible(vector<TNumrow> rows,
bool b_visible,
157 bool b_invert_others =
false);
160 virtual void UpdateOnStyleChanged(
void);
163 virtual void UpdateOnRowHChanged(
void);
167 virtual void UpdateOnDataChanged();
195 virtual const TMethods& GetMethods();
197 virtual void EnableBackgroundProcessing(
bool en);
203 virtual void ResetCurrentMethod();
205 virtual string GetDefaultMethod(
void);
206 virtual void SetDefaultMethod(
const string& method_name);
224 : m_Row(p_row), m_Line(line)
227 : m_Row(proto.m_Row), m_Line(proto.m_Line)
230 bool IsVisible()
const;
231 bool IsSelected()
const;
233 static bool PRecLineLess(
const SRowRecord* rec1,
238 inline SRowRecord& x_GetRecordByRow(TNumrow row);
239 inline const SRowRecord& x_GetRecordByRow(TNumrow row)
const;
241 virtual void x_CreateDisplayStyle();
244 virtual IAlignRow* x_CreateRow(TNumrow row);
246 virtual void x_UpdateMinScale();
247 virtual void x_UpdateOnCoordsChanged();
248 virtual void x_UpdateOnVisibilityChanged(
void);
250 virtual bool x_UsingAutoSort()
const;
257 virtual bool x_SortRows(
void);
260 virtual void x_DoUpdateRowsOrder(
void);
263 virtual void x_DoUpdateRowPositions(
void);
266 void x_DoUpdateRowLines(
void);
275 virtual void x_SetEntries(
const TEntryVector& v_entries);
286 const IAlignRow* x_GetRowByLine(
int Index)
const;
359 return p1.second < p2.second;
363 return p1.second > p2.second;
420 int state = m_Row->GetRowState();
CSelListModelImpl< IAlnMultiDataSource::TNumrow > TNumrowModelImpl
CAlnMultiModelFactory - a factory to separate creation of the model from widget.
virtual ~CAlnMultiModelFactory()
virtual CAlnMultiModel * CreateModel()=0
class CAlnMultiModel - represents a visual model of an alignment.
CAlnMultiModel(const CAlnMultiModel &)
forbidden
SRowRecord & x_GetRecordByRow(TNumrow row)
CScoreCache::IListener * m_Listener
void GetSelectedRows(vector< TNumrow > &rows)
const CRowStyleCatalog * m_StyleCatalog
list< objects::CSeq_loc * > TPSeqLocList
TRowRecVector m_vVisibleRows
line number SRowRecord* for visible rows
bool m_EnableScoring
scoring support
IAlignRow * GetRow(TNumrow row)
CAlnMultiModel inline functions.
CIRef< IAlignRow > m_DataConsensusRow
IAligRow corresponding to consensus in the data.
CAlnMultiModel & operator=(const CAlnMultiModel &)
CRef< CScoreCache > m_ScoreCache
const size_t GetNumRows() const
Get number of rows registered in model.
vector< SRowRecord > TRowToRecMap
CRangeCollection< TSeqPos > TRangeColl
list< CIRef< IScoringMethod > > TMethods
CRef< CConsensusRow > m_ConsensusRow
vector< int > m_vVisibleRowPos
bottom positions for visible rows[line]
CWidgetDisplayStyle * m_Style
IAlnExplorer::ESortState TSortState
TMethods m_Methods
registered scoring methods
TRowToRecMap m_RowToRec
map storing records for all rows
bool IsRowSelected(TNumrow row) const
bool IsRowVisible(TNumrow row) const
IAlignRow::TColumnType TColumnType
bool m_AutoSort
sorting support
CIRef< IAlignRow > m_MasterRow
IAligRow corresponding to Anchor.
vector< SRowRecord * > TRowRecVector
IAlnMultiDataSource * m_DataSource
CPairSorter(bool ascending)
vector< TPair > TPairVector
pair< TKey, TValue > TPair
void Sort(TPairVector &data)
CRowStyleCatalog is a collection of CRowDisplayStyle-s assigned to rows in alignment.
virtual void OnScoringFinished()=0
virtual void OnScoringProgress(float progress, const string &msg)=0
void SetListener(IListener *listener)
CSelListModelImpl provides a defult implementation of ISelListModel.
virtual TItem x_GetItem(TIndex index) const =0
virtual void SLM_GetSelectedItems(TItemVector &items) const
virtual void x_CompleteInsertion()=0
performs update after all items have been inserted
virtual bool x_IsItemSelected(TIndex index) const =0
virtual void SLM_SelectAll(bool bSelect=true)
virtual TIndex x_GetItemIndex(const TItem &item)=0
virtual void x_SelectItem(TIndex index, bool b_sel)=0
virtual TIndex x_GetItemsCount() const =0
virtual void x_SetEntries(const TEntryVector &v_entries)=0
virtual void SLM_InvertSingleItem(TIndex index)
virtual void x_ClearItems()=0
virtual void x_EraseMarkedItems()=0
deletes all marked items in a single pass, performs neccessary updates
virtual void SLM_SelectSingleItem(TIndex index)
virtual void x_InsertItem(TIndex index, const TItemEntry &entry)=0
inserts item, but does not updates all data structures
virtual void x_MarkItemForErase(TIndex index)=0
mark item for deletion
Interface IAlignRow - abstracts row rendering in Multiple Alignment Widget.
IAlnMultiDataSource - interface to a data source representing an abstract multiple alignment.
IAlnMultiRendererContext - this interface represents context in which CAlnMultiRenderer lives.
virtual IAlignRow * GetConsensusRow()=0
virtual int GetLineByRowNum(TNumrow row) const =0
virtual int GetShownElements()=0
virtual bool IsRendererFocused()=0
virtual bool IsItemSelected(int index) const =0
virtual const CGlPane & GetAlignPort() const =0
virtual bool SortByColumn(TColumnType type, bool ascending)=0
virtual int GetFocusedItemIndex() const =0
virtual IAlignRow * GetRowByLine(int index)=0
all Y coordinates are OpenGL Viewport coordinates (not widget coords) "index" is a line index (not ro...
virtual int GetLinePosY(int index) const =0
IAlnExplorer::TNumrow TNumrow
virtual int GetLineHeight(int index) const =0
virtual IAlnExplorer::ESortState GetColumnSortState(TColumnType type)=0
virtual IAlignRow * GetMasterRow()=0
virtual int GetLineByModelY(int y) const =0
virtual TNumrow GetLinesCount() const =0
IScoringMethod represents an abstract algorithm for calculating alignment scores and assigning colors...
static TThisType GetEmpty(void)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_GUIWIDGETS_ALNMULTIPLE_EXPORT
range(_Ty, _Ty) -> range< _Ty >
constexpr auto sort(_Init &&init)
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
static const char * catalog
SRowRecord is a record representing a single alignment row.
CIRef< IAlignRow > m_Row
row object ptr
SRowRecord(IAlignRow *p_row=0, TLine line=-1)
SRowRecord(const SRowRecord &proto)
TLine m_Line
visual line index