]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkBlackBoxDescriptor.cxx
Merge branch 'wt-version'
[bbtk.git] / kernel / src / bbtkBlackBoxDescriptor.cxx
index 4fba9436ad38f520bd92adda727cbed642a514f2..6a2c7bc67156f33f3625187d5761851bb241c2c9 100644 (file)
@@ -1,32 +1,38 @@
-/*=========================================================================                                                                               
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
+/*=========================================================================
   Program:   bbtk
   Module:    $RCSfile: bbtkBlackBoxDescriptor.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/10/17 08:18:12 $
-  Version:   $Revision: 1.19 $
+  Date:      $Date: 2012/11/16 08:49:01 $
+  Version:   $Revision: 1.24 $
 =========================================================================*/
 
-/* ---------------------------------------------------------------------
-
-* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
-*
-*  This software is governed by the CeCILL-B license under French law and 
-*  abiding by the rules of distribution of free software. You can  use, 
-*  modify and/ or redistribute the software under the terms of the CeCILL-B 
-*  license as circulated by CEA, CNRS and INRIA at the following URL 
-*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
-*  or in the file LICENSE.txt.
-*
-*  As a counterpart to the access to the source code and  rights to copy,
-*  modify and redistribute granted by the license, users are provided only
-*  with a limited warranty  and the software's author,  the holder of the
-*  economic rights,  and the successive licensors  have only  limited
-*  liability. 
-*
-*  The fact that you are presently reading this means that you have had
-*  knowledge of the CeCILL-B license and that you accept its terms.
-* ------------------------------------------------------------------------ */                                                                         
 
 
 /**
 #include "bbtkUtilities.h"
 #include "bbtkAtomicBlackBoxDescriptor.h"
 #include "bbtkWxBlackBox.h"
+// JFGA 12/12/2014 Adding libraries for Wt
+//#include "bbtkWtBlackBox.h"
 
 namespace bbtk
 {
 
   typedef Package::Pointer PackagePointer;
 
+#define bbtkDMessage(key,level,mess) \
+  bbtkMessage(key,level,"["<<GetFullTypeName()<<"] "<<mess)
+#define bbtkDDebugMessage(key,level,mess)      \
+  bbtkDebugMessage(key,level,"["<<GetFullTypeName()<<"] "<<mess)
 
 
   //=========================================================================
@@ -55,12 +67,13 @@ namespace bbtk
       mAuthor(""),
       mCategory(""),
       mKind(STANDARD),
+         mTypeOfScript(TS_BINARY),
       mPackage()
   {
-    bbtkDebugMessage("object",4,
-                    "==> BlackBoxDescriptor::BlackBoxDescriptor()"<<std::endl);
-   bbtkDebugMessage("object",4,
-                    "<== BlackBoxDescriptor::BlackBoxDescriptor()"<<std::endl);
+    bbtkDDebugMessage("object",4,
+                    "==> BlackBoxDescriptor()"<<std::endl);
+    bbtkDDebugMessage("object",4,
+                    "<== BlackBoxDescriptor()"<<std::endl);
   }
   //=========================================================================
 
@@ -68,14 +81,15 @@ namespace bbtk
   /// Default ctor
   BlackBoxDescriptor::BlackBoxDescriptor(const BlackBoxDescriptor&)  
   {
+         mScriptFileName="";
   }
   //=========================================================================
   /// Dtor
   BlackBoxDescriptor::~BlackBoxDescriptor()
   {
-    bbtkDebugMessage("object",4,
-                    "==> BlackBoxDescriptor::~BlackBoxDescriptor() ["
-                    <<mTypeName<<"]"<<std::endl);
+    bbtkDDebugMessage("object",4,
+                    "==> ~BlackBoxDescriptor()"
+                    <<std::endl);
 
     // deletes all I/O descriptors
     InputDescriptorMapType::iterator i;
@@ -83,9 +97,9 @@ namespace bbtk
     OutputDescriptorMapType::iterator o;
     for (o=mOutput.begin(); o!=mOutput.end(); ++o) delete o->second;
 
-    bbtkDebugMessage("object",4,
-                    "<== BlackBoxDescriptor::~BlackBoxDescriptor() ["
-                    <<mTypeName<<"]"<<std::endl);
+    bbtkDDebugMessage("object",4,
+                     "<== ~BlackBoxDescriptor()"
+                     <<std::endl);
   }
   //=========================================================================
 
@@ -122,13 +136,13 @@ namespace bbtk
   /// Dtor
   void BlackBoxDescriptor::UnReference()
   {
-    bbtkDebugMessageInc("Kernel",1,
+    bbtkDDebugMessageInc("kernel",1,
                        "BlackBoxDescriptor::UnReference() ["
                        <<mTypeName<<"] #"<<mRefCount-1<<std::endl);
     mRefCount--;
     if (mRefCount<=0) 
       {
-       bbtkDebugMessage("Kernel",1,"--> Destructing BlackBoxDescriptor ["<<mTypeName<<"]"<<std::endl);
+       bbtkDDebugMessage("kernel",1,"--> Destructing BlackBoxDescriptor ["<<mTypeName<<"]"<<std::endl);
        delete this;
       }
   }
@@ -146,8 +160,8 @@ namespace bbtk
   /// Adds the string to the BlackBox description
   void BlackBoxDescriptor::AddToDescription( const std::string& s, bool clear)
   {
-    bbtkDebugMessage("Kernel",9,"BlackBoxDescriptor::AddToDescription(\""<<s<<
-                    "\") ["<<GetFullTypeName()<<"]"<<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::AddToDescription(\""
+                     <<s<<"\")"<<std::endl);
     if (clear) mDescription = s; 
     else mDescription += s;
    }
@@ -157,8 +171,9 @@ namespace bbtk
   /// Adds the string to the BlackBox author list
   void BlackBoxDescriptor::AddToAuthor( const std::string& s, bool clear)
   {
-    bbtkDebugMessage("Kernel",9,"BlackBoxDescriptor::AddToAuthor(\""<<s<<"\") ["
-                    <<GetFullTypeName()<<"]"<<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::AddToAuthor(\""
+                     <<s<<"\")"
+                     <<std::endl);
     if (clear) mAuthor = s;
     else mAuthor += s;
   }
@@ -168,8 +183,9 @@ namespace bbtk
   /// Adds the string to the BlackBox category list
   void BlackBoxDescriptor::AddToCategory( const std::string& s, bool clear)
   {
-    bbtkDebugMessage("Kernel",9,"BlackBoxDescriptor::AddToCategory(\""<<s<<"\") ["
-                    <<GetFullTypeName()<<"]"<<std::endl);  
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::AddToCategory(\""
+                     <<s<<"\")"
+                     <<std::endl);  
     if (clear) mCategory = s;
     else mCategory += s;
     mCategory += ";";
@@ -180,8 +196,8 @@ namespace bbtk
   const BlackBoxDescriptor::InputDescriptor* 
   BlackBoxDescriptor::GetInputDescriptor(const std::string & name) const
   {
-    bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::GetInputDescriptor('"
-                       <<name<<"') ["<<GetFullTypeName()<<"]"<<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::GetInputDescriptor('"
+                     <<name<<"')"<<std::endl);
 
     InputDescriptorMapType::const_iterator i;
     i = mInput.find(name);
@@ -189,7 +205,7 @@ namespace bbtk
     {
            bbtkError("input '"<<name<<"' does not exist");
     }
-    bbtkDebugDecTab("Kernel",9);
+
     return i->second;
   }
   //=========================================================================
@@ -198,16 +214,16 @@ namespace bbtk
   const BlackBoxDescriptor::OutputDescriptor* 
   BlackBoxDescriptor::GetOutputDescriptor(const std::string & name) const
   {
-    bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::GetOutputDescriptor('"
-                       <<name<<"') ["<<GetFullTypeName()<<"]"<<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::GetOutputDescriptor('"
+                     <<name<<"')"<<std::endl);
 
     OutputDescriptorMapType::const_iterator i;
     i = mOutput.find(name);
     if ( i == mOutput.end() ) 
     {
-           bbtkError("output '"<<name<<"' does not exist");
+      bbtkError("output '"<<name<<"' does not exist");
     }
-    bbtkDebugDecTab("Kernel",9);
+
     return i->second;
   }
   //=========================================================================
@@ -215,16 +231,17 @@ namespace bbtk
   //=========================================================================
   void BlackBoxDescriptor::GetHelp(bool full) const
   {
-    bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::GetHelp() ["<<GetFullTypeName()<<"]"<<std::endl);
-
-    bbtkMessage("Help",1,"Black Box <"<<GetFullTypeName()<<">"<<std::endl);
-    bbtkMessage("Help",1," "              <<GetDescription()<<std::endl);
-    bbtkMessage("Help",1," By : "         <<GetAuthor()     <<std::endl);
-    bbtkMessage("Help",1," Categories : " <<GetCategory()    <<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::GetHelp()"
+                     <<std::endl);
+    
+    bbtkMessage("help",1,"Black Box <"<<GetFullTypeName()<<">"<<std::endl);
+    bbtkMessage("help",1," "              <<GetDescription()<<std::endl);
+    bbtkMessage("help",1," By : "         <<GetAuthor()     <<std::endl);
+    bbtkMessage("help",1," Categories : " <<GetCategory()    <<std::endl);
     if (mInput.size()) 
-      bbtkMessage("Help",1," * Inputs : "<<std::endl);
+      bbtkMessage("help",1," * Inputs : "<<std::endl);
     else 
-      bbtkMessage("Help",1," * No inputs"<<std::endl);
+      bbtkMessage("help",1," * No inputs"<<std::endl);
     InputDescriptorMapType::const_iterator i;
     unsigned int namelmax = 0;
     unsigned int typelmax = 0;
@@ -260,16 +277,16 @@ namespace bbtk
           std::string nature(i->second->GetNature());
           nature += "]";
           nature.append(1+natlmax-nature.size(),' ');
-          bbtkMessage("Help",1,
+          bbtkMessage("help",1,
                       "    '"<<name
                       <<" <"<<type
                       <<" ["<<nature
                       <<" : "<<i->second->GetDescription()<<std::endl);
     }
     if (mOutput.size()) 
-      bbtkMessage("Help",1," * Outputs : "<<std::endl);
+      bbtkMessage("help",1," * Outputs : "<<std::endl);
     else 
-      bbtkMessage("Help",1," * No outputs"<<std::endl);
+      bbtkMessage("help",1," * No outputs"<<std::endl);
     for ( o = mOutput.begin();  o != mOutput.end(); ++o ) 
     {
           std::string name(o->second->GetName());
@@ -281,16 +298,14 @@ namespace bbtk
           std::string nature(o->second->GetNature());
           nature += "]";
           nature.append(1+natlmax-nature.size(),' ');
-          bbtkMessage("Help",1,
+          bbtkMessage("help",1,
                    "    '"<<name
                       <<" <"<<type
                       <<" ["<<nature
                       <<" : "<<o->second->GetDescription()<<std::endl);
       }
    
-     bbtkDebugDecTab("Kernel",9);
   
-
   }
   //=========================================================================
    
@@ -302,14 +317,17 @@ namespace bbtk
     return "::" + mTypeName;
   }
   //=========================================================================
+        void BlackBoxDescriptor::GetBoxesInside (NodeTreeC& tree, int cont){
+               
+       }
   //=========================================================================
   void BlackBoxDescriptor::InsertHtmlHelp ( std::ofstream& s, 
                                            int detail, int level,
                                            const std::string& output_dir,
                                            bool relative_link )
   {
-    bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::InsertHtmlHelp() ["<<GetFullTypeName()<<"]"<<std::endl);
+    bbtkDDebugMessage("kernel",9,"BlackBoxDescriptor::InsertHtmlHelp()"
+                     <<std::endl);
     
     //-------------
     // General info 
@@ -365,7 +383,8 @@ namespace bbtk
     std::string usercol("#FFFFFF");
     std::string ubbcol("#DDFFFF");
     std::string wxbbcol("#EEFFFF");
-
+// JFGA 12/12/2014 Adding new variable 
+//    std::string wtbbcol("#CCFFFF");
 
     // (s) << "<h3 class=\"subsection\">Inputs</h3>\n";
     (s) << "<p><TABLE border=1 cellspacing=0 cellpadding=3>\n";
@@ -390,12 +409,14 @@ namespace bbtk
          col = ubbcol; 
          iotype = 1;
        }
+#ifdef USE_WXWIDGETS
       else if (in->second->GetCreatorTypeInfo() == 
               typeid(WxBlackBoxDescriptor))
        {
          col = wxbbcol; 
          iotype = 2;
        }
+#endif
 
       std::string name(in->second->GetName());
       Utilities::html_format(name);
@@ -407,7 +428,8 @@ namespace bbtk
       
       std::string descr(in->second->GetDescription());
       //Utilities::html_format(descr);
-      
+
+/*EED 10/11/2009
       std::string out = 
        "<TR><TD style='vertical-align: top;' bgcolor=\"" + col
        +"\"><B><PRE> "+name+" </PRE></B></TD>"
@@ -415,7 +437,16 @@ namespace bbtk
        +"\"><I><PRE> "+type+" </PRE></I></TD>"
        + "<TD style='vertical-align: top;' bgcolor=\""+col
        +"\">"+descr+"</TD></TR>\n";
-      
+*/      
+
+      std::string out = 
+       "<TR><TD style='vertical-align: top;' bgcolor=\"" + col
+       +"\"><B><PRE> "+name+" </PRE></B></TD>"
+       + "<TD style='vertical-align: top;' bgcolor=\""+col
+       +"\"><I><PRE> "+descr+" </PRE></I></TD>"
+       + "<TD style='vertical-align: top;' bgcolor=\""+col
+       +"\">"+type+"</TD></TR>\n";
+
       if (iotype==0) user_defined.push_back(out);
       else if (iotype==1) ubb_defined.push_back(out);
       else if (iotype==2) wxbb_defined.push_back(out);
@@ -453,12 +484,14 @@ namespace bbtk
            col = ubbcol; 
            iotype = 1;
          }
+#ifdef USE_WXWIDGETS
        else if (o->second->GetCreatorTypeInfo() == 
                 typeid(WxBlackBoxDescriptor))
          {
            col = wxbbcol; 
            iotype = 2;
          }
+#endif
        
        std::string name(o->second->GetName());
        Utilities::html_format(name);
@@ -471,6 +504,7 @@ namespace bbtk
        std::string descr(o->second->GetDescription());
        //Utilities::html_format(descr);
        
+/*EED 10/11/2009
        std::string out = 
          "<TR><TD style='vertical-align: top;' bgcolor=\"" + col
          +"\"><B><PRE> "+name+" </PRE></B></TD>"
@@ -478,7 +512,15 @@ namespace bbtk
          +"\"><I><PRE> "+type+" </PRE></I></TD>"
          + "<TD style='vertical-align: top;' bgcolor=\""+col
          +"\">"+descr+"</TD></TR>\n";
-       
+*/
+       std::string out = 
+         "<TR><TD style='vertical-align: top;' bgcolor=\"" + col
+         +"\"><B><PRE> "+name+" </PRE></B></TD>"
+         + "<TD style='vertical-align: top;' bgcolor=\""+col
+         +"\"><I><PRE> "+descr+" </PRE></I></TD>"
+         + "<TD style='vertical-align: top;' bgcolor=\""+col
+         +"\">"+type+"</TD></TR>\n";
+
        if (iotype==0) user_defined.push_back(out);
        else if (iotype==1) ubb_defined.push_back(out);
        else if (iotype==2) wxbb_defined.push_back(out);
@@ -494,8 +536,32 @@ namespace bbtk
     //------------
     // End
 
-    bbtkDebugDecTab("Kernel",9);
+
    }
   //=========================================================================
  
+       
+       //==========================================================================
+       void BlackBoxDescriptor::SetTypeOfScript_Application()
+       {
+               SetTypeOfScript(TS_SCRIPT_APPLICATION);
+       }        
+       //==========================================================================
+       
+               
+       //==========================================================================
+       bool BlackBoxDescriptor::IsTypeOfScript_Application()
+       {
+               return (GetTypeOfScript()==TS_SCRIPT_APPLICATION);
+       }
+       //==========================================================================
+
+       
+       //==========================================================================
+       bool BlackBoxDescriptor::IsTypeOfScript_ComplexBox()
+       {
+               return (GetTypeOfScript()==TS_SCRIPT_COMPLEXBOX);
+       }
+       //==========================================================================
+       
 }