NCBI C++ ToolKit
cmd_change_seq_entry.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: cmd_change_seq_entry.cpp 39430 2017-09-22 14:55:36Z asztalos $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Igor Filippov, based on work by Colleen Bollin and Roman Katargin
27  */
28 
29 
30 #include <ncbi_pch.hpp>
32 
35 
37  : m_NewEntry(new_entry)
38 {
39  m_SEH = seh.GetEditHandle();
40 
43 
44  // save the original bseq/bsset edit handle
45  if (m_SEH.IsSeq()) {
46  m_SaveBsh = m_SEH.SetSeq();
47  }
48  else {
49  m_SaveBssh = m_SEH.SetSet();
50  }
51 }
52 
54 {
55  m_SEH.SelectNone();
56 
57  if (m_NewEntry->IsSeq()) {
58  m_SEH.SelectSeq(m_NewEntry->SetSeq());
59  }
60  else {
61  m_SEH.SelectSet(m_NewEntry->SetSet());
62  }
63 }
64 
66 {
67  m_SEH.SelectNone();
68 
69  if (m_SaveBsh.IsRemoved()) {
70  m_SEH.SelectSeq(m_SaveBsh);
71  }
72  else if (m_SaveBssh.IsRemoved()) {
73  m_SEH.SelectSet(m_SaveBssh);
74  }
75 
77 }
78 
80 {
81  return "Modify Seq-entry";
82 }
83 
84 
virtual void Execute()
Do the editing action.
virtual string GetLabel()
CCmdChangeSeqEntry(const objects::CSeq_entry_Handle &seh, CRef< objects::CSeq_entry > new_entry)
objects::CBioseq_EditHandle m_SaveBsh
virtual void Unexecute()
Undo (opposite to Execute())
CRef< objects::CSeq_entry > m_NewEntry
objects::CBioseq_set_EditHandle m_SaveBssh
objects::CSeq_entry_EditHandle m_SEH
CSeq_entry_Handle –.
USING_SCOPE(objects)
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
@ e_not_set
No variant selected.
Definition: Seq_entry_.hpp:88
#define _ASSERT
Modified on Sat Mar 02 10:57:18 2024 by modify_doxy.py rev. 669887