X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWtBlackBox.cxx;fp=kernel%2Fsrc%2FbbtkWtBlackBox.cxx;h=a3cb0db75c09fec514311476812fcc3367d60e98;hb=427d8c0ac838ab789a57b28f62a7f9ff243e7b60;hp=0000000000000000000000000000000000000000;hpb=c2d2ccbc4bac635e5d0b802d9830efd94b060dab;p=bbtk.git diff --git a/kernel/src/bbtkWtBlackBox.cxx b/kernel/src/bbtkWtBlackBox.cxx new file mode 100644 index 0000000..a3cb0db --- /dev/null +++ b/kernel/src/bbtkWtBlackBox.cxx @@ -0,0 +1,473 @@ + +/* + # --------------------------------------------------------------------- + # + # 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: bbtkWxBlackBox.cxx,v $ + Language: C++ + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.45 $ +=========================================================================*/ + + + +#ifdef _USE_WT_ + +/** + * \file + * \brief + */ + +#include "bbtkWtBlackBox.h" +#include "bbtkBlackBoxOutputConnector.h" + + +//#include "bbtkWxContainerBlackBox.h" +//#include + +//#include "bbtkData.h" +//#include "bbtkFactory.h" + + + + +namespace bbtk +{ + + +/* + class jScript + { + public: + jScript(); + std::string jScriptLine; + }; +*/ + //========================================================================= + // wtData structure + //========================================================================= + + // For the very first contruction of the application +/* struct wtServerData + { + std::string docRoot; + std::string port; + std::string address; + + }; + */ + struct wtData + { + Wt::WContainerWidget *parent; + WtBlackBox::Pointer b; + WtBlackBox *pbox; + Wt::WString title; + }; + +/* jScript::jScript() + { + jScriptLine = ""; + } +*/ +// static bbtk::jScript* js = new bbtk::jScript(); + static wtData myWtData; +// static wtServerData loadedJS; + //static std::string* jss; + + + + //========================================================================= + // javaScript Line + //========================================================================= + //Contains all the JS statements needed for the bbwt. + + //========================================================================= + // WxFrame + //========================================================================= + // Application WT deployed + //================================================================== + + class WtWFrame : public Wt::WApplication + { + public: + WtWFrame( const Wt::WEnvironment& env ); + ~WtWFrame(); + WtBlackBox::WeakPointer mBox; + }; + + + WtWFrame::WtWFrame( const Wt::WEnvironment& env ):Wt::WApplication(env) + { + //std::cout<<"Adding JavaScript -- DELETE ME -- bbtkWtBlackBox.cxx"<require("/home/gonzalez/Documents/CREATOOLS/wt_library/wt/bbtk_wt_PKG/src/js/xtk.js"); + + //this->require("http://get.goXTK.com/xtk.js"); + //this->useStyleSheet("css/demo.css"); + + //this->require("http://get.goXTK.com/xtk.js"); + this->require( "resourcesXTK/xtk.js" ); + + // this->require("http://get.goXTK.com/xtk_edge.js"); +// this->require("http://get.goXTK.com/xtk_xdat.gui.js"); + this->require( "resourcesXTK/xtk_xdat.gui.js" ); + + this->useStyleSheet("resourcesXTK/styleWT.css"); + // std::cout<<"Cargado------------ "< + if(!myWtData.parent) + { + std::cout<<" SIN PADRE "<setMinimumSize(800,500); + std::cout<<"Creando WebWIDGET DELETE ME ---- bbtkWtBlackBox.cxx.......50%"<bbUserCreateWidget(myContainer); + + root()->addWidget(myWtData.parent); + //bbmWindow = myCont; + this->refresh(); + //jss = WtBlackBox::jScript; + std::cout<<"Creando WebWIDGET DELETE ME ---- bbtkWtBlackBox.cxx........80%"<doJavaScript(bbtk::jScript); + +//EED + myWtData.pbox->bbwtUpdateInputs(); +// myWtData.pbox->bbwtProcess(); + + + } + //================================================================== + //================================================================== + WtWFrame::~WtWFrame() + { + if (mBox.lock()) + bbtkDebugMessage("widget",9,"["<bbGetName() + <<"] $$$$$$$$$$$$$$$$$$$ ~W()" + <bbSetWindow(0); + WWt::DecNbWindowsAlive(); + } + + + + + Wt::WApplication *createApplication(const Wt::WEnvironment& env) + { + return new WtWFrame(env); + } + + + //========================================================================= + // WxDialogWxBlackBox::Pointer box + //========================================================================= + + //================================================================== + // Dialog window which is modal + /* class BBTK_EXPORT WxDialog : public wxDialog + { + public: + WxDialog(WxBlackBox::Pointer box, + wxWindow *parent, + wxString title, + wxSize size); + ~WxDialog();Wt::GetTopWindow() + void OnCloseWindow(wxCloseEvent& event); + + + WxBlackBox::WeakPointer mBox; + DECLARE_EVENT_TABLE(); + + }; + + BEGIN_EVENT_TABLE(WxDialog, wxDialog) + EVT_CLOSE(WxDialog::OnCloseWindow) + END_EVENT_TABLE(); + //========================================================================= + + //========================================================================= + WxDialog::WxDialog(WxBlackBox::Pointer b, + wxWindow *parent, + wxString title, + wxSize size) + : + wxDialog( parent, + -1, + title, + wxDefaultPosition, + size, + wxRESIZE_BORDER | + wxSYSTEM_MENU | + wxCLOSE_BOX | + wxMAXIMIZE_BOX | + wxMINIMIZE_BOX | + wxCAPTION + ), + mBox(b) + { + bbtkDebugMessage("widget",9,"WxDialog::WxDialog ["<bbGetName()<<"]" + <bbSetWindow(this); + // Insert the widget into the window + wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + b->bbUserCreateWidget(this); + wxWindow* widget = b->bbGetOutputWidget(); + sizer->Add( widget, 1, wxALL|wxGROW, 2); + SetSizer(sizer); + Layout(); + } + //================================================================== + //===========================organise======================================= + WxDialog::~WxDialog() + { + bbtkDebugMessage("widget",9,"WxDialog::~WxDialog()"<bbSetWindow(0); + // Wx::DecNbWindowsAlive(); + } + //================================================================== + //================================================================== + void WxDialog::OnCloseWindow(wxCloseEvent& event) + { + bbtkDebugMessage("widget",9,"WxDialog::OnCloseWindow()"<bbSetWindow(0); http://doodle.com/qx65tfxismf7d6ku5vxykghs/admin#table + Wx::DecNbWindowsAlive(); + this->Destroy(); + } + //================================================================== + +*/ + //========================================================================= + // WxBlackBox + //========================================================================= + + //========================================================================= + //========================================================================= + //========================================================================= + //========================================================================= + BBTK_BLACK_BOX_IMPLEMENTATION(WtBlackBox,WidgetBlackBox); + + //std::string WtBlackBox::wtServerData::docRoot = "/home/gonzalez/Documents/pruebaResources"; + //std::string WtBlackBox::wtServerData::docRoot = "/usr/local/share/wtResources"; + //std::string WtBlackBox::wtServerData::port = "8081"; + + std::string WtBlackBox::wtServerData::docRoot = ""; + std::string WtBlackBox::wtServerData::port = ""; + std::string WtBlackBox::wtServerData::address = "0.0.0.0"; + int WtBlackBox::wtServerData::argc = 0; + char **WtBlackBox::wtServerData::argv = NULL; + + //========================================================================= + //========================================================================= + void WtBlackBox::bbUserSetDefaultValues() + { + bbtkBlackBoxDebugMessage("widget",5,"WtBlackBox::bbUserSetDefaultValues()"< WtBlackBox::bbUserFinalizeProcessing()"< WtBlackBox::bbCreateDialogWindow() - No Dialog must be created, it is a web app" + < WtBlackBox::bbCreateFrameWindow() - parent = " + <(); + myWtData.title = std2wt( bbGetInputWinTitle() + " - bbtk (c) CREATIS"); + myWtData.pbox = this; + + //char *argv[7] = {"./WtTest","--docroot","/home/gonzalez/Documents/pruebaResources","--http-address","0.0.0.0","--http-port","8080"}; + //int argc = 7; + +/* + char *argv[7] = {"./WtTest" +,"--docroot",(char*)WtBlackBox::wtServerData::docRoot.c_str() +,"--http-address",(char*)WtBlackBox::wtServerData::address.c_str() +,"--http-port",(char*)WtBlackBox::wtServerData::port.c_str() +}; + int argc = 3; + std::cout<<" --- PUERTO :"<isRunning()) + { + std::cout<<"Checking the existence of a Server deployed -DELETE THIS MESSAGE bbtkWTBlackBox.cxx"<stop(); + } + */ + + + std::cout<<"EED WtBlackBox::bbCreateFrameWindow Deploying Server -- Definition of server parameters by default -DELETE THIS MESSAGE bbtkWTBlackBox.cxx"< WtBlackBox::bbSetWindow("< WtBlackBox::bbShowWindow()" + <ShowModal(); + } + else + { + // There is not such a thing like show becouse it is a webapp + // bbGetWindow()->Show(); + // WWt::CreateWtAppIfNeeded(); + + + Wt::WRun(WtBlackBox::wtServerData::argc, + WtBlackBox::wtServerData::argv, + &createApplication); + + + bbSetShown(true); + } + } + } + //================================================================== + + //================================================================== + void WtBlackBox::bbDestroyWindow() + { + bbtkBlackBoxDebugMessage("widget",3,"==> WtBlackBox::bbDestroyWindow("<Close(true); + // + delete bbGetWindow(); + bbSetShown(false); + } + bbtkBlackBoxDebugMessage("widget",3,"<== WtBlackBox::bbDestroyWindow("<