gbmanage.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:9k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: gbmanage.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 20:57:54  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: gbmanage.cpp,v 1000.1 2004/06/01 20:57:54 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Mike DiCuccio
  35.  *
  36.  * File Description:
  37.  *    CDataPlugin_GBManage - load sequence information form Genbank.
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include "gbmanage.hpp"
  41. #include "gb_manage_dlg.hpp"
  42. #include <gui/core/version.hpp>
  43. #include <gui/plugin/PluginCommandSet.hpp>
  44. #include <gui/plugin/PluginInfo.hpp>
  45. #include <gui/plugin/PluginValue.hpp>
  46. #include <gui/utils/message_box.hpp>
  47. BEGIN_NCBI_SCOPE
  48. USING_SCOPE(objects);
  49. //
  50. // class CDataPlugin_GBManageException defines some internal exception types used in
  51. // processing files.
  52. //
  53. // This class is used internally to avoid an ad-hoc exception mechanism;
  54. // currently, it reports only errors concerning invalid format types.
  55. //
  56. class CDataPlugin_GBManageException : EXCEPTION_VIRTUAL_BASE public CException
  57. {
  58. public:
  59.     // Enumerated list of exception types
  60.     enum EErrCode {
  61.         eInvalidId
  62.     };
  63.     // Convert an enuerated exception to a human-readable string representation
  64.     // of this exception.
  65.     virtual const char* GetErrCodeString(void) const
  66.     {
  67.         switch (GetErrCode()) {
  68.         case eInvalidId:        return "eInvalidId";
  69.         default:                return CException::GetErrCodeString();
  70.         }
  71.     }
  72.     // constructor boilerplate
  73.     NCBI_EXCEPTION_DEFAULT(CDataPlugin_GBManageException, CException);
  74. };
  75. void CDataPlugin_GBManage::GetInfo(CPluginInfo& info)
  76. {
  77.     info.Reset();
  78.     // version info macro
  79.     info.SetInfo(CPluginVersion::eMajor, CPluginVersion::eMinor, 0,
  80.                  string(__DATE__) + " " + string(__TIME__),
  81.                  "CDataPlugin_GBManage", "GenBank Connection",
  82.                  "Manage the GenBank data connector", "");
  83.     // command info
  84.     CPluginCommandSet& cmds     = info.SetCommands();
  85.     CPluginCommand& manage_args = cmds.AddDataCommand(eDataCommand_manage);
  86. }
  87. CDataPlugin_GBManage::CDataPlugin_GBManage()
  88. {
  89. }
  90. CDataPlugin_GBManage::~CDataPlugin_GBManage()
  91. {
  92. }
  93. //
  94. // load a record from Genbank into a fully-prepared document
  95. //
  96. void CDataPlugin_GBManage::Manage(CPluginMessage& msg)
  97. {
  98.     CPluginReply& reply = msg.SetReply();
  99.     reply.SetStatus(eMessageStatus_success);
  100.     if ( !m_Dialog.get() ) {
  101.         m_Dialog.reset(new CGBManageDlg());
  102.     }
  103.     m_Dialog->Show();
  104. }
  105. END_NCBI_SCOPE
  106. /*
  107.  * ===========================================================================
  108.  * $Log: gbmanage.cpp,v $
  109.  * Revision 1000.1  2004/06/01 20:57:54  gouriano
  110.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  111.  *
  112.  * Revision 1.4  2004/05/25 17:21:59  dicuccio
  113.  * Modified class names.  Fonts to 12 point
  114.  *
  115.  * Revision 1.3  2004/05/21 22:27:48  gorelenk
  116.  * Added PCH ncbi_pch.hpp
  117.  *
  118.  * Revision 1.2  2004/01/27 18:45:32  dicuccio
  119.  * Added missing header files
  120.  *
  121.  * Revision 1.1  2003/12/05 13:07:53  dicuccio
  122.  * Split management interface into a separate plugin.  Fixed linker error
  123.  * introduced with status bar
  124.  *
  125.  * Revision 1.5  2003/11/24 15:45:34  dicuccio
  126.  * Renamed CVersion to CPluginVersion
  127.  *
  128.  * Revision 1.4  2003/11/04 17:49:24  dicuccio
  129.  * Changed calling parameters for plugins - pass CPluginMessage instead of paired
  130.  * CPluginCommand/CPluginReply
  131.  *
  132.  * Revision 1.3  2003/10/07 13:47:05  dicuccio
  133.  * Renamed CPluginURL* to CPluginValue*
  134.  *
  135.  * Revision 1.2  2003/08/01 14:37:20  dicuccio
  136.  * Solved issue with plugin communication - make sure that sequences are loaded
  137.  * when the load button is clicked, not when the dialog closes
  138.  *
  139.  * Revision 1.1  2003/07/31 17:04:00  dicuccio
  140.  * Added GenBank search
  141.  *
  142.  * Revision 1.22  2003/07/14 11:16:52  shomrat
  143.  * Plugin messageing system related changes
  144.  *
  145.  * Revision 1.21  2003/06/25 17:02:58  dicuccio
  146.  * Split CPluginHandle into a handle (pointer-to-implementation) and
  147.  * implementation file.  Lots of #include file clean-ups.
  148.  *
  149.  * Revision 1.20  2003/06/20 14:52:57  dicuccio
  150.  * Revised plugin registration - moved GetInfo() into the plugin handler
  151.  *
  152.  * Revision 1.19  2003/06/02 16:06:22  dicuccio
  153.  * Rearranged src/objects/ subtree.  This includes the following shifts:
  154.  *     - src/objects/asn2asn --> arc/app/asn2asn
  155.  *     - src/objects/testmedline --> src/objects/ncbimime/test
  156.  *     - src/objects/objmgr --> src/objmgr
  157.  *     - src/objects/util --> src/objmgr/util
  158.  *     - src/objects/alnmgr --> src/objtools/alnmgr
  159.  *     - src/objects/flat --> src/objtools/flat
  160.  *     - src/objects/validator --> src/objtools/validator
  161.  *     - src/objects/cddalignview --> src/objtools/cddalignview
  162.  * In addition, libseq now includes six of the objects/seq... libs, and libmmdb
  163.  * replaces the three libmmdb? libs.
  164.  *
  165.  * Revision 1.18  2003/05/30 14:15:42  dicuccio
  166.  * Renamed MessageBox to NcbiMessageBox because brain-dead MSVC thinks this is
  167.  * ::MessageBox and rewrites the symbol as MessageBoxA, which results in an
  168.  * unresolved external and conflict with the Win32 API :(.
  169.  *
  170.  * Revision 1.17  2003/05/30 13:10:37  dicuccio
  171.  * Use MessageBox() instead of fl_alter()
  172.  *
  173.  * Revision 1.16  2003/05/19 13:40:44  dicuccio
  174.  * Moved gui/core/plugin/ -> gui/plugin/.  Merged core libraries into libgui_core.
  175.  * Removed old, unused dialog box.
  176.  *
  177.  * Revision 1.15  2003/05/01 12:54:34  dicuccio
  178.  * Changed a useful trace -> log post for failure to load accession
  179.  *
  180.  * Revision 1.14  2003/04/29 14:52:31  dicuccio
  181.  * Deprecated old accession entry dialog.  Added correct plugin argument to specify accession names
  182.  *
  183.  * Revision 1.13  2003/04/24 16:39:08  dicuccio
  184.  * Updated to reflect changes in plugin API.  Changed location of document
  185.  * marshal from framework to plugin
  186.  *
  187.  * Revision 1.12  2003/02/26 14:26:56  dicuccio
  188.  * Removed unnecessary _TRACE() statements
  189.  *
  190.  * Revision 1.11  2003/02/24 13:03:16  dicuccio
  191.  * Renamed classes in plugin spec:
  192.  *     CArgSeg --> CPluginArgSet
  193.  *     CArgument --> CPluginArg
  194.  *     CPluginArgs --> CPluginCommand
  195.  *     CPluginCommands --> CPluginCommandSet
  196.  *
  197.  * Revision 1.10  2003/02/20 19:49:56  dicuccio
  198.  * Created new plugin architecture, based on ASN.1 spec.  Moved GBENCH
  199.  * frameowrk over to use new plugin architecture.
  200.  *
  201.  * Revision 1.9  2003/02/06 18:48:36  dicuccio
  202.  * Made 'catch (...)' conditional for non-debug builds
  203.  *
  204.  * Revision 1.8  2003/01/15 21:08:34  dicuccio
  205.  * Removed dead _TRACE() statements
  206.  *
  207.  * Revision 1.7  2003/01/13 13:10:07  dicuccio
  208.  * Namespace clean-up.  Retired namespace gui -> converted all to namespace
  209.  * ncbi.  Moved all FLUID-generated code into namespace ncbi.
  210.  *
  211.  * Revision 1.6  2003/01/03 17:25:50  dicuccio
  212.  * Fixed (finally!) issues regarding input validation of seq-ids.
  213.  *
  214.  * Revision 1.5  2002/12/30 18:44:20  dicuccio
  215.  * Fixed a number of buglets in accession dialog and in handling of empty
  216.  * accessions.
  217.  *
  218.  * Revision 1.4  2002/12/30 17:48:28  dicuccio
  219.  * Added mechanism for data loader plugins to announce supported modes of
  220.  * operation (load, import, save currently)
  221.  *
  222.  * Revision 1.3  2002/12/20 19:17:58  dicuccio
  223.  * Added better handling of sueqnece ID errors (try not to segfault...)
  224.  *
  225.  * Revision 1.2  2002/12/12 15:22:38  dicuccio
  226.  * Minot tweak to avoid a compiler warning.
  227.  *
  228.  * Revision 1.1  2002/11/25 20:51:01  dicuccio
  229.  * Initial revision.
  230.  *
  231.  * ===========================================================================
  232.  */