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

Go to the SVN repository for this file.

1 #ifndef GUI_OBJUTILS___CMD_ADD_CDS__HPP
2 #define GUI_OBJUTILS___CMD_ADD_CDS__HPP
3 
4 /* $Id: cmd_add_cds.hpp 42385 2019-02-13 16:34:44Z 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, based on a file by Roman Katargin
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbiobj.hpp>
36 #include <gui/gui_export.h>
39 
41 
43 
45 
47  public CObject, public IEditCommand
48 {
49 public:
50  CCmdAddCDS(objects::CSeq_entry_Handle& seh, const objects::CSeq_feat& cds, CRef<objects::CSeq_feat> prot, bool create_general_only)
51  : m_seh(seh), m_Prot(prot), m_create_general_only(create_general_only)
52  {
53  m_CDS.Reset(new objects::CSeq_feat);
54  m_CDS->Assign(cds);
55  }
56 
57  /// @name IEditCommand interface implementation
58  /// @{
59  virtual void Execute();
60  virtual void Unexecute();
61  virtual string GetLabel();
62  /// @}
63 
64 protected:
65  objects::CSeq_entry_Handle m_seh;
68  objects::CSeq_feat_EditHandle m_feh_CDS;
69  objects::CSeq_annot_EditHandle m_FTableCreated;
70  objects::CBioseq_EditHandle m_ProtHandle;
72 };
73 
74 
76 {
77 public:
78  CCmdCreateCDS(objects::CSeq_entry_Handle& seh, const objects::CSeq_feat& cds, CRef<objects::CSeq_feat> prot, const vector<CRef<objects::CSeq_id> > &new_prot_id,
79  const vector<CRef<objects::CSeq_feat> > &other_prot_feats = vector<CRef<objects::CSeq_feat> >())
80  : m_seh(seh), m_Prot(prot), m_prot_id(new_prot_id), m_other_prot_feats(other_prot_feats)
81  {
82  m_CDS.Reset(new objects::CSeq_feat);
83  m_CDS->Assign(cds);
84  }
85 
86  /// @name IEditCommand interface implementation
87  /// @{
88  virtual void Execute();
89  virtual void Unexecute();
90  virtual string GetLabel();
91  /// @}
92 
93  static string s_GetProductSequence(const objects::CSeq_feat& cds, objects::CScope& scope);
94 protected:
95 
96  void x_AddMolinfoDescriptorToProtein();
97  void x_AddProteinFeatures(const TSeqPos& seq_length);
98 
99  objects::CSeq_entry_Handle m_seh;
102  objects::CSeq_feat_EditHandle m_feh_CDS;
103  objects::CSeq_annot_EditHandle m_FTableCreated;
104  objects::CBioseq_EditHandle m_ProtHandle;
105  vector<CRef<objects::CSeq_id> > m_prot_id;
106  vector<CRef<objects::CSeq_feat> > m_other_prot_feats;
107 };
108 
109 
111 
112 #endif // GUI_OBJUTILS___CMD_ADD_CDS__HPP
objects::CSeq_feat_EditHandle m_feh_CDS
Definition: cmd_add_cds.hpp:68
CCmdAddCDS(objects::CSeq_entry_Handle &seh, const objects::CSeq_feat &cds, CRef< objects::CSeq_feat > prot, bool create_general_only)
Definition: cmd_add_cds.hpp:50
CRef< objects::CSeq_feat > m_CDS
Definition: cmd_add_cds.hpp:66
objects::CSeq_annot_EditHandle m_FTableCreated
Definition: cmd_add_cds.hpp:69
objects::CSeq_entry_Handle m_seh
Definition: cmd_add_cds.hpp:65
bool m_create_general_only
Definition: cmd_add_cds.hpp:71
objects::CBioseq_EditHandle m_ProtHandle
Definition: cmd_add_cds.hpp:70
CRef< objects::CSeq_feat > m_Prot
Definition: cmd_add_cds.hpp:67
objects::CSeq_annot_EditHandle m_FTableCreated
objects::CBioseq_EditHandle m_ProtHandle
vector< CRef< objects::CSeq_feat > > m_other_prot_feats
objects::CSeq_feat_EditHandle m_feh_CDS
CRef< objects::CSeq_feat > m_CDS
vector< CRef< objects::CSeq_id > > m_prot_id
objects::CSeq_entry_Handle m_seh
Definition: cmd_add_cds.hpp:99
CRef< objects::CSeq_feat > m_Prot
CCmdCreateCDS(objects::CSeq_entry_Handle &seh, const objects::CSeq_feat &cds, CRef< objects::CSeq_feat > prot, const vector< CRef< objects::CSeq_id > > &new_prot_id, const vector< CRef< objects::CSeq_feat > > &other_prot_feats=vector< CRef< objects::CSeq_feat > >())
Definition: cmd_add_cds.hpp:78
CObject –.
Definition: ncbiobj.hpp:180
Interface (functor) for object editing.
virtual void Unexecute()=0
Undo (opposite to Execute())
unsigned int TSeqPos
Type for sequence locations and lengths.
Definition: ncbimisc.hpp:875
string GetLabel(const CSeq_id &id)
#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_GUIOBJUTILS_EXPORT
Definition: gui_export.h:512
Defines to provide correct exporting from DLLs in Windows.
string Execute(const string &cmmd, const vector< string > &args, const string &data=kEmptyStr)
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
Modified on Fri Jun 07 13:31:17 2024 by modify_doxy.py rev. 669887