]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx
Bug #1878
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / bbtkwxGUIEditorGraphicBBS.cxx
index e7a93620d5d2595955f55a1ad5f0c3eff37b481b..93596627446f3930b78bfa3236751bb5df35d858 100644 (file)
@@ -1,3 +1,28 @@
+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+#
+#  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$
@@ -252,27 +277,21 @@ void wxGUIEditorGraphicBBS::initMenu() {
                        wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenBBS));
        Connect(ID_SAVE_AS_BBS, wxEVT_COMMAND_MENU_SELECTED,
                        wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualBBS));
-       Connect(
-                       ID_SAVE_AS_COMPLEXBOX,
-                       wxEVT_COMMAND_MENU_SELECTED,
+       Connect( ID_SAVE_AS_COMPLEXBOX, wxEVT_COMMAND_MENU_SELECTED,
                        wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualComplexBox));
-       Connect(
-                       ID_EXPORT_CONSOLEAPP,
-                               wxEVT_COMMAND_MENU_SELECTED,
+       Connect( ID_EXPORT_CONSOLEAPP, wxEVT_COMMAND_MENU_SELECTED,
                                wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExportConsoleExecCommand));
        Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED,
                        wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExit));
 
-       // Create Help menu and its items
+       // Create Edit menu and its items
        wxMenu *editMenu = new wxMenu;
-       editMenu->Append(ID_COPY_TO_COMPLEXDIAGRAM,
-                       _T("Copy selected to complex box"),
-                       _T("Creates a new complex box diagram with selected boxes"));
-
-       Connect(
-                       ID_COPY_TO_COMPLEXDIAGRAM,
-                       wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram));
+       editMenu->Append(ID_COPY_TO_COMPLEXDIAGRAM, _T("Copy selected to complex box"), _T("Creates a new complex box diagram with selected boxes"));
+       editMenu->Append(ID_EDIT_COMPLEXBOX_SCRIPT, _T("Edit Complex Box"), _T("Edit Complex Box"));
+       Connect( ID_COPY_TO_COMPLEXDIAGRAM, wxEVT_COMMAND_MENU_SELECTED,
+                        wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram));
+       Connect( ID_EDIT_COMPLEXBOX_SCRIPT, wxEVT_COMMAND_MENU_SELECTED,
+                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnEditComplexBoxScript));
 
        // Create Help menu and its items
        wxMenu *helpMenu = new wxMenu;
@@ -593,29 +612,47 @@ void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event) {
        executeScript(script2);
 }
 
+       
+//=========================================================================
+void wxGUIEditorGraphicBBS::OpenBBS(std::string filePathName, std::string fileName) 
+{
+       _tabsMgr->addNewTab( crea::std2wx(fileName) );
+       bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New( this->_tabsMgr->getActualTabPanel()->getSceneManager(), _pkgBrowser->GetFactory());
+       // We tell the interpreter to throw exceptions on error
+       I->SetThrow(true);
+       // Interpret the file supposed to define a box called 'Processing'
+       I->InterpretFile( filePathName );
+       refreshGUIControls();
+}
+       
 //=========================================================================
 // HANDLERS
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event) {
-       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open BBS"),
-                       wxEmptyString, wxT("NewBBS"), wxT("*.bbs"), wxOPEN);
-       if (openFileDialog->ShowModal() == wxID_OK) {
-               wxString fileName = openFileDialog->GetPath();
+void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event) 
+{
+       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open BBS"), wxEmptyString, wxT("NewBBS"), wxT("*.bbs"), wxOPEN);
 
+       if (openFileDialog->ShowModal() == wxID_OK) 
+       {
+               OpenBBS( crea::wx2std(openFileDialog->GetPath()) , crea::wx2std(openFileDialog->GetFilename())  );
+       }
+       
+/*EED Borrame  
+       if (openFileDialog->ShowModal() == wxID_OK) 
+       {
+               wxString fileName = openFileDialog->GetPath();
                _tabsMgr->addNewTab(openFileDialog->GetFilename());
-
-               bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New(
-                               this->_tabsMgr->getActualTabPanel()->getSceneManager(),
-                               _pkgBrowser->GetFactory());
-
+               bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New( this->_tabsMgr->getActualTabPanel()->getSceneManager(), _pkgBrowser->GetFactory());
                // We tell the interpreter to throw exceptions on error
                I->SetThrow(true);
                // Interpret the file supposed to define a box called 'Processing'
                I->InterpretFile((const char*) (fileName.mb_str()));
        }
        refreshGUIControls();
+*/ 
 }
 
