NCBI C++ ToolKit
edit_object_seq_feat.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef GUI_WIDGETS_EDIT___EDIT_OBJECT_SEQ_FEAT__HPP
2 #define GUI_WIDGETS_EDIT___EDIT_OBJECT_SEQ_FEAT__HPP
3 
4 /* $Id: edit_object_seq_feat.hpp 41740 2018-09-18 20:04:07Z asztalos $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors: Colleen Bollin
30  */
31 
32 #include <corelib/ncbistd.hpp>
33 
36 #include <objmgr/scope.hpp>
37 
38 #include <gui/gui_export.h>
41 #include <wx/treebook.h>
42 
43 
45 
47 {
48 public:
50  const objects::CSeq_entry_Handle& seh,
51  objects::CScope& scope, bool createMode)
52  : m_Object(&object), m_Scope(&scope), m_SEH(seh), m_CreateMode(createMode), m_Window() {}
53 
54  virtual wxWindow* CreateWindow(wxWindow* parent);
55  virtual IEditCommand* GetEditCommand();
56  virtual bool CanClose();
57  CRef<CSerialObject> GetEditObject() {return m_EditedFeature;}
58  wxWindow* CreateWindowImpl(wxWindow* parent, objects::CSeq_feat& edited_seq_feat);
59  void SetWindowToNull() {m_Window = NULL;}
60  wxWindow* GetSubPage() {if (m_Window) return m_Window->GetCurrentPage(); return NULL;}
61  void OnPageChange(wxBookCtrlEvent& event);
62 
63 private:
64 
65  enum {
66  ID_NOTEBOOK = 10015
67  };
68 
69  void x_AddCodingRegionProteinNamePanel(objects::CProt_ref& prot);
70  void x_AddCodingRegionProteinPanels(objects::CProt_ref& prot, objects::CSeq_feat* edited_protein);
71  CIRef<IEditCommand> x_AdjustGene(const objects::CSeq_feat& old_gene,
72  const objects::CSeq_loc& old_loc,
73  const objects::CSeq_loc& new_loc,
74  CRef<objects::CSeq_feat> updated_gene);
75  bool x_IsCircular(const objects::CSeq_loc& loc);
76  void x_AdjustCircularGene( CRef<objects::CSeq_feat> adjusted_gene, const objects::CSeq_loc& new_loc);
77 
78  void x_AdjustLocation(objects::CSeq_feat& edited_feat);
79  void x_SetGbQuals(objects::CSeq_feat& edited_feat);
80  void x_SetCrossRefs(objects::CSeq_feat& edited_feat);
81  void x_SetIdentifiers(objects::CSeq_feat& edited_feat);
82  void x_SetInferences(objects::CSeq_feat& edited_feat);
83  void x_SetExperiments(objects::CSeq_feat& edited_feat);
84  void x_SetCitations(objects::CSeq_feat& edited_feat);
85  void x_SetTranslExcept(objects::CSeq_feat& cds);
86  CIRef<IEditCommand> x_UpdatemRNA(const objects::CSeq_feat& cds);
87  CRef<CCmdComposite> x_HandleCdsProduct(const objects::CSeq_feat &old_cds, objects::CSeq_feat& cds);
88  objects::CSeq_feat& x_GetSeqFeatCopy();
89  void x_ConvertCommentToMiscFeat(objects::CSeq_feat& edited_seq_feat);
90 
93 
94  objects::CSeq_entry_Handle m_SEH;
96 
100 
101  wxTreebook* m_Window;
102  objects::CSeq_feat_Handle m_fh;
103 };
104 
106 
107 #endif // GUI_WIDGETS_EDIT___EDIT_OBJECT_SEQ_FEAT__HPP
static CRef< CScope > m_Scope
CConstRef< CObject > m_Object
CRef< CSerialObject > m_EditedFeature
CEditObjectSeq_feat(const CObject &object, const objects::CSeq_entry_Handle &seh, objects::CScope &scope, bool createMode)
objects::CSeq_entry_Handle m_SEH
objects::CSeq_feat_Handle m_fh
CRef< objects::CScope > m_Scope
CIRef< IEditCommand > m_EditAction
CRef< CSerialObject > GetEditObject()
CRef< CSerialObject > m_EditedProtein
CObject –.
Definition: ncbiobj.hpp:180
Interface (functor) for object editing.
GUI editing interface.
Definition: edit_object.hpp:63
virtual IEditCommand * GetEditCommand()=0
After placing the window in the Edit Object Dialog ShowModal() method of the dialog is called.
virtual wxWindow * CreateWindow(wxWindow *parent)=0
creates a child (not top level) windows that can contain whatever controls/subwindows etc.
virtual bool CanClose()
Definition: edit_object.hpp:80
Include a standard set of the NCBI C++ Toolkit most basic headers.
#define NULL
Definition: ncbistd.hpp:225
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_GUIWIDGETS_EDIT_EXPORT
Definition: gui_export.h:526
Defines to provide correct exporting from DLLs in Windows.
#define ID_NOTEBOOK
Modified on Mon May 20 05:02:14 2024 by modify_doxy.py rev. 669887