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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: load_file.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 20:48:14  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: load_file.cpp,v 1000.2 2004/06/01 20:48:14 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:  Josh Cherry
  35.  *
  36.  * File Description:  Load a file by calling CFileLoader gbench plugin
  37.  *
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include "load_file.hpp"
  41. #include "gbench.hpp"
  42. #include <gui/core/plugin_registry.hpp>
  43. #include <gui/plugin/PluginMessage.hpp>
  44. #include <gui/plugin/PluginValue.hpp>
  45. BEGIN_NCBI_SCOPE
  46. USING_SCOPE(objects);
  47. /// Load a file by calling CFileLoader gbench plugin
  48. void GBenchLoadFile(const string& fname, const string& ftype, bool do_view)
  49. {
  50.     CPluginHandle handle = CPluginRegistry::GetPlugin("CFileLoader");
  51.     CRef<CPluginMessage> msg(new CPluginMessage);
  52.     CPluginRequest& request = msg->SetRequest();
  53.     handle.FillDefaults(eDataCommand_load, request.SetData());
  54.     request.SetData()["file"].SetFile(fname);
  55.     string orig_fmt = request.GetData()["fmt"].AsString();
  56.     request.SetData()["fmt"].SetString(ftype);
  57.     handle.Execute(*msg);
  58.     request.SetData()["fmt"].SetString(orig_fmt);
  59.     CGBenchApp::Raise();
  60.     if (do_view) {
  61.         // launch default viewer(s)
  62.         const CPluginReply& reply = msg->GetReply();
  63.         if (reply.CanGetRaw()) {
  64.             ITERATE (CPluginReply::TRaw, iter, reply.GetRaw()) {
  65.                 if (!(*iter)->IsDocument()) {
  66.                     continue;
  67.                 }
  68.                 GBenchViewDefault(*(*iter)->GetDocument());
  69.             }
  70.         }
  71.     }
  72. }
  73. /// Launch default viewer for a document by calling plugin
  74. void GBenchViewDefault(const IDocument& document)
  75. {
  76.     CPluginHandle handle =
  77.         CPluginRegistry::GetPlugin("CAlgoPlugin_ViewDefault");
  78.     CRef<CPluginMessage> msg(new CPluginMessage);
  79.     CPluginRequest& request = msg->SetRequest();
  80.     handle.FillDefaults(eAlgoCommand_run, request.SetData());
  81.     request.SetData()["document"].SetDocument(document);
  82.     handle.Execute(*msg);
  83. }
  84. END_NCBI_SCOPE
  85. /*
  86.  * ===========================================================================
  87.  * $Log: load_file.cpp,v $
  88.  * Revision 1000.2  2004/06/01 20:48:14  gouriano
  89.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  90.  *
  91.  * Revision 1.5  2004/05/21 22:27:42  gorelenk
  92.  * Added PCH ncbi_pch.hpp
  93.  *
  94.  * Revision 1.4  2004/04/16 14:40:05  dicuccio
  95.  * Added call to Raise() after loading a file
  96.  *
  97.  * Revision 1.3  2004/03/22 15:40:20  jcherry
  98.  * Added file type command-line argument
  99.  *
  100.  * Revision 1.2  2004/03/15 16:06:18  jcherry
  101.  * Launch default viewer when opening file from command line
  102.  *
  103.  * Revision 1.1  2004/03/11 19:24:44  jcherry
  104.  * Initial version (moved from gui/utils)
  105.  *
  106.  * ===========================================================================
  107.  */