+/*
+# ---------------------------------------------------------------------
+#
+# 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$
{
wxVtk3DBaseView *baseview = new wxVtk3DBaseView(this);
baseview->Configure();
+//EED 07 juin 2013
+ baseview->GetCamera()->SetViewUp (0, 1, 0);
+ baseview->GetCamera()->SetPosition (0, 0, 1);
+ baseview->GetCamera()->SetFocalPoint (0, 0, 0);
+
//EED 15 oct 2012 _sceneManager=new wxVtkSceneManager(this,baseview,_id);
_sceneManager=new wxVtkSceneManager(this,baseview,_id, _bbtkfactory);
bool wxGEditorTabPanel::OnDropText(wxCoord x, wxCoord y, const wxString& data)
{
- std::string packageName="";
- std::string boxType="";
-
- wxString foo( (data) );
- char str[150];
- strcpy( str, (const char*)foo.mb_str(wxConvUTF8) );
- char delims[] = ":";
- char *result = NULL;
- result = strtok( str, delims );
- packageName += result;
+ /*
+ * DFGO
+ * To handle bbs and bbg:
+ * handle data parameter to detect if incoming string is file or bbs or
+ * bbg or blackbox.
+ *
+ * For a drag and drop tutorial read:
+ * http://zetcode.com/gui/wxwidgets/dragdrop/
+ */
+ std::string stdData = crea::wx2std(data);
+ //std::cout << "Text drop: " << stdData << std::endl;
+
+ if(stdData.substr(0,4) == "box:")
+ {
+ int posT = stdData.find_first_of(':', 4);
+ std::string packageName = stdData.substr(4, posT-4);
+ posT = stdData.find_first_not_of(':', posT);
+ std::string boxType = stdData.substr(posT);
+
+ std::cout << "box: Package='" << packageName << "' BoxType='" << boxType << "'" <<std::endl;
+ /*
+ wxString foo( (data) );
+ char str[150];
+ strcpy( str, (const char*)foo.mb_str(wxConvUTF8) );
+
+ char delims[] = ":";
+ char *result = NULL;
+ result = strtok( str, delims );
+ packageName += result;
+
+ result = strtok( NULL, delims );
+ boxType += result;
+ */
+ if ( _panelsManager->TryToOpenScriptApplication(packageName,boxType) == false )
+ {
+ _sceneManager->createGBlackBox(x,y,packageName, boxType);
+ saveTempandUpdate("drop box");
+ }
+ }
+ // DFGO: file for linux
+ else if(stdData.substr(0,5) == "file:")
+ {
+ std::cout << "file to open: " << stdData << std::endl;
+ }
- result = strtok( NULL, delims );
- boxType += result;
-
- if ( _panelsManager->TryToOpenScriptApplication(packageName,boxType) == false )
- {
- _sceneManager->createGBlackBox(x,y,packageName, boxType);
- saveTempandUpdate("drop box");
- }
-
-/*EED Borrame
- >>>>>> TryToOpenScriptApplication
- Package::Pointer k;
- std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc;
- BlackBoxDescriptor::Pointer descriptor;
- k = _bbtkfactory->GetPackage(packageName);
- mapDesc = k->GetDescriptorMap();
- descriptor = mapDesc[boxType];
-
- if (descriptor->IsTypeOfScript_Application()==true)
- {
- OpenScript(descriptor->GetScriptFileName(),boxType);
- >>>>> OpenScript
- printf("EED wxGEditorTabPanel::OnDropText packageName=%s boxType=%s APPLI ScriptFileName=%s\n", packageName.c_str() , boxType.c_str() , descriptor->GetScriptFileName().c_str() );
- std::string fileName = boxType+".bbg";
- std::string filePathNameBBS = descriptor->GetScriptFileName();
- 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 ) )
- {
- _panelsManager->OpenDiagram( filePathNameBBG , fileName );
- } else {
- if ( Utilities::FileExists( filePathNameBBS ) )
- {
- _panelsManager->OpenBBS( filePathNameBBS , fileName );
- } else {
- wxMessageDialog windowMessage1(NULL,_T("..ERROR.. loading script bbg/bbs."), _T("Alert !"), wxOK);
- windowMessage1.ShowModal();
- }
- }
- <<<<<
- }
- <<<<<<<
-// EED Borrame
-// else {
-// _sceneManager->createGBlackBox(x,y,packageName, boxType);
-// saveTempandUpdate("drop box");
-// }
-
- */
-
return true;
}