content+="\n";
//Ports with a value
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
if(_inputs[i]->isValueSet())
{
void GBlackBoxModel::setValueToInput(std::string name,std::string value)
{
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
if(_inputs[i]->getBBTKName()==name)
{
std::string GBlackBoxModel::getValueInput(std::string name)
{
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
if(_inputs[i]->getBBTKName()==name)
{
std::vector<int> GBlackBoxModel::getConnectedInputs()
{
std::vector<int> connected;
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
if(_inputs[i]->isConnected())
{
std::vector<int> GBlackBoxModel::getConnectedOutputs()
{
std::vector<int> connected;
- for(int i = 0; i<_outputs.size();i++)
+ for(int i = 0; i<(int)_outputs.size();i++)
{
if(_outputs[i]->isConnected())
{
//Refresh inputs position
int i;
- for(i=0;i<_inputs.size();i++)
+ for(i=0;i<(int)_inputs.size();i++)
{
_inputs[i]->updatePortPosition();
}
//Refresh outputs position
- for(i=0;i<_outputs.size();i++)
+ for(i=0;i<(int)_outputs.size();i++)
{
_outputs[i]->updatePortPosition();
}
GPortModel* GBoxModel::getInputPort(std::string name)
{
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
if(_inputs[i]->getBBTKName()==name)
{
GPortModel* GBoxModel::getOutputPort(std::string name)
{
- for(int i = 0; i<_outputs.size();i++)
+ for(int i = 0; i<(int)_outputs.size();i++)
{
if(_outputs[i]->getBBTKName()==name)
{
void GBoxModel::updatePorts()
{
- for(int i = 0; i<_inputs.size();i++)
+ for(int i = 0; i<(int)_inputs.size();i++)
{
_inputs[i]->updatePortPosition();
_inputs[i]->notifyObservers(_objectId);
const int ID_BTNCOMPLEXBOX = 1006;
const int ID_ADDCOMPLEXBOXINPUT = 1007;
const int ID_ADDCOMPLEXBOXOUTPUT = 1008;
- const int ID_SAVE_AS_BBS = 1009;
- const int ID_SAVE_AS_COMPLEXBOX = 1010;
- const int ID_COPY_TO_COMPLEXDIAGRAM = 1011;
+ const int ID_OPEN_BBS = 1009;
+ const int ID_SAVE_AS_BBS = 1010;
+ const int ID_SAVE_AS_COMPLEXBOX = 1011;
+ const int ID_COPY_TO_COMPLEXDIAGRAM = 1012;
- const int wxID_NOTEBOOK = 1012;
+ const int wxID_NOTEBOOK = 1013;
}
// namespace bbtk
#endif
--- /dev/null
+/*=========================================================================
+Program: bbtk
+Module: $RCSfile$
+Language: C++
+Date: $Date$
+Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* 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.
+* ------------------------------------------------------------------------ */
+
+/**
+* \file
+* \brief Class bbtk::GConnectorModel
+*/
+
+
+#include "ExecuterBBSG.h"
+
+#include "bbtkExecuter.h"
+#include "bbtkMessageManager.h"
+#include "bbtkFactory.h"
+#include "bbtkUtilities.h"
+
+
+
+namespace bbtk
+{
+
+
+
+ EExecuterBBSG::Pointer EExecuterBBSG::New()
+ {
+ return MakePointer( new EExecuterBBSG() );
+ }
+
+
+ //=========================================================================
+
+ EExecuterBBSG::EExecuterBBSG()
+ {
+ }
+
+ //=========================================================================
+
+ EExecuterBBSG::~EExecuterBBSG()
+ {
+ }
+
+ //=========================================================================
+
+//--EED
+ /// Sets the inputs of the workspace :
+ void EExecuterBBSG::SetInputs(const std::map<std::string,std::string>& m)
+ {
+ }
+
+ /// Puts the executer in "no exec" mode,
+ /// which creates but does not execute pipelines
+ void EExecuterBBSG::SetNoExecMode(bool b)
+ {
+ }
+
+ bool EExecuterBBSG::GetNoExecMode() const
+ {
+ return true;
+ }
+
+ /// Sets the mode of dialog of the executer for Root inputs
+ void EExecuterBBSG::SetDialogMode(DialogModeType t)
+ {
+ }
+
+ /// Puts the executer in "no error" mode,
+ /// Errors do not stop execution (but warnings are produced)
+ void EExecuterBBSG::SetNoErrorMode(bool b)
+ {
+ }
+
+ bool EExecuterBBSG::GetNoErrorMode() const
+ {
+ return true;
+ }
+
+ //=================================================================
+ /// Loads a package
+ void EExecuterBBSG::LoadPackage(const std::string &name )
+ {
+ }
+
+ /// Unloads a package
+ void EExecuterBBSG::UnLoadPackage(const std::string &name )
+ {
+ }
+
+ /// Starts a package block
+ void EExecuterBBSG::BeginPackage (const std::string &name )
+ {
+ }
+
+ /// Ends a package block
+ void EExecuterBBSG::EndPackage ()
+ {
+ }
+
+ /// Starts the definition of a new ComplexBlackBox in package pack
+ /// scriptfilename is the file from which the def is read
+ void EExecuterBBSG::Define (const std::string &name,
+ const std::string& pack,
+ const std::string &scriptfilename)
+ {
+ }
+
+ /// Sets the file name to use for the current definition
+ /// (Used to set it after the Define command)
+ void EExecuterBBSG::SetCurrentFileName (const std::string &name )
+ {
+ }
+
+ /// End the definition of a ComplexBlackBox
+ void EExecuterBBSG::EndDefine ()
+ {
+ }
+
+ /// Sets the kind of the currently defined ComplexBlackBox
+ void EExecuterBBSG::Kind(const std::string& kind)
+ {
+ }
+
+ /// Creates a new black box in current complex box
+ void EExecuterBBSG::Create ( const std::string& boxType, const std::string&
+ boxName)
+ {
+ printf("EED EExecuterBBSG::Create\n");
+ }
+
+ /// Destroys a black box
+ void EExecuterBBSG::Destroy (const std::string &boxName)
+ {
+ }
+
+ /// Clears the currently defined ComplexBlackBox
+ void EExecuterBBSG::Clear()
+ {
+ }
+
+ /// Connects the output boxOutput to the input boxInput
+ void EExecuterBBSG::Connect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input)
+ {
+ printf("EED EExecuterBBSG::Connect\n");
+ }
+
+ /// Executes the box
+ void EExecuterBBSG::Execute (const std::string &box)
+ {
+ }
+
+ /// Defines an input of the current complex box
+ void EExecuterBBSG::DefineInput (const std::string &name,
+ const std::string &box,
+ const std::string &input,
+ const std::string &help)
+ {
+ }
+
+ /// Defines an output of the current complex box
+ void EExecuterBBSG::DefineOutput (const std::string &name,
+ const std::string &box,
+ const std::string &output,
+ const std::string &help)
+ {
+ }
+
+ /// sets the input of the box with the value
+ void EExecuterBBSG::Set (const std::string &box,
+ const std::string &input,
+ const std::string &value)
+ {
+ printf("EED EExecuterBBSG::Set\n");
+ }
+
+ /// gets the output of the box
+ std::string EExecuterBBSG::Get (const std::string &box,
+ const std::string &output)
+ {
+ return "";
+ }
+
+ /// changes the workspace name
+ void EExecuterBBSG::SetWorkspaceName( const std::string& n )
+ {
+ }
+
+ ///Adds the authorName to the Box author list
+ void EExecuterBBSG::Author(const std::string &authorName)
+ {
+ }
+
+ ///Adds the categories to the Box categoris list
+ void EExecuterBBSG::Category(const std::string &categories)
+ {
+ }
+
+ /// The description string which explains what does the ComplexBox
+ void EExecuterBBSG::Description(const std::string &d)
+ {
+ }
+
+ /// prints the list of the boxes of the current box
+ void EExecuterBBSG::PrintHelpListBoxes()
+ {
+ }
+
+ /// Generate a HTML file with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ std::string EExecuterBBSG::ShowGraph(const std::string &nameblackbox,
+ const std::string &detailStr,
+ const std::string &levelStr,
+ const std::string &output_file,
+ const std::string &custom_header,
+ const std::string &custom_title,
+ bool system_display)
+ {
+ return "";
+ }
+
+ /// Generate a HTML with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ std::string EExecuterBBSG::ShowGraphInstances(const std::string &nameblackbox, int detail, int level, bool system_display)
+ {
+ return "";
+ }
+
+ /// Prints help on a black box
+ void EExecuterBBSG::PrintHelpBlackBox(const std::string &nameblackbox, const std::string &detailStr, const std::string &levelStr)
+ {
+ }
+
+ void EExecuterBBSG::Reset()
+ {
+ }
+
+ /// Sets the level of message for kind
+ void EExecuterBBSG::SetMessageLevel(const std::string &kind, int level)
+ {
+ }
+
+ /// Prints help on the messages
+ void EExecuterBBSG::HelpMessages()
+ {
+ }
+
+ /// Prints the string ... MORE : TO EXPLAIN
+ void EExecuterBBSG::Print(const std::string & message)
+ {
+ }
+
+//--EED
+
+
+} // EO namespace bbtk
+
+// EOF
+
--- /dev/null
+/*=========================================================================
+Program: bbtk
+Module: $RCSfile$
+Language: C++
+Date: $Date$
+Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* 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.
+* ------------------------------------------------------------------------ */
+
+
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <eduardo.davila@creatis.insa-lyon.fr>
+* RaC - 2010
+****/
+
+#ifndef __ExecuterBBSG_h__
+#define __ExecuterBBSG_h__
+
+//Includes same project
+//..
+
+//Includes bbtk
+#include "bbtkVirtualExec.h"
+
+//Includes std
+#include <iostream>
+
+
+#include "bbtkSystem.h"
+#include "bbtkComplexBlackBox.h"
+#include "bbtkFactory.h"
+
+
+
+
+
+/*
+namespace bbtk
+{
+
+ class Interpreter;
+
+
+ class Executer : public VirtualExec
+ {
+ BBTK_OBJECT_INTERFACE(Executer);
+ typedef VirtualExec Superclass;
+ public:
+ static Pointer New();
+*/
+
+
+
+
+namespace bbtk
+{
+
+ class EExecuterBBSG : public VirtualExec
+ {
+// BBTK_OBJECT_INTERFACE(EExecuterBBSG);
+// typedef VirtualExec Superclass;
+ public:
+ static Pointer New();
+// Pointer New();
+ EExecuterBBSG();
+ ~EExecuterBBSG();
+
+ //Public methods
+
+//--EED
+
+ /// Sets the inputs of the workspace :
+ virtual void SetInputs(const std::map<std::string,std::string>& m);
+
+ /// Puts the executer in "no exec" mode,
+ /// which creates but does not execute pipelines
+ virtual void SetNoExecMode(bool b);
+
+ virtual bool GetNoExecMode() const;
+
+ /// Sets the mode of dialog of the executer for Root inputs
+ virtual void SetDialogMode(DialogModeType t);
+
+ /// Puts the executer in "no error" mode,
+ /// Errors do not stop execution (but warnings are produced)
+ virtual void SetNoErrorMode(bool b) ;
+ virtual bool GetNoErrorMode() const ;
+ //=================================================================
+ /// Loads a package
+ virtual void LoadPackage(const std::string &name ) ;
+
+ /// Unloads a package
+ virtual void UnLoadPackage(const std::string &name );
+
+ /// Starts a package block
+ virtual void BeginPackage (const std::string &name );
+
+ /// Ends a package block
+ virtual void EndPackage ();
+
+ /// Starts the definition of a new ComplexBlackBox in package pack
+ /// scriptfilename is the file from which the def is read
+ virtual void Define (const std::string &name,
+ const std::string& pack,
+ const std::string &scriptfilename);
+
+ /// Sets the file name to use for the current definition
+ /// (Used to set it after the Define command)
+ virtual void SetCurrentFileName (const std::string &name );
+
+ /// End the definition of a ComplexBlackBox
+ virtual void EndDefine () ;
+
+ /// Sets the kind of the currently defined ComplexBlackBox
+ virtual void Kind(const std::string& kind);
+
+ /// Creates a new black box in current complex box
+ virtual void Create ( const std::string& boxType, const std::string&
+ boxName);
+
+ /// Destroys a black box
+ virtual void Destroy (const std::string &boxName);
+
+ /// Clears the currently defined ComplexBlackBox
+ virtual void Clear() ;
+
+ /// Connects the output boxOutput to the input boxInput
+ virtual void Connect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input) ;
+
+ /// Executes the box
+ virtual void Execute (const std::string &box) ;
+
+ /// Defines an input of the current complex box
+ virtual void DefineInput (const std::string &name,
+ const std::string &box,
+ const std::string &input,
+ const std::string &help) ;
+
+ /// Defines an output of the current complex box
+ virtual void DefineOutput (const std::string &name,
+ const std::string &box,
+ const std::string &output,
+ const std::string &help);
+
+ /// sets the input of the box with the value
+ virtual void Set (const std::string &box,
+ const std::string &input,
+ const std::string &value);
+
+ /// gets the output of the box
+ virtual std::string Get (const std::string &box,
+ const std::string &output) ;
+
+ /// changes the workspace name
+ virtual void SetWorkspaceName( const std::string& n );
+
+ ///Adds the authorName to the Box author list
+ virtual void Author(const std::string &authorName);
+
+ ///Adds the categories to the Box categoris list
+ virtual void Category(const std::string &categories);
+
+ /// The description string which explains what does the ComplexBox
+ virtual void Description(const std::string &d);
+
+ /// prints the list of the boxes of the current box
+ virtual void PrintHelpListBoxes();
+
+ /// Generate a HTML file with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ virtual std::string ShowGraph(const std::string &nameblackbox,
+ const std::string &detailStr,
+ const std::string &levelStr,
+ const std::string &output_file,
+ const std::string &custom_header,
+ const std::string &custom_title,
+ bool system_display = true);
+
+ /// Generate a HTML with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ virtual std::string ShowGraphInstances(const std::string &nameblackbox, int detail, int level, bool system_display=true) ;
+
+ /// Prints help on a black box
+ virtual void PrintHelpBlackBox(const std::string &nameblackbox, const std::string &detailStr, const std::string &levelStr);
+
+ virtual void Reset();
+
+ /// Sets the level of message for kind
+ virtual void SetMessageLevel(const std::string &kind, int level);
+
+ /// Prints help on the messages
+ virtual void HelpMessages();
+
+ /// Prints the string ... MORE : TO EXPLAIN
+ virtual void Print(const std::string & message);
+
+//--EED
+
+
+ private:
+
+ //Private Attributes
+
+
+ //Private Methods
+
+ protected:
+
+ //Protected Attributes
+
+ //Protected methods
+
+ };
+
+
+}
+// namespace bbtk
+#endif
+
#include "bbtkwxGUIEditorGraphicBBS.h"
#include "creaWx.h"
+#include <bbtkInterpreter.h>
+#include <ExecuterBBSG.h>
+
+
+
namespace bbtk
{
wxMenu *fileMenu = new wxMenu();
fileMenu->Append(ID_NEW, _T("New diagram"), _T("New"));
fileMenu->Append(ID_SAVE_AS_DIAGRAM, _T("Save diagram"), _T("Save diagram"));
+ fileMenu->Append(ID_OPEN_BBS, _T("Open BBS"), _T("Open BBS"));
fileMenu->Append(ID_SAVE_AS_BBS, _T("Save BBS"), _T("Save BBS"));
fileMenu->Append(ID_SAVE_AS_COMPLEXBOX, _T("Save complex box"), _T("Save complex box"));
fileMenu->Append(wxID_EXIT, _T("E&xit"), _T("Exit"));
Connect(ID_NEW,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
Connect(ID_SAVE_AS_DIAGRAM,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualDiagram));
+ Connect(ID_OPEN_BBS,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenBBS));
Connect(ID_SAVE_AS_BBS,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualBBS));
Connect(ID_SAVE_AS_COMPLEXBOX,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualComplexBox));
Connect(wxID_EXIT,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExit));
executeScript(script);
}
+
//=========================================================================
// 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( );
+ printf("EED wxGUIEditorGraphicBBS::OnOpenBBS file=%s\n", (const char*) (fileName.mb_str()) );
+
+ bbtk::EExecuterBBSG::Pointer exe = bbtk::EExecuterBBSG::New();
+// EExecuterBBSG *exe = new EExecuterBBSG();
+ bbtk::Interpreter::Pointer I = bbtk::Interpreter::New( boost::static_pointer_cast<VirtualExec>(exe) );
+// bbtk::Interpreter::Pointer I = bbtk::Interpreter::New( ExecuterBBSG::New() );
+// bbtk::Interpreter::Pointer I = bbtk::Interpreter::New( );
+
+ // 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()) );
+
+
+ }
+ }
void wxGUIEditorGraphicBBS::OnSaveActualBBS(wxCommandEvent& event)
{
wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save actual BBS"),wxEmptyString,wxT("NewBBS"),wxT("*.bbs"),wxSAVE|wxOVERWRITE_PROMPT);
if (saveFileDialog->ShowModal() == wxID_OK)
{
- wxString fileName = saveFileDialog->GetPath();
+ wxString fileName = saveFileDialog->GetPath( );
ofstream file;
#include "wxVtkSceneManager.h"
#include "GlobalConstants.h"
-//#include "C:\RaC\CREATIS\bbtkGEditor\data\icons\wxart_new.xpm" // JPR
#include "wxart_new.xpm" // JPR
#include "wxart_open.xpm"
#include "wxart_save.xpm"
void OnCreateNewTab(wxCommandEvent& event);
void OnOpenDiagram(wxCommandEvent& event);
void OnSaveActualDiagram(wxCommandEvent& event);
+ void OnOpenBBS(wxCommandEvent& event);
void OnSaveActualBBS(wxCommandEvent& event);
void OnSaveActualComplexBox(wxCommandEvent& event);
void OnExecuteActualDiagram(wxCommandEvent& event);