48 static const char*
kWidth =
".Width";
58 , m_TextCellAttrEdit()
60 , m_FloatCellAttrEdit()
61 , m_CmdProccessor(cmdProccessor)
62 , m_EventHandler(*this)
64 SetAttrProvider(
new wxGridCellAttrProvider);
74 static bool registered =
false;
81 "Assign Value to a Column",
84 "Command shows dialog for assigning value to a whole column of a table");
87 "Copy values of Column to another Column",
90 "Copy values of Column to another Column");
118 wxArrayString strings2;
120 strings2.push_back(wxString::FromUTF8(it->c_str()));
123 wxGridCellAttr* attr =
new wxGridCellAttr();
124 attr->SetEditor(
new wxGridCellChoiceEditor(strings2));
125 attr->SetReadOnly(
false);
126 SetColAttr(attr, (
int)
i);
138 wxGrid* oldGrid = GetView();
140 oldGrid->PopEventHandler();
142 wxGridTableBase::SetView(
grid );
160 grid->SetColSize((
int)
i, width);
216 return wxEmptyString;
223 wxString s = wxGridTableBase::GetRowLabelValue(row);
237 return wxEmptyString;
241 return wxString::FromUTF8(s.c_str());
247 return wxEmptyString;
251 return wxString::FromUTF8(
m_TableData->GetHtmlValue(row, col).c_str());
254 return wxString::FromUTF8(s.c_str());
265 if (wxGRID_VALUE_STRING == typeName)
268 if (wxGRID_VALUE_NUMBER == typeName)
271 if (wxGRID_VALUE_FLOAT == typeName)
284 if (wxGRID_VALUE_STRING == typeName &&
288 if (wxGRID_VALUE_NUMBER == typeName &&
292 if (wxGRID_VALUE_FLOAT == typeName &&
315 if (row < 0 || col < 0) {
514 vector<size_t>::iterator it =
526 wxGridTableMessage msg(
this,
527 wxGRIDTABLE_NOTIFY_COLS_INSERTED,
528 static_cast<int>(index),
531 GetView()->ProcessTableMessage( msg );
535 GetView()->SetColSize((
int)index, colWidth);
552 wxGridTableMessage msg(
this,
553 wxGRIDTABLE_NOTIFY_COLS_DELETED,
554 static_cast<int>(index),
557 GetView()->ProcessTableMessage( msg );
594 for (
size_t i = 0;
i < rows; ++
i) {
608 if (colums.size() > colCount)
611 for (
size_t i = 0;
i < colums.size(); ++
i) {
612 size_t col = colums[
i];
615 if (!col_set.
insert(col).second)
628 else if (sortColumn.first <
m_TableData->GetColsCount()) {
711 size_t min_row_idx = (size_t)-1;
712 size_t selected_idx = (size_t)-1;
730 size_t next_row_idx = (size_t)-1;
731 size_t selected_idx = (size_t)-1;
740 if (selected_idx != (
size_t)-1)
752 size_t prev_row_idx = 0;
753 size_t selected_idx = (size_t)-1;
762 if (selected_idx != (
size_t)-1)
806 vector<size_t> vis_columns;
813 vector<int> vis_columns_i;
816 if (!vis_columns_i.empty()) {
817 for (
size_t i = 0;
i < vis_columns_i.size(); ++
i)
818 vis_columns.push_back(vis_columns_i[
i]);
837 vector<int> vis_columns_i;
845 int width = GetView()->GetColSize((
int)
i);
862 if (m_CmdProccessor) {
878 if(dlg.ShowModal() == wxID_OK && m_Adapter.m_CmdProccessor) {
881 m_Adapter.m_CmdProccessor->Execute(
command);
894 if(dlg.ShowModal() == wxID_OK && m_Adapter.m_CmdProccessor) {
897 m_Adapter.m_CmdProccessor->Execute(
command);
IEditCommand * GetEditCommand()
static bool CanAssignColumn(ITableData &table)
static bool CanCopyColumn(ITableData &table)
IEditCommand * GetEditCommand()
CRegistryWriteView GetWriteView(const string §ion)
get a read-write view at a particular level.
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
class CRegistryReadView provides a nested hierarchical view at a particular key.
int GetInt(const string &key, int default_val=0) const
access a named key at this level, with no recursion
void GetIntVec(const string &key, vector< int > &val) const
void Set(const string &key, int val)
access a named key at this level, with no recursion
static void Sort(ITableData &tableData, size_t column, size_t *begin, size_t *end, bool descending=false)
CUICommandRegistry is a centralized registry where all application commands should be registered.
static CUICommandRegistry & GetInstance()
the main instance associated with the application
wxMenu * CreateMenu(const SwxMenuItemRec *items)
create a menu from a static definition (see WX_*_MENU macros)
int RegisterCommand(CUICommand *cmd)
assumes ownership of the given object returns a command id (useful when registry is used for auto id ...
void OnUpdateCopyColumn(wxUpdateUIEvent &event)
void OnCopyColumn(wxCommandEvent &event)
void OnAssignColumnValue(wxCommandEvent &event)
void OnUpdateAssignColumnValue(wxUpdateUIEvent &event)
CwxGridTableAdapter & m_Adapter
bool x_ColToTableData(int &col)
int x_LoadColumnWidth(const string &label)
vector< size_t > m_SelectedRowToTable
maps from index in m_Selected to table (ITableData) index
vector< size_t > m_TableToRow
maps from ITableData index to row position in display
wxGridCellAttr * x_GetIntRendererAttr(bool allowEdit)
bool x_CoordsToTableData(int &row, int &col)
wxGridCellAttr * m_HtmlCellAttrR
wxGridCellAttr * x_GetHtmlCellAttrR()
bool x_RowToTableData(int &row)
virtual void SetValueAsDouble(int row, int col, double value)
virtual void LoadSettings()
virtual void SetSelection(const vector< size_t > &query_sel)
virtual long GetValueAsLong(int row, int col)
virtual bool IsColumnShown(size_t col) const
void x_SaveColumnWidth(const string &label, int width)
bool x_ValidateColumns(const vector< size_t > &colums) const
virtual void SetValueAsLong(int row, int col, long value)
wxGridCellAttr * x_GetHtmlCellAttrL()
wxGridCellAttr * m_TextCellAttrEdit
wxGridCellAttr * m_FloatCellAttr
virtual void SetValue(int row, int col, const wxString &value)
ICommandProccessor * m_CmdProccessor
wxGridCellAttr * m_IntCellAttr
virtual double GetValueAsDouble(int row, int col)
string GetRegPath() const
virtual size_t GetOriginalRow(size_t queryRow) const
virtual void SaveSettings() const
wxGridCellAttr * x_GetFloatRendererAttr(bool allowEdit)
CwxGridTableAdapter(ITableData &tableData, ICommandProccessor *cmdProccessor)
vector< size_t > m_SelectedTableToRow
maps from ITableData index to index in m_Selected array
wxGridCellAttr * m_HtmlCellAttrL
vector< size_t > m_RowToTable
maps from row position in display to table (ITableData) index
wxGridCellAttr * x_GetDefaultRendererAttr(bool allowEdit)
virtual void IterateSelection(int dir)
wxGridCellAttr * m_FloatCellAttrEdit
virtual int GetNumberCols()
virtual void SortByColumn(TSortColumn sortColumn)
CEventHandler m_EventHandler
virtual wxString GetValue(int row, int col)
virtual void SetView(wxGrid *grid)
void x_UpdateSelectedIndices()
virtual wxString GetColLabelValue(int col)
virtual bool CanGetValueAs(int row, int col, const wxString &typeName)
virtual bool CanSetValueAs(int row, int col, const wxString &typeName)
virtual wxString GetRowLabelValue(int row)
wxString GetHtmlValue(int row, int col)
wxGridCellAttr * m_DefaultCellAttr
virtual int GetNumberRows()
virtual void ShowColumn(size_t col, bool show)
virtual size_t GetCurrentRow(size_t queryRow) const
wxGridCellAttr * m_IntCellAttrEdit
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
vector< size_t > m_Selected
vector< size_t > m_VisibleColumns
size_t m_CurrentSelection
CIRef< ITableData > m_TableData
pair< size_t, ESort > TSortColumn
virtual void SetSelection(const vector< size_t > &query_sel)
iterator_bool insert(const value_type &val)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static const char label[]
unsigned int
A callback function used to compare two keys in a database.
static const char *const strings[]
ViewerWindowBase::OnEditMenu ViewerWindowBase::OnJustification EVT_MENU(MID_SHOW_GEOM_VLTNS, ViewerWindowBase::OnShowGeomVltns) EVT_MENU(MID_FIND_PATTERN
#define WX_DEFINE_MENU(name)
New macros for defining menus for use with CUICommandRegistry.
#define WX_SUBMENU(label)
#define WX_MENU_SEPARATOR_L(label)
#define WX_MENU_ITEM(cmd)
wxMenu * CreateMenu(const CMenuItem *item)
Creates a wxMenu object replicating the structure of CMenuItem.
wxString ToWxString(const string &s)
static const char * kVisibleColumns
static const char * kWidth