44 #include <wx/msgdlg.h>
45 #include <wx/toolbar.h>
47 #include <wx/statbox.h>
48 #include <wx/stattext.h>
49 #include <wx/radiobut.h>
50 #include <wx/checkbox.h>
51 #include <wx/button.h>
52 #include <wx/wupdlock.h>
53 #include <wx/dcclient.h>
54 #include <wx/valgen.h>
55 #include <wx/wupdlock.h>
121 bool set_master(
false);
130 "Can not select the master sequence. Alignment can not be used.");
176 : wxPanel(parent,
wxID_ANY, wxDefaultPosition,
size, wxSIMPLE_BORDER),
177 m_Params(params), m_Lambda(0.0), m_Border(10), m_Start(0), m_Lone(0), m_Lold(0), m_Lupd(0)
200 int Aln = (Aln_old > Aln_upd) ? Aln_old : Aln_upd;
216 if (Left_old > Left_upd) {
217 z1 += (
int)floor((
double)(Left_old - Left_upd) /
m_Lambda);
220 y1 += (
int)floor((
double)(Left_upd - Left_old) /
m_Lambda);
229 int y2 = x1 + (
int) floor((
double)(Right_old)/
m_Lambda);
230 int z2 = x1 + (
int) floor((
double)(Right_upd)/
m_Lambda);
233 int rect_height = 15;
239 string str_left(
"1"), str_right(
"1");
250 dc.SetBrush(*wxTRANSPARENT_BRUSH);
251 dc.SetPen(*wxBLACK_PEN);
253 dc.DrawRectangle(y1, coord_Y, x1 - y1, rect_height);
254 dc.DrawRectangle(x0, coord_Y, y2 - x0, rect_height);
255 wxRegion rg_old1(y1 , coord_Y, x1 - y1, rect_height);
256 wxRegion rg_old2(x0, coord_Y, y2 - x0, rect_height);
258 rg_old1.Intersect(rg_old2);
259 wxRect old_aln_rg = rg_old1.GetBox();
260 dc.SetDeviceClippingRegion(rg_old1);
261 dc.SetBrush(*wxGREEN_BRUSH);
262 dc.DrawRectangle(old_aln_rg);
263 dc.DestroyClippingRegion();
266 int mid_align = x0 + (x1 - x0) / 2 - 4;
271 str_left.assign(
"1"); str_right.assign(
"1");
282 dc.SetBrush(*wxTRANSPARENT_BRUSH);
283 dc.SetPen(*wxBLACK_PEN);
285 dc.DrawRectangle(z1 , coord_Y +
offset, x1 - z1 , rect_height);
286 dc.DrawRectangle(x0, coord_Y +
offset, z2 - x0, rect_height);
287 wxRegion rg_upd1(z1, coord_Y +
offset, x1 - z1, rect_height);
288 wxRegion rg_upd2(x0, coord_Y +
offset, z2 - x0, rect_height);
290 rg_upd1.Intersect(rg_upd2);
291 wxRect upd_aln_rg = rg_upd1.GetBox();
292 dc.SetDeviceClippingRegion(rg_upd1);
293 dc.SetBrush(*wxGREEN_BRUSH);
294 dc.DrawRectangle(upd_aln_rg);
295 dc.DestroyClippingRegion();
306 int Aln = (Aln_old > Aln_upd) ? Aln_old : Aln_upd;
310 int Left_max = (Left_old > Left_upd) ? Left_old : Left_upd;
314 int Right_max = (Right_old > Right_upd) ? Right_old : Right_upd;
318 m_Lambda = (double)(Left_max + Aln + Right_max) / (double)width;
326 dc.GetTextExtent(
wxT(
"1"), &
m_Lone, &height_txt);
332 int LeftMax = (Left_old >= Left_upd) ? Left_old : Left_upd;
336 int RightMax = (Right_old >= Right_upd) ? Right_old : Right_upd;
340 int width = GetClientRect().GetWidth() -
m_Start - End;
341 if (width < 0)
return 0;
434 wxWindowID
id,
const wxPoint& pos,
const wxSize&
size,
long style )
435 :
m_Scope(0), m_UpdSeqInput(updseq_in)
453 #ifdef __WXOSX_COCOA__
454 SetBackgroundStyle(wxBG_STYLE_COLOUR);
455 SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_FRAMEBK));
458 wxPanel::Create( parent,
id, pos,
size, style );
463 GetSizer()->SetSizeHints(
this);
514 static const string kRegPath =
"Dialogs.UpdateSequencePanel";
524 wxStaticBox* itemStaticBoxSizer3Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Alignment"));
528 wxBoxSizer* itemBoxSizer4 =
new wxBoxSizer(wxHORIZONTAL);
531 wxBoxSizer* itemBoxSizer5 =
new wxBoxSizer(wxVERTICAL);
532 itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_CENTER_VERTICAL, 2);
535 itemBoxSizer5->Add(
m_OldSeqName, 0, wxALIGN_LEFT|wxALL, 5);
538 itemBoxSizer5->Add(
m_NewSeqName, 0, wxALIGN_LEFT|wxALL, 5);
540 m_NoAlignmentText =
new wxStaticText(
m_AlignStaticBoxSizer->GetStaticBox(), wxID_STATIC,
_(
"Could not form alignment between old and update sequence"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
544 itemBoxSizer4->Add(0, 0, 1, wxALIGN_TOP, 0);
557 m_Toolbar->SetToolBitmapSize(wxSize(16, 16));
559 m_Toolbar->SetToolBitmapSize(wxSize(35, 35));
562 itemBoxSizer4->Add(
m_Toolbar, 0, wxALIGN_BOTTOM | wxRIGHT, 5);
567 wxBoxSizer* itemBoxSizer12 =
new wxBoxSizer(wxHORIZONTAL);
571 itemStaticText13->SetForegroundColour(wxColour(0, 0, 0));
572 itemStaticText13->SetFont(wxFont(wxNORMAL_FONT->GetPointSize(), wxNORMAL_FONT->GetFamily(), wxNORMAL_FONT->GetStyle(), wxFONTWEIGHT_BOLD, wxNORMAL_FONT->GetUnderlined(), wxNORMAL_FONT->GetFaceName()));
573 itemBoxSizer12->Add(itemStaticText13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
576 itemBoxSizer12->Add(itemWindow14, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
578 wxBoxSizer* itemBoxSizer15 =
new wxBoxSizer(wxHORIZONTAL);
579 m_MainSizer->Add(itemBoxSizer15, 0, wxALIGN_LEFT|wxALL, 0);
581 wxStaticBox* itemStaticBoxSizer16Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Sequence Update"));
582 wxStaticBoxSizer* itemStaticBoxSizer16 =
new wxStaticBoxSizer(itemStaticBoxSizer16Static, wxVERTICAL);
583 itemBoxSizer15->Add(itemStaticBoxSizer16, 0, wxALIGN_TOP|wxALL, 5);
585 wxBoxSizer* itemBoxSizer17 =
new wxBoxSizer(wxVERTICAL);
586 itemStaticBoxSizer16->Add(itemBoxSizer17, 0, wxALIGN_LEFT|wxALL, 0);
588 m_NoChange =
new wxRadioButton( itemStaticBoxSizer16->GetStaticBox(),
ID_SEQUPD_BTN1,
_(
"No change"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
590 itemBoxSizer17->Add(
m_NoChange, 0, wxALIGN_LEFT|wxALL, 5);
592 m_Replace =
new wxRadioButton( itemStaticBoxSizer16->GetStaticBox(),
ID_SEQUPD_BTN2,
_(
"Replace"), wxDefaultPosition, wxDefaultSize, 0 );
594 itemBoxSizer17->Add(
m_Replace, 0, wxALIGN_LEFT|wxALL, 5);
597 RunningInsideNCBI() ?
_(
"Patch") :
_(
"Patch aligned region"), wxDefaultPosition, wxDefaultSize, 0 );
599 itemBoxSizer17->Add(
m_Patch, 0, wxALIGN_LEFT|wxALL, 5);
601 m_Extend5 =
new wxRadioButton( itemStaticBoxSizer16->GetStaticBox(),
ID_SEQUPD_BTN4,
_(
"Extend 5'"), wxDefaultPosition, wxDefaultSize, 0 );
603 itemBoxSizer17->Add(
m_Extend5, 0, wxALIGN_LEFT|wxALL, 5);
605 m_Extend3 =
new wxRadioButton( itemStaticBoxSizer16->GetStaticBox(),
ID_SEQUPD_BTN5,
_(
"Extend 3'"), wxDefaultPosition, wxDefaultSize, 0 );
607 itemBoxSizer17->Add(
m_Extend3, 0, wxALIGN_LEFT|wxALL, 5);
609 itemBoxSizer17->Add(7, 8, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
614 m_IgnoreAlignChk->SetToolTip(
wxT(
"When checked, the update sequence is attached to the old sequence with no overlap. "
615 "Existing and imported features are shifted accordingly."));
619 wxStaticBox* itemStaticBoxSizer25Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Existing Features"));
620 wxStaticBoxSizer* itemStaticBoxSizer25 =
new wxStaticBoxSizer(itemStaticBoxSizer25Static, wxVERTICAL);
621 itemBoxSizer15->Add(itemStaticBoxSizer25, 0, wxALIGN_TOP|wxALL, 5);
623 wxRadioButton* itemRadioButton26 =
new wxRadioButton( itemStaticBoxSizer25->GetStaticBox(),
ID_SEQUPD_DELFEAT_BTN1,
_(
"Do not remove"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
624 itemRadioButton26->SetValue(
true);
625 itemStaticBoxSizer25->Add(itemRadioButton26, 0, wxALIGN_LEFT|wxALL, 5);
627 wxRadioButton* itemRadioButton27 =
new wxRadioButton( itemStaticBoxSizer25->GetStaticBox(),
ID_SEQUPD_DELFEAT_BTN2,
_(
"Remove in aligned area"), wxDefaultPosition, wxDefaultSize, 0 );
628 itemRadioButton27->SetValue(
false);
629 itemStaticBoxSizer25->Add(itemRadioButton27, 0, wxALIGN_LEFT|wxALL, 5);
631 wxRadioButton* itemRadioButton28 =
new wxRadioButton( itemStaticBoxSizer25->GetStaticBox(),
ID_SEQUPD_DELFEAT_BTN3,
_(
"Remove outside aligned area"), wxDefaultPosition, wxDefaultSize, 0 );
632 itemRadioButton28->SetValue(
false);
633 itemStaticBoxSizer25->Add(itemRadioButton28, 0, wxALIGN_LEFT|wxALL, 5);
635 wxRadioButton* itemRadioButton29 =
new wxRadioButton( itemStaticBoxSizer25->GetStaticBox(),
ID_SEQUPD_DELFEAT_BTN4,
_(
"Remove all"), wxDefaultPosition, wxDefaultSize, 0 );
636 itemRadioButton29->SetValue(
false);
637 itemStaticBoxSizer25->Add(itemRadioButton29, 0, wxALIGN_LEFT|wxALL, 5);
640 wxStaticBox* itemStaticBoxSizer30Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Import Features"));
641 wxStaticBoxSizer* itemStaticBoxSizer30 =
new wxStaticBoxSizer(itemStaticBoxSizer30Static, wxHORIZONTAL);
642 itemBoxSizer15->Add(itemStaticBoxSizer30, 0, wxALIGN_TOP | wxALL, 5);
644 wxBoxSizer* itemBoxSizer31 =
new wxBoxSizer(wxVERTICAL);
645 itemStaticBoxSizer30->Add(itemBoxSizer31, 0, wxALIGN_TOP | wxALL, 0);
648 itemBoxSizer31->Add(
m_FeatType, 0, wxALIGN_LEFT | wxALL, 5);
650 wxBoxSizer* itemBoxSizer33 =
new wxBoxSizer(wxVERTICAL);
651 itemStaticBoxSizer30->Add(itemBoxSizer33, 0, wxALIGN_TOP | wxALL, 0);
657 itemBoxSizer33->Add(7, 8, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 0);
659 wxRadioButton* itemRadioButton36 =
new wxRadioButton(itemStaticBoxSizer30->GetStaticBox(),
ID_SEQUPD_IMPFEATUPD_BTN1,
_(
"Except duplicates"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
660 itemRadioButton36->SetValue(
false);
661 itemBoxSizer33->Add(itemRadioButton36, 0, wxALIGN_LEFT | wxALL, 5);
663 wxRadioButton* itemRadioButton37 =
new wxRadioButton(itemStaticBoxSizer30->GetStaticBox(),
ID_SEQUPD_IMPFEATUPD_BTN2,
_(
"Merge duplicates"), wxDefaultPosition, wxDefaultSize, 0);
664 itemRadioButton37->SetValue(
false);
665 itemBoxSizer33->Add(itemRadioButton37, 0, wxALIGN_LEFT | wxALL, 5);
667 wxRadioButton* itemRadioButton38 =
new wxRadioButton(itemStaticBoxSizer30->GetStaticBox(),
ID_SEQUPD_IMPFEATUPD_BTN3,
_(
"Replace duplicates"), wxDefaultPosition, wxDefaultSize, 0);
668 itemRadioButton38->SetValue(
false);
669 itemBoxSizer33->Add(itemRadioButton38, 0, wxALIGN_LEFT | wxALL, 5);
671 wxRadioButton* itemRadioButton39 =
new wxRadioButton(itemStaticBoxSizer30->GetStaticBox(),
ID_SEQUPD_IMPFEATUPD_BTN4,
_(
"Including duplicates"), wxDefaultPosition, wxDefaultSize, 0);
672 itemRadioButton39->SetValue(
false);
673 itemBoxSizer33->Add(itemRadioButton39, 0, wxALIGN_LEFT | wxALL, 5);
675 wxStaticBox* itemStaticBoxSizer40Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Options"));
676 wxStaticBoxSizer* itemStaticBoxSizer40 =
new wxStaticBoxSizer(itemStaticBoxSizer40Static, wxVERTICAL);
677 itemBoxSizer15->Add(itemStaticBoxSizer40, 0, wxALIGN_TOP | wxALL, 5);
683 wxCheckBox* itemCheckBox42 =
new wxCheckBox(itemStaticBoxSizer40->GetStaticBox(),
ID_SEQUPD_ADDCITSUB,
_(
"Add cit-sub to updated sequence"), wxDefaultPosition, wxDefaultSize, 0);
684 itemCheckBox42->SetValue(
false);
685 itemStaticBoxSizer40->Add(itemCheckBox42, 0, wxALIGN_LEFT | wxALL, 5);
687 wxCheckBox* itemCheckBox43 =
new wxCheckBox(itemStaticBoxSizer40->GetStaticBox(),
ID_SEQUPD_UPDPROTEIN,
_(
"Update proteins for updated sequence"), wxDefaultPosition, wxDefaultSize, 0);
688 itemCheckBox43->SetValue(
false);
689 itemStaticBoxSizer40->Add(itemCheckBox43, 0, wxALIGN_LEFT | wxALL, 5);
697 itemCheckBox42->SetValidator(wxGenericValidator(&
m_AddCitSub));
701 wxStaticBox* itemStaticBoxSizer40Static =
new wxStaticBox(itemPanel1,
wxID_ANY,
_(
"Options"));
702 wxStaticBoxSizer* itemStaticBoxSizer40 =
new wxStaticBoxSizer(itemStaticBoxSizer40Static, wxVERTICAL);
703 itemBoxSizer15->Add(itemStaticBoxSizer40, 0, wxALIGN_TOP | wxALL, 5);
705 m_ImportFeature =
new wxCheckBox(itemStaticBoxSizer40->GetStaticBox(),
ID_SEQUPD_IMPCHK,
_(
"Import all features from update sequence"), wxDefaultPosition, wxDefaultSize, 0);
707 itemStaticBoxSizer40->Add(
m_ImportFeature, 0, wxALIGN_LEFT | wxALL, 5);
710 _(
"Annotation is copied from an earlier version \nof the same nucleotide accession"), wxDefaultPosition, wxDefaultSize, 0);
739 m_DeltaSeqText =
new wxStaticText( itemPanel1, wxID_STATIC,
_(
"The old sequence is delta sequence, if updated, it will be converted to raw."), wxDefaultPosition, wxDefaultSize, 0 );
800 _ASSERT(oldseqRow != updseqRow);
820 if (aln_start_upd > aln_start && new3end < old3end) {
825 else if (aln_start_upd < aln_start && new3end > old3end) {
844 m_DeltaSeqText->SetLabel(
"Either the old or the update sequence is a delta sequence with far pointers.");
934 label.append(
" Length: ");
966 string label(
"Update sequence: ");
972 label.assign(
"Old sequence: ");
1002 if (!Validate() || !TransferDataFromWindow()) {
1058 string label(
"Update sequence: ");
1062 label.assign(
"Old sequence: ");
1104 wxCheckBox* box =
dynamic_cast<wxCheckBox*
>(win);
1106 box->SetValue(
value);
1114 wxCheckBox* box =
dynamic_cast<wxCheckBox*
>(win);
1116 return box->GetValue();
1153 return wxNullBitmap;
1172 event.Enable(
false);
static CRef< CScope > m_Scope
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
static const char * kDefaultScoringMethod
void Init(objects::CScope &scope, const objects::CSeq_align &align)
initial data set from which an alignment will be build
CRef< IAlnMultiDataSource > CreateDataSource()
void PreCreateDataSource(bool sparse)
virtual CWidgetDisplayStyle * GetDisplayStyle()
const size_t GetNumRows() const
Get number of rows registered in model.
virtual void SetDataSource(IAlnMultiDataSource *p_ds)
void ShowProgressPanel(float progress, const string &msg)
class CAlnMultiRenderer - renders multiple alignment represented by IAlnMultiRendererContext (the Mod...
int GetColumnIndexByType(TColumnType type) const
void SetColumnVisible(int index, bool b_visible)
CUpdate - notification send by CUIDataSource to the listener.
double GetProgressNorm() const
ENa_strand GetSeqStrand(TDim row) const
TSeqPos GetSeqStop(TDim row) const
TSeqPos GetSeqStart(TDim row) const
int x_GetLeft_UpdSeq() const
int x_GetRight_OldSeq() const
int x_FindWidthDrawingArea(wxDC &dc)
void SetParams(const CUpdateSeqPanel::SDrawingParams ¶ms)
void PaintEvent(wxPaintEvent &event)
int x_GetRight_UpdSeq() const
int x_GetLeft_OldSeq() const
void x_SetScalingFactor(wxDC &dc)
CUpdateSeqPanel::SDrawingParams m_Params
CEvent - generic event implementation TODO TODO - Attachments.
virtual bool SetFieldName(const string &field)
virtual string GetFieldName(const bool subfield=false)
Returns the name of the field as selected in the panel.
void ListPresentFeaturesFirst(const objects::CSeq_entry_Handle &entry, vector< const objects::CFeatListItem * > *featlist=nullptr)
static CGuiRegistry & GetInstance()
access the application-wide singleton
class CRegistryReadView provides a nested hierarchical view at a particular key.
CRowDisplayStyle is a base class representing a display style for IAlignRow.
void SetDefaultStyle(CRowDisplayStyle *style)
assumes ownership
void SetWidgetStyle(const CWidgetDisplayStyle *style)
static ESubtype SubtypeNameToValue(CTempString sName)
Turn a string into its ESubtype which is NOT necessarily related to the identifier of the enum.
Sequence update exception class.
TSeqPos GetSeqStop(TDim row) const
TSeqPos GetSeqStart(TDim row) const
static objects::CSeq_align::TDim FindRowInAlignment(const objects::CBioseq_Handle &bsh, const objects::CSeq_align &align)
CUICommandRegistry is a centralized registry where all application commands should be registered.
static CUICommandRegistry & GetInstance()
the main instance associated with the application
void AppendTool(wxToolBar &tool_bar, TCmdID cmd_id)
void OnZoomAll(wxCommandEvent &event)
void OnNoChangeBtnSelected(wxCommandEvent &event)
wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_SEQUPD_BTN1
wxCheckBox * m_IgnoreAlignChk
void x_InitAlnMultiWidgetAndUpdateTypes(bool create=false)
void x_CreateAlnMultiWidget()
void OnRemoveAlignedFeaturesUpdated(wxUpdateUIEvent &event)
wxEVT_UPDATE_UI event handler for ID_SEQUPD_DELFEAT_BTN2
static bool ShowToolTips()
Should we show tooltips?
SUpdateSeqParams GetData()
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
CIRef< IAlnMultiDataSource > m_DataSource
wxStaticText * m_NewSeqName
void LoadSettings(const CRegistryReadView &view)
void x_SetUpdateTypes(void)
bool GetUpdateProteins() const
void CreateControls()
Creates the controls and sizers.
void OnExtend3BtnSelected(wxCommandEvent &event)
wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_SEQUPD_BTN5
@ ID_SEQUPD_IMPFEATUPD_BTN3
@ ID_SEQUPD_IMPFEATUPD_BTN2
@ ID_SEQUPD_IMPFEATUPD_BTN1
@ ID_SEQUPD_IMPFEATUPD_BTN4
wxStaticText * m_OldSeqName
void SaveSettings(CRegistryWriteView view) const
void x_GetNameAndLength(const objects::CBioseq_Handle &bsh, string &label)
bool Create(wxWindow *parent, wxWindowID id=wxTAB_TRAVERSAL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxTAB_TRAVERSAL)
Creation.
void x_ShowProgressBar(bool show)
bool m_ImportFeatureType[SUpdateSeqParams::CountFeatUpdateType]
wxRadioButton * m_Replace
void x_InitDrawingParams()
wxRadioButton * m_Extend3
CUpdateSeqPanel()
Constructors.
wxBoxSizer * m_ProgressSizer
void OnIgnoreAlignmentClick(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SEQUPD_IALN_CHK
void Init()
Initialises member variables.
void OnImportChecked(wxCommandEvent &event)
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SEQUPD_IMPCHK
SDrawingParams m_DrawParams
bool m_RemoveFeatureType[SUpdateSeqParams::CountFeatRemoveType]
CRowStyleCatalog m_StyleCatalog
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
wxStaticText * m_DeltaSeqText
wxCheckBox * m_ImportFeature
wxStaticText * m_NoAlignmentText
wxRadioButton * m_Extend5
bool m_SequenceUpdateType[SUpdateSeqParams::CountSeqUpdateType]
wxStaticBoxSizer * m_AlignStaticBoxSizer
void UpdatePanel(bool running, const CUpdateSeq_Input *updseq_in=nullptr)
Function updates the panel with new (old, update) sequence pair.
wxRadioButton * m_NoChange
void OnZoomOut(wxCommandEvent &event)
void OnExtend5BtnSelected(wxCommandEvent &event)
wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_SEQUPD_BTN4
CUpdateSeqAlignWidget * m_AlnWidget
CFeatureTypePanel * m_FeatType
void OnZoomToSelection(wxCommandEvent &event)
void OnPatchBtnSelected(wxCommandEvent &event)
wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_SEQUPD_BTN3
~CUpdateSeqPanel()
Destructor.
CAlnMultiDSBuilder m_Builder
void SetUpdateProteins(bool value)
CConstRef< CUpdateSeq_Input > m_UpdSeqInput
void SetData(const SUpdateSeqParams ¶ms)
void OnZoomIn(wxCommandEvent &event)
void x_InitAlnMultiDSBuilder()
CDrawingPanel * m_DrawPanel
void OnZoomToSequence(wxCommandEvent &event)
void OnReplaceBtnSelected(wxCommandEvent &event)
wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_SEQUPD_BTN2
wxCheckBox * m_KeepProteinIdBox
@ eIcons
Strand + Expand icons.
virtual IAlnExplorer::EAlignType GetAlignType() const =0
virtual bool CanChangeAnchor(void) const =0
IAlnExplorer::TNumrow TNumrow
virtual TNumrow GetNumRows(void) const =0
number of rows in alignment
virtual bool SetAnchor(TNumrow anchor)=0
virtual const objects::CSeq_id & GetSeqId(TNumrow row) const =0
virtual bool IsEmpty() const =0
IAlnMultiDataSource::TNumrow TNumrow
Stores parameters regarding the type of sequence update, on how to handle existing features and on ho...
@ eFeatUpdateAllReplaceDups
EFeatUpdateType m_FeatImportOption
ESequenceUpdateType m_SeqUpdateOption
TProtUpdFlags m_UpdateProteins
objects::CSeqFeatData::ESubtype m_FeatImportType
Defines the imported feature subtype.
bool m_AddCitSub
flag to attach a citation with the current date (false)
EFeatRemoveType m_FeatRemoveOption
bool m_ImportFeatures
Flag to indicate that features from the update sequence will be imported.
bool m_KeepProteinId
flag to update protein IDs, default is to update (false) - relevant only to imported protein IDs
@ eProtUpdate
retranslate coding regions and update the proteins
@ CountSeqUpdateType
extend the 3' end of old sequence with the update
unsigned int TSeqPos
Type for sequence locations and lengths.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
EDialogReturnValue NcbiMessageBox(const string &message, TDialogType type=eDialog_Ok, EDialogIcon icon=eIcon_Exclamation, const string &title="Error", EDialogTextMode text_mode=eRaw)
#define END_EVENT_MAP()
Ends definition of Command Map.
#define BEGIN_EVENT_MAP(thisClass, baseClass)
Begins definition of Command Map for CEventHandler-derived class.
@ eCmdZoomIn
empty command
@ eCmdZoomSeq
Zoom to Selection.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
CConstRef< CSeq_id > GetSeqId(void) const
@ eContent
Untagged human-readable accession or the like.
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
@ eGetId_Best
return the "best" gi (uses FindBestScore(), with CSeq_id::CalculateScore() as the score function
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
bool IsSetInst_Repr(void) const
TInst_Repr GetInst_Repr(void) const
bool IsNull(void) const THROWS_NONE
Check if pointer is null – same effect as Empty().
TObjectType * GetNCPointer(void) const THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static const char label[]
const TDenseg & GetDenseg(void) const
Get the variant data.
const TSegs & GetSegs(void) const
Get the Segs member data.
bool IsDenseg(void) const
Check if variant Denseg is selected.
unsigned int
A callback function used to compare two keys in a database.
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
const string & CDCN_GetMessage(const CDataChangeNotifier::CUpdate &update)
static const string kRegPath
ON_EVENT(CAlnMultiPane::CEvent, CAlnMultiPane::eLinearSelChanged, &CUpdateSeqAlignWidget::x_OnAlnWidgetSelChanged) void CUpdateSeqAlignWidget
wxString ToWxString(const string &s)