-/*=========================================================================
+/*=========================================================================
Program: bbtk
Module: $RCSfile$
Language: C++
* 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
+* 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.
+* 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::WxInterfaceEditorGraphicBBS .
+* \file
+* \brief Class bbtk::WxInterfaceEditorGraphicBBS .
*/
#include "bbtkwxGUIEditorGraphicBBS.h"
{
_frameAUIMgr = new wxAuiManager(this);
-
+
/*std::string datadir( crea::System::GetExecutablePath() );
std::string datadir (".");
cout<<"RaC //TODO wxGUIEditorGraphicBBS constructor.Initialize datadir with crea::System::GetExecutablePath() ."<<endl;
cout<<"RaC //------------------"<<endl;
- #ifdef LINUX // assume this is OSX
+ #ifdef LINUX // assume this is OSX
datadir=datadir+"/../share/creaContours";
- #endif // MACOSX
-
- #ifdef MACOSX // assume this is OSX
+ #endif // MACOSX
+
+ #ifdef MACOSX // assume this is OSX
datadir=datadir+"/../../../../share/creaContours";
- #endif // MACOSX
+ #endif // MACOSX
_dataDir = datadir;*/
//=========================================================================
void wxGUIEditorGraphicBBS::initToolbar()
- {
+ {
wxBitmap bmp_new(new_xpm);
wxBitmap bmp_open(open_xpm);
wxBitmap bmp_save(save_xpm);
toolbar->AddTool(ID_ADDCOMPLEXBOXOUTPUT,_T("Add output to Complex box"),bmp_complexoutputport, wxNullBitmap, wxITEM_NORMAL,_T("Add output Complex box"), _T("Add output Complex box"));
toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,false);
toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,false);
-
+
toolbar->SetMargins( 2, 2 );
toolbar->Realize();
SetToolBar(toolbar);
//TO FIX THE PATH OF BBTK BIN IN ORDER TO USE REGENERATE EXECUTABLES
//RegenerateAll();
_helpHtmlBrowser = new WxGUIHtmlBrowser(this,wxSize(200,0));
- _frameAUIMgr->AddPane(_helpHtmlBrowser,wxAuiPaneInfo().Right().MinSize(200,200));
+ _frameAUIMgr->AddPane(_helpHtmlBrowser,wxAuiPaneInfo().Right().MinSize(200,200));
}
//=========================================================================
// Create Help 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"));
+ 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));
// Create Help menu and its items
wxMenu *helpMenu = new wxMenu;
- helpMenu->Append(wxID_ABOUT, _T("&About..."), _T("About"));
+ helpMenu->Append(wxID_ABOUT, _T("&About..."), _T("About"));
// Append the created menu to the menu bar
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(helpMenu, _T("&Help"));
// Attach this menu bar to the frame
- SetMenuBar(menuBar);
+ SetMenuBar(menuBar);
}
//=========================================================================
{
_notebook = new wxAuiNotebook(this,wxID_NOTEBOOK,wxDefaultPosition,wxDefaultSize,wxAUI_NB_TOP|wxAUI_NB_TAB_MOVE|wxAUI_NB_CLOSE_ON_ACTIVE_TAB|wxAUI_NB_TAB_FIXED_WIDTH|wxAUI_NB_WINDOWLIST_BUTTON);
_tabsMgr = new wxTabPanelsManager(this);
- _frameAUIMgr->AddPane(_notebook,wxAuiPaneInfo().CenterPane());
+ _frameAUIMgr->AddPane(_notebook,wxAuiPaneInfo().CenterPane());
}
-
+
//=========================================================================
void wxGUIEditorGraphicBBS::initPackageBrowser()
{
_pkgBrowser = new WxGUIPackageBrowser2(this);
_pkgBrowser->IncludeAll();
- _frameAUIMgr->AddPane(_pkgBrowser,wxAuiPaneInfo().Left().MinSize(200,200).CloseButton(false));
+ _frameAUIMgr->AddPane(_pkgBrowser,wxAuiPaneInfo().Left().MinSize(200,200).CloseButton(false));
}
//================================================================
{
mess = "Regenerating doc for all packages";
}
-
- mess += " ... please wait";
+
+ mess += " ... please wait";
SetStatusText( std2wx(mess) );
wxOK | wxICON_INFORMATION);
*/
}
- else
+ else
{
SetStatusText( _T("Done !"));
wxString err(_T("An error occured while running '"));
err += bbtk::std2wx(command) + _T("'");
- wxMessageBox(err,_T("Regenerate package doc"),wxOK | wxICON_ERROR);
+ wxMessageBox(err,_T("Regenerate package doc"),wxOK | wxICON_ERROR);
}
}
wxOK | wxICON_INFORMATION);
*/
}
- else
+ else
{
SetStatusText( _T("Done !"));
wxString err(_T("An error occured while running '"));
err += bbtk::std2wx(command) + _T("'");
- wxMessageBox(err,_T("Regenerate boxes lists"),wxOK | wxICON_ERROR);
+ wxMessageBox(err,_T("Regenerate boxes lists"),wxOK | wxICON_ERROR);
}
}
-
+
//================================================================
void wxGUIEditorGraphicBBS::RegenerateAll()
{
- DoRegeneratePackageDoc("-a");
+ DoRegeneratePackageDoc("-a");
DoRegenerateBoxesLists();
}
std::string separator = ConfigurationFile::GetInstance().Get_file_separator ();
std::string dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
std::string filename = dir + separator + "tmp_bbtk.bbs";
-
+
ofstream tempFile;
tempFile.open(filename.c_str());
tempFile << script;
std::string command = "\""+ crea::System::GetExecutablePath();
-
+
#ifdef MACOSX
command += separator + "../../../bbi.app/Contents/MacOS";
#endif
-
+
#ifdef WIN32
command += "\"";
#endif
-
- /*
-
+
+ /*
+
//command += ConfigurationFile::GetInstance().Get_bin_path();
//EED command +="C:/temp/bbtkBIN/RelWithDebInfo//";
//EED command +="C:/Program Files/CreaTools/bbtk-0.9.5/bin";
#ifdef MACOSX
command += separator + "usr/local/bin/bbi.app/Contents/MacOS/bbi\" ";
- #else
+ #else
command +=".";
command += separator + "bbi\" ";
#endif
#endif
command += " & ";
-
+
printf ("RaC wxGUIEditorGraphicBBS::executeScript %s \n" , command.c_str() );
system( command.c_str() );
}
//=========================================================================
- // EVENT HANDLERS
+ // EVENT HANDLERS
//=========================================================================
void wxGUIEditorGraphicBBS::OnCreateNewTab(wxCommandEvent& event)
{
- _tabsMgr->addNewTab();
+ _tabsMgr->addNewTab();
refreshGUIControls();
}
void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event)
{
- std::string script = _tabsMgr->getActualDiagramBBS();
- cout<<"RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"<<endl;
- cout<<script<<endl;
+ std::string script1 = _tabsMgr->getActualDiagramBBS(true);
+ cout<<endl<<"RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"<<endl<<endl;
+ cout<<script1<<endl;
- executeScript(script);
+ std::string script2 = _tabsMgr->getActualDiagramBBS(false);
+ executeScript(script2);
}
-
+
//=========================================================================
- // HANDLERS
+ // HANDLERS
//=========================================================================
void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event)
{
if (openFileDialog->ShowModal() == wxID_OK)
{
wxString fileName = openFileDialog->GetPath( );
-
-
+
+
_tabsMgr->addNewTab();
- 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'
if (saveFileDialog->ShowModal() == wxID_OK)
{
wxString fileName = saveFileDialog->GetPath( );
-
+
ofstream file;
-//EED file.open(fileName.c_str());
+//EED file.open(fileName.c_str());
file.open( (const char*) (fileName.mb_str()) );
std::string content="";
-
+
// writing file header
content += "# ----------------------------------\n";
content += "# - BBTKGEditor v 1.0 BBS BlackBox Script\n";
{
wxString fileName = nameDialog->GetValue();
cbName=(const char*) (fileName.mb_str());
- }
+ }
if(!cbName.empty())
- {
+ {
wxFileDialog * saveFileDialog = new wxFileDialog(this ,wxT("Save Complex Box BBS") ,wxEmptyString, wxString( cbName.c_str(), wxConvUTF8),wxT("*.bbs"), wxSAVE | wxOVERWRITE_PROMPT);
if (saveFileDialog->ShowModal() == wxID_OK)
{
wxString fileName = saveFileDialog->GetPath();
-
+
ofstream file;
file.open( (const char*) (fileName.mb_str()) );
std::string content="";
-
+
// writing file header
content += "# ----------------------------------\n";
content += "# - BBTKGEditor v 1.1 BBS BlackBox Script (Complex Box)\n";
if (saveFileDialog->ShowModal() == wxID_OK)
{
wxString fileName = saveFileDialog->GetPath();
-
+
ofstream file;
file.open( (const char*) (fileName.mb_str()) );
std::string content="";
-
+
// writing file header
content += "# ----------------------------------\n";
content += "# - BBTKGEditor v 1.0 BBG BlackBox Diagram file\n";
content += "# ----------------------------------\n";
content += "\n";
content += "APP_START\n";
- _tabsMgr->saveActualDiagram(content);
+ _tabsMgr->saveActualDiagram(content);
content += "APP_END\n";
file << content;
file.close();
toolbar->ToggleTool(ID_BTNCOMPLEXBOX,true);
toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,true);
toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,true);
-
+
GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,true);
GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,false);
}
GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,false);
GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,true);
}
-
+
if(_tabsMgr->getNumActualSelectedObjects()>0)
{
GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM,true);
//=========================================================================
-
+
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 fileName = openFileDialog->GetPath();
-
+
ifstream inputStream;
//EED inputStream.open(fileName.c_str());
_tabsMgr->addNewTab();
_tabsMgr->loadDiagram(inputStream);
-
+
inputStream.close();
}
refreshGUIControls();
}
//=========================================================================
-
-
+
+
void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event)
{
+
BlackBoxDescriptor *bbDes = _pkgBrowser->GetActualSelected();
- std::string typeName = bbDes->GetTypeName();
- std::string packageName = bbDes->GetPackage()->GetName();
+ if (bbDes!=NULL)
+ {
+ std::string typeName = bbDes->GetTypeName();
+ std::string packageName = bbDes->GetPackage()->GetName();
+
- this->_tabsMgr->getActualTabPanel()->getSceneManager()->createGBlackBox(50,50,packageName, typeName);
- this->_tabsMgr->getActualTabPanel()->getSceneManager()->refresh();
-
- printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox \n");
+ wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
+
+ if (pnl!=NULL)
+ {
+ wxVtkSceneManager *scn = pnl->getSceneManager();
+ scn->createGBlackBox(50,50,packageName, typeName);
+ scn->refresh();
+ } // if pnl
+ }// if bbDes
}
-
+
//=========================================================================
-
+
void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event)
{
wxToolBar* toolbar = GetToolBar();
{
_tabsMgr->setActualDiagramComplexBox(false);
}
- refreshGUIControls();
+ refreshGUIControls();
}
//=========================================================================
void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event)
- {
+ {
wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,wxT("Name of input port"));
if (nameDialog->ShowModal() == wxID_OK)
{
std::string portName=(const char*) (fileName.mb_str());
_tabsMgr->addActualDiagramComplexInputPort(portName);
}
- }
+ }
}
//=========================================================================
std::string portName=(const char*) (fileName.mb_str());
_tabsMgr->addActualDiagramComplexOutputPort(portName);
}
- }
+ }
}
//=========================================================================