+//=========================================================================
 void wxGUIEditorGraphicBBS::SaveActualBBS(std::string filename) {
        ofstream file;
 
@@ -957,73 +994,70 @@ void wxGUIEditorGraphicBBS::refreshGUIControls() {
 
 //=========================================================================
 
-void wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram(wxCommandEvent& event) {
-       wxMessageDialog *dial = new wxMessageDialog(NULL,
-                       wxT("Are you sure to delete all boxes of the diagram?"),
-                       wxT("Delete all boxes"), wxYES_NO | wxNO_DEFAULT
-                                       | wxICON_QUESTION);
-       if (dial->ShowModal() == wxID_YES) {
+void wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram(wxCommandEvent& event) 
+{
+       wxMessageDialog *dial = new wxMessageDialog(NULL,wxT("Are you sure to delete all boxes of the diagram?"),wxT("Delete all boxes"), wxYES_NO | wxNO_DEFAULT| wxICON_QUESTION);
+       if (dial->ShowModal() == wxID_YES)
+       {
                _tabsMgr->deleteAllBoxesActualDiagram();
        }
 }
 
 //=========================================================================
 
-void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event) 
+{
        _tabsMgr->centerViewActualDiagram();
 }
 
 //=========================================================================
-
-void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event) {
-       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open diagram"),
-                       wxEmptyString, wxT(""), wxT("*.bbg"), wxOPEN | wxFILE_MUST_EXIST);
-       printf("SCP: wxGUIEditorGraphicBBS::OnOpenDiagram  \n");
-       if (openFileDialog->ShowModal() == wxID_OK) {
-               wxString filePath = openFileDialog->GetPath();
-               ifstream inputStream;
-               std::string fName = (const char*) (filePath.mb_str());
-
-               inputStream.open(fName.c_str());
-               assert(inputStream.good()); // fails
-
-               if(_tabsMgr->FindTab(crea::wx2std(filePath))!=-1) //RaC2012 avoid opening same diagram twice
-               {
-                       inputStream.close();
-                       printf("RaC: Diagram already opened\n");
-                       return;
-               }
-               wxString fileName = openFileDialog->GetFilename();
-               _tabsMgr->addNewTab(fileName);
-               _tabsMgr->loadDiagram(inputStream, fName);
-               _tabsMgr->saveTempActualDiagram("load diagram");
-               GetToolBar()->EnableTool(ID_UNDO, false);
-               GetToolBar()->EnableTool(ID_UNDO, false);
+void wxGUIEditorGraphicBBS::OpenDiagram(std::string filePathName, std::string fileName) 
+{
+       ifstream inputStream;   
+       inputStream.open(filePathName.c_str());
+       assert(inputStream.good()); // fails
+       
+       if(_tabsMgr->FindTab(filePathName)!=-1) //RaC2012 avoid opening same diagram twice
+       {
                inputStream.close();
+               printf("RaC: Diagram already opened\n");
+               return;
        }
+       _tabsMgr->addNewTab( crea::std2wx(fileName) );
+       _tabsMgr->loadDiagram(inputStream, filePathName);
+       _tabsMgr->saveTempActualDiagram("load diagram");
+       GetToolBar()->EnableTool(ID_UNDO, false);
+       GetToolBar()->EnableTool(ID_UNDO, false);
+       inputStream.close();
        refreshGUIControls();
 }
-
+       
 //=========================================================================
 
+void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event) 
+{
+       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open diagram"), wxEmptyString, wxT(""), wxT("*.bbg"), wxOPEN | wxFILE_MUST_EXIST);
+       if (openFileDialog->ShowModal() == wxID_OK) 
+       {
+               wxString filePath = openFileDialog->GetPath();
+               wxString fileName = openFileDialog->GetFilename();
+               OpenDiagram( crea::wx2std(filePath) , crea::wx2std(fileName) );                                 
+       }
+}
 
-void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event) {
+//=========================================================================
+void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event) 
+{
        BlackBoxDescriptor *bbDes = _pkgBrowser->GetActualSelected();
        if (bbDes != NULL) {
                std::string typeName = bbDes->GetTypeName();
                std::string packageName = bbDes->GetPackage()->GetName();
-
                wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
-               
-
                if (pnl != NULL) {
                        wxVtkSceneManager *scn = pnl->getSceneManager();
-printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox 1.\n");                       
                        scn->createGBlackBox(50, 50, packageName, typeName);
-printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox 2.\n");                       
                        scn->refresh();
                }
-
                SaveTempActualDiagram("New Box");
                // if pnl
        }// if bbDes
@@ -1031,7 +1065,8 @@ printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox 2.\n");
 
 //=========================================================================
 
-void wxGUIEditorGraphicBBS::OnClickBtnExecutableBox(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnClickBtnExecutableBox(wxCommandEvent& event) 
+{
        //DFCH
        wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
 
@@ -1047,8 +1082,8 @@ void wxGUIEditorGraphicBBS::OnClickBtnExecutableBox(wxCommandEvent& event) {
 }
 
 //=========================================================================
-
-void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event) 
+{
        wxToolBar* toolbar = GetToolBar();
        bool temp = toolbar->GetToolState(ID_BTNCOMPLEXBOX);
        if (temp) {
@@ -1060,7 +1095,8 @@ void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event) {
 
 //=========================================================================
 
-void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) 
+{
        wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
                        wxT("Name of input port"));
        if (nameDialog->ShowModal() == wxID_OK) {
@@ -1073,8 +1109,8 @@ void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) {
 }
 
 //=========================================================================
-
-void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event) 
+{
        wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
                        wxT("Name of output port"));
        if (nameDialog->ShowModal() == wxID_OK) {
@@ -1087,28 +1123,33 @@ void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event) {
 }
 
 //=========================================================================
-
 void wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram(
-               wxCommandEvent& event) {
+               wxCommandEvent& event) 
+{
        _tabsMgr->copySelectedBBoxesToComplexDiagram();
 }
 
-void wxGUIEditorGraphicBBS::OnHelpBBeditor(wxCommandEvent& event) {
+//=========================================================================
+void wxGUIEditorGraphicBBS::OnHelpBBeditor(wxCommandEvent& event) 
+{
        printf("wxGUIEditorGraphicBBS::OnHelpBBeditor ....not implemented..\n");
 }
 
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnCreatePackage(wxCommandEvent& event) {
-
+void wxGUIEditorGraphicBBS::OnCreatePackage(wxCommandEvent& event) 
+{
        bbtkSystemTools::CreatePackage();
 }
 
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnCreateBlackBox(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnCreateBlackBox(wxCommandEvent& event) 
+{
        bbtkSystemTools::CreateBlackBox();
 }
+       
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) 
+{
        //DFGO2012 Plug Package functionnalities
        long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
        wxDirDialog* FD =
@@ -1123,7 +1164,12 @@ void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) {
                if(userResponse==wxID_OK)
                {
                        std::string path = wx2std (FD->GetPath()) ;
+                       #ifdef WIN32
+                       std::string fname = path + "\\bbtkPackage";
+                       #else
                        std::string fname = path + "/bbtkPackage";
+                       #endif
+                       
                        std::cout << "Path chosen = \"" << FD->GetPath() << "\"" << std::endl;
                        if ( Utilities::FileExists( fname ) )
                        {
@@ -1131,6 +1177,11 @@ void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) {
                                f.open(fname.c_str());
                                std::string pname;
                                f >> pname;
+                               while(pname[0] == '#')
+                               {
+                                       getline(f, pname, '\n');
+                                       f >> pname;
+                               }
                                f.close();
 
                                bbtk::ConfigurationFile::GetInstance().AddPackagePathsAndWrite( path );
@@ -1160,8 +1211,10 @@ void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) {
        }while(userResponse != wxID_CANCEL);
 
 }
+       
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) 
+{
        std::string commandStr;
            std::string configFile = ConfigurationFile::GetInstance().Get_config_xml_full_path();
        #ifdef WIN32
@@ -1172,10 +1225,11 @@ void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) {
                commandStr = commandStr + configFile;
                std::cout << "system: " << commandStr << std::endl;
                system ( commandStr.c_str() );
-    }
-    //=========================================================================
-
-    void wxGUIEditorGraphicBBS::OnShowHTMLDoc(wxCommandEvent& event) {
+}
+       
+//=========================================================================
+void wxGUIEditorGraphicBBS::OnShowHTMLDoc(wxCommandEvent& event) 
+{
         // JGRR & CM WH
         if (_helpHtmlBrowser != NULL){
              _frameAUIMgr->DetachPane(_helpHtmlBrowser);
@@ -1188,14 +1242,33 @@ void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) {
         
         // EO JGRR    & CM WH       
 }
+       
 //=========================================================================
-void wxGUIEditorGraphicBBS::OnCreateIndex(wxCommandEvent& event) {
+void wxGUIEditorGraphicBBS::OnCreateIndex(wxCommandEvent& event) 
+{
        printf("EED wxGUIEditorGraphicBBS::OnCreateIndex ... not implemented ..\n");
 }
 
+       
 //=========================================================================
+void wxGUIEditorGraphicBBS::OnEditComplexBoxScript(wxCommandEvent& event)
+{
+       BlackBoxDescriptor *bbDes = _pkgBrowser->GetActualSelected();
+       if (bbDes != NULL) 
+       {
+               std::string packageName = bbDes->GetPackage()->GetName();
+               std::string typeName = bbDes->GetTypeName();
+               if (!TryToOpenScriptComplexBox(packageName ,typeName))
+               {
+                       wxMessageDialog windowMessage1(NULL,_T("This is not a ComplexBox script."), _T("Alert !"), wxOK);
+                       windowMessage1.ShowModal();
+               }
+       }// if bbDes
+}
 
-void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) {
+//=========================================================================
+void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) 
+{
        Close(true);
 }
 
@@ -1208,58 +1281,52 @@ Factory::Pointer wxGUIEditorGraphicBBS::GetBBTKFactory()
        return _pkgBrowser->GetFactory();
 }
 
-       //=========================================================================
-
-void wxGUIEditorGraphicBBS::enableComplexBox() {
+//=========================================================================
+void wxGUIEditorGraphicBBS::enableComplexBox() 
+{
        _tabsMgr->setActualDiagramComplexBox(true);
        refreshGUIControls();
 }
 
 //=========================================================================
 
-void wxGUIEditorGraphicBBS::disableComplexBox() {
+void wxGUIEditorGraphicBBS::disableComplexBox() 
+{
        _tabsMgr->setActualDiagramComplexBox(false);
        refreshGUIControls();
 }
 
 //=========================================================================
-
 void wxGUIEditorGraphicBBS::setCurrentDiagramDescription(std::string description)
 {
        _tabsMgr->SetDescription(description);
 }
 
 //=========================================================================
-
 void wxGUIEditorGraphicBBS::setCurrentDiagramAuthor(std::string author)
 {
        _tabsMgr->SetAuthor(author);
 }
 
 //=========================================================================
-
 void wxGUIEditorGraphicBBS::setCurrentDiagramCategory(std::string category)
 {
        _tabsMgr->SetCategory(category);
 }
 
 //=========================================================================
-
 std::string wxGUIEditorGraphicBBS::getCurrentDiagramDescription()
 {
        return _tabsMgr->GetDescription();
 }
 
 //=========================================================================
-
 std::string wxGUIEditorGraphicBBS::getCurrentDiagramAuthor()
 {
        return _tabsMgr->GetAuthor();
 }
 
 //=========================================================================
-
-
 std::string wxGUIEditorGraphicBBS::getCurrentDiagramCategory()
 {
        return _tabsMgr->GetCategory();
@@ -1267,13 +1334,76 @@ std::string wxGUIEditorGraphicBBS::getCurrentDiagramCategory()
 
        
 //=========================================================================
-
 bool wxGUIEditorGraphicBBS::isCurrentDiagramComplexBox()
 {
        return _tabsMgr->isActualDiagramComplexBox();
 }
 
 
+//=========================================================================
+void wxGUIEditorGraphicBBS::OpenScript(std::string filePathNameBBS ,std::string boxType)
+{      
+       std::string fileName                                                    = boxType+".bbg";
+       std::string filePathNameBBG                                             = filePathNameBBS;
+       filePathNameBBG[ filePathNameBBG.length()-1 ]   = 'g';
+       
+       wxMessageDialog windowMessage1(NULL,_T("The system is going to open a bbg or bbs for you. Be careful if you save this file."), _T("Alert !"), wxOK);
+       windowMessage1.ShowModal();
+       
+       if ( Utilities::FileExists( filePathNameBBG ) )
+       {
+               OpenDiagram( filePathNameBBG , fileName );     
+       } else {
+               if ( Utilities::FileExists( filePathNameBBS ) )
+               {
+                       OpenBBS( filePathNameBBS , fileName );     
+               } else {
+                       wxMessageDialog windowMessage1(NULL,_T("..ERROR.. loading script bbg/bbs."), _T("Alert !"), wxOK);
+                       windowMessage1.ShowModal();
+               } // FileExists BBS
+       } // FieExists BBG
+} //OpenScript
+       
+       
+       
+//=========================================================================
+bool wxGUIEditorGraphicBBS::TryToOpenScriptApplication(std::string packageName ,std::string boxType)
+{      
+       return TryToOpenScript(packageName ,boxType, true, false);
+}              
+
+//=========================================================================
+bool wxGUIEditorGraphicBBS::TryToOpenScriptComplexBox(std::string packageName ,std::string boxType)
+{      
+       return TryToOpenScript(packageName ,boxType, false, true);
+}              
+       
+       
+//=========================================================================
+bool wxGUIEditorGraphicBBS::TryToOpenScript(std::string packageName ,std::string boxType,bool scriptApplication, bool scriptComplexBox)
+{      
+       Package::Pointer k;
+       std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc;
+       BlackBoxDescriptor::Pointer descriptor;
+       k                       = GetBBTKFactory()->GetPackage(packageName);
+       mapDesc         = k->GetDescriptorMap();
+       descriptor      = mapDesc[boxType];
+
+       bool result=false;
+       
+       if (
+               ((descriptor->IsTypeOfScript_Application()==true) && (scriptApplication==true))
+               ||
+               ((descriptor->IsTypeOfScript_ComplexBox()==true) && (scriptComplexBox==true))           
+               )
+       {
+               result=true;
+               OpenScript(descriptor->GetScriptFileName(),boxType);
+       }
+       
+       return result;
+}      
+       
 } // EO namespace bbtk
 
 // EOF