+/*
+# ---------------------------------------------------------------------
+#
+# 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$
}
//=========================================================================
- wxGEditorTabPanel::wxGEditorTabPanel(wxWindow *parent,int id):wxPanel(parent),wxTextDropTarget()
+ wxGEditorTabPanel::wxGEditorTabPanel(wxWindow *parent,int id, Factory::Pointer bbtkfactory)
+ : wxPanel(parent),wxTextDropTarget()
{
-printf("EED wxGEditorTabPanel::wxGEditorTabPanel 0\n");
- printf ("EED %p wxGEditorTabPanel 2 ()\n" , this );
_id=id;
- _panelAUIMgr = new wxAuiManager(this);
- _sceneManager = NULL;
- _actualdo = states.begin();
+ _panelAUIMgr = new wxAuiManager(this);
+ _sceneManager = NULL;
+ _actualdo = states.begin();
+ _sactualdo = sstates.begin();
+ _bbtkfactory = bbtkfactory;
initWxVtkCanvas();
-printf("EED wxGEditorTabPanel::wxGEditorTabPanel 1\n");
}
//=========================================================================
wxGEditorTabPanel::~wxGEditorTabPanel()
{
-printf ("EED %p ~wxGEditorTabPanel() START \n" , this );
//ED02JUIN2010 _sceneManager->disconnectDrop();
_panelsManager->VerifyLastTabPanel();
//FCY memory leaks
delete _panelAUIMgr;
delete _sceneManager;
-
- printf ("EED %p ~wxGEditorTabPanel() END\n" , this );
-
}
//=========================================================================
void wxGEditorTabPanel::initWxVtkCanvas()
{
-printf("EED wxGEditorTabPanel::initWxVtkCanvas 0\n");
wxVtk3DBaseView *baseview = new wxVtk3DBaseView(this);
baseview->Configure();
- _sceneManager=new wxVtkSceneManager(this,baseview,_id);
+//EED 15 oct 2012 _sceneManager=new wxVtkSceneManager(this,baseview,_id);
+ _sceneManager=new wxVtkSceneManager(this,baseview,_id, _bbtkfactory);
//EED02JUIN2010
_panelAUIMgr->AddPane((wxWindow*)baseview->GetWxVTKRenderWindowInteractor(),wxAuiPaneInfo().Fixed().CenterPane());
_panelAUIMgr->Update();
-printf("EED wxGEditorTabPanel::initWxVtkCanvas 1\n");
}
//=========================================================================
result = strtok( NULL, delims );
boxType += result;
- _sceneManager->createGBlackBox(x,y,packageName, boxType);
- saveTempandUpdate();
+ if ( _panelsManager->TryToOpenScriptApplication(packageName,boxType) == false )
+ {
+ _sceneManager->createGBlackBox(x,y,packageName, boxType);
+ saveTempandUpdate("drop box");
+ }
return true;
}
//=========================================================================
- void wxGEditorTabPanel::saveTempandUpdate()
+ void wxGEditorTabPanel::saveTempandUpdate(const std::string &action)
{
- _panelsManager->saveTempandUpdate();
+ _panelsManager->saveTempandUpdate(action);
}
//=========================================================================
//=========================================================================
- void wxGEditorTabPanel::saveTempDiagram() //FCY
+ void wxGEditorTabPanel::saveTempDiagram(const std::string &action) //FCY
{
std::string content = "";
// writing file header
content += "# ----------------------------------\n";
- content += "# - BBTKGEditor v 1.2 BBG BlackBox Diagram file\n";
+ content += "# - BBTKGEditor v 1.3 BBG BlackBox Diagram file\n";
content += "# - ";
content += "temp";
content += "\n";
if(_actualdo == states.end() ) // same size, write to the end
{
states.push_back (content);
+ saveStringAction(action);
}
else
{
std::vector<std::string>::iterator it = _actualdo+1;
states.erase(it, states.end());
states.push_back(content);
+
+ std::vector<std::string>::iterator sit = _sactualdo+1;
+ sstates.erase(sit, sstates.end());
+ saveStringAction(action);
}
_actualdo = states.end();
+ _sactualdo = sstates.end();
}
}
//=========================================================================
- unsigned short wxGEditorTabPanel::getUndoState()
+ unsigned short wxGEditorTabPanel::getUndoState( std::string &stun)
{
+ stun = "Undo";
if(states.size()>0)
{
if(_actualdo == states.begin() )
+ {
+
return 0;
+ }
else
+ {
+ stun +=" - ";
+ stun += _sactualdo->substr(0,(--_sactualdo)->find_last_of("."));
+ _sactualdo++;
return 1;
+ }
}
}
- unsigned short wxGEditorTabPanel::getRedoState()
+ unsigned short wxGEditorTabPanel::getRedoState( std::string &stre)
{
+ stre = "Redo";
if(states.size()>0)
{
- if(_actualdo == --states.end() || states.size() == 1)
+ if(_actualdo == --states.end() || states.size() == 1 || _actualdo == states.end())
return 0;
else
+ {
+ stre +=" - ";
+ stre += _sactualdo->substr(0,(++_sactualdo)->find_last_of("."));
+ --_sactualdo;
return 1;
+ }
}
}
if(_actualdo == states.end() ) // same size, write to the end
{
(_actualdo--);
+ (_sactualdo--);
}
if(_actualdo != states.begin() )
{
ss << *(--_actualdo);
+ _sactualdo--;
}
else
{
else //redo
{
_actualdo++;
+ _sactualdo++;
if(_actualdo != states.end())
{
ss << *_actualdo;
_sceneManager->loadDiagram(ss);
}
-
+
+ void wxGEditorTabPanel::saveStringAction(const std::string &action)
+ {
+ char temp[50];
+ sprintf(temp,".%d", sstates.size());
+ sstates.push_back(action + temp);
+ }
+
//=========================================================================
int wxGEditorTabPanel::getPanelId()
{
return _id;
}
+
+
//=========================================================================