56 #include <wx/window.h>
57 #include <wx/msgdlg.h>
84 : m_BioseqEditor(bioseqEditor), m_CmdProccessor(cmdProccessor), m_Canvas(
nullptr), m_SavedType(saved_type)
87 m_BioseqEditor->SetCallBack(
this);
90 m_SavedObject.Reset(saved_object);
106 wxMenu* menu = cmd_reg.
CreateMenu(kDesktopEditMenu);
111 Merge(*menu, *editorMenu);
139 if (!data_item)
return;
147 else if (contact_item) {
174 if (!data_item)
return;
186 bool remove_protein =
true;
189 wxMessageDialog dlg(
NULL,
_(
"Would you like to remove the protein as well?"),
_(
"Question"),
190 wxYES_DEFAULT | wxYES_NO | wxCANCEL | wxICON_QUESTION);
191 switch (dlg.ShowModal()) {
193 remove_protein =
true;
196 remove_protein =
false;
241 edited_subblock->
Assign(submit_block);
250 cmd->AddCommand(*chg_subblock);
260 edited_subblock->
Assign(submit_block);
269 cmd->AddCommand(*chg_subblock);
296 if (!data_item)
return;
350 if (
type == CBioseq::GetTypeInfo()->GetName()
351 ||
type == CBioseq_set::GetTypeInfo()->GetName()) {
363 if (
type == CBioseq::GetTypeInfo()->GetName()
364 ||
type == CBioseq_set::GetTypeInfo()->GetName()
365 ||
type == CSeq_annot::GetTypeInfo()->GetName()) {
378 if (
type == CBioseq::GetTypeInfo()->GetName()
379 ||
type == CBioseq_set::GetTypeInfo()->GetName()) {
392 if (
type == CBioseq::GetTypeInfo()->GetName()
393 ||
type == CBioseq_set::GetTypeInfo()->GetName()
394 ||
type == CSeq_annot::GetTypeInfo()->GetName()) {
407 if (
type == CBioseq_set::GetTypeInfo()->GetName()) {
421 if (
type == CSeq_submit::GetTypeInfo()->GetName()) {
430 edited_subblock->
Assign(submit_block);
439 cmd->AddCommand(*chg_subblock);
449 if (
type == CBioseq::GetTypeInfo()->GetName()
450 ||
type == CBioseq_set::GetTypeInfo()->GetName()) {
460 else if (
type == CSeq_submit::GetTypeInfo()->GetName()) {
469 edited_subblock->
Assign(submit_block);
472 new_subblock.
SetCit().Assign(*citsub);
478 cmd->AddCommand(*chg_subblock);
488 if (
type == CBioseq_set::GetTypeInfo()->GetName()) {
524 if (!data_item)
return;
void Add(CObject *obj, const CObject *new_obj)
Defines a scrollable canvas for drawing purposes.
IDesktopItem * GetSelection() const
const objects::CSubmit_block & GetSubmitBlock() const
ESavedObjectType m_SavedType
Type of the saved object resulting from a Cut/Copy operation.
void OnPasteSelection(wxCommandEvent &event)
virtual void GetCurrentSelection(TEditObjectList &)
void OnCopySelection(wxCommandEvent &event)
void OnUpdateCutSelection(wxUpdateUIEvent &event)
virtual objects::CBioseq_Handle GetCurrentBioseq()
void SetCanvas(CDesktopCanvas *canvas)
void OnUpdateCopySelection(wxUpdateUIEvent &event)
ICommandProccessor & m_CmdProccessor
wxMenu * CreateMenu() const
@ eSavedObjectType_SeqGraph
@ eSavedObjectType_Bioseqset
@ eSavedObjectType_SeqAlign
@ eSavedObjectType_Bioseq
@ eSavedObjectType_ContactInfo
@ eSavedObjectType_CitSub
@ eSavedObjectType_SeqFeat
@ eSavedObjectType_Seqdesc
@ eSavedObjectType_not_set
@ eSavedObjectType_SeqAnnot
CDesktopCanvas * m_Canvas
void x_UpdateCutCopySelection(wxUpdateUIEvent &event)
CConstRef< IDesktopDataItem > x_GetSelectedDataItem() const
void OnCutSelection(wxCommandEvent &event)
CIRef< IBioseqEditor > m_BioseqEditor
void OnUpdatePasteSelection(wxUpdateUIEvent &event)
CConstRef< CSerialObject > m_SavedObject
Saved object resulting from a Cut/Copy operation.
namespace ncbi::objects::
Base class for all serializable objects.
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)
Undo/Redo interface for editing operations.
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
virtual const CObject * GetObject(void) const =0
virtual objects::CSeq_entry_Handle GetSeqentryHandle() const =0
virtual const string & GetType() const
virtual CConstRef< IDesktopDataItem > GetDataItem() const =0
CChangeUnindexedObjectCommand< objects::CSubmit_block > CChangeSubmitBlockCommand
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
const CSeqFeatData & GetData(void) const
bool IsSetData(void) const
TObjectType * GetPointer(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.
TSub & SetSub(void)
Select the variant.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
TSet & SetSet(void)
Select the variant.
TSeq & SetSeq(void)
Select the variant.
void SetPub(TPub &value)
Assign a value to Pub data member.
TPub & SetPub(void)
Select the variant.
void SetCit(TCit &value)
Assign a value to Cit data member.
void ResetContact(void)
Reset Contact data member.
void ResetCit(void)
Reset Cit data member.
const TSub & GetSub(void) const
Get the Sub member data.
bool IsSetSub(void) const
Check if a value has been assigned to Sub data member.
void SetContact(TContact &value)
Assign a value to Contact data member.
vector< CEditObject > TEditObjectList
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_MENU_ITEM(cmd)
CRef< CCmdComposite > GetDeleteSequenceCommand(objects::CBioseq_Handle bsh)
CRef< CCmdComposite > GetDeleteFeatureCommand(const objects::CSeq_feat_Handle &fh, bool remove_proteins=true)
void Merge(wxMenu &menu_1, const wxMenu &menu_2)
merges all items form menu_2 into menu_1, preserving the structure if possible