Example #1
0
void InteractiveMatlabDialog::SetResults()
{
//   MessageInterface::ShowMessage("SetResults() Entered \n");

   // need to execute the command
//   theCmd->Initialize();
   theCmd->Execute();

//   MessageInterface::ShowMessage("executed command \n");

   outputTextCtrl->AppendText(wxT("\nSent to Matlab:  "));
   wxString evaluationString = theCmd->FormEvalString();
   outputTextCtrl->AppendText(evaluationString.c_str());

//   MessageInterface::ShowMessage("got eval string \n");

   outputTextCtrl->AppendText(wxT("\n\n"));

   // output the results
   for (unsigned int i=0; i<outputStrings.Count(); i++)
   {
      Parameter *param = (Parameter *)theGuiInterpreter->GetConfiguredObject(
            wxString(outputStrings[i]));

      if (param->GetTypeName() == wxT("Array"))
      {
//         MessageInterface::ShowMessage("parameter is an array \n");

         Array *array = (Array *)param;
         int numRows = array->GetIntegerParameter(wxT("NumRows"));
         int numCols = array->GetIntegerParameter(wxT("NumCols"));

         // create rmatrix
         Rmatrix rmatrix = array->GetRmatrixParameter(wxT("RmatValue"));
//         MessageInterface::ShowMessage("got the array values\n");

         wxString os;
         os << array->GetName().c_str() << wxT(" = \n") ;

         for (int j=0; j<numRows; j++)
         {
           for (int k=0; k<numCols; k++)
             os << wxT("\t") << rmatrix(j, k);
           os << wxT("\n");
         }

         wxString paramString = os;
         outputTextCtrl->AppendText(paramString.c_str());

      }
      else if (param->GetTypeName() == wxT("String"))
      {
         wxString paramString;
         StringVar *stringVar = (StringVar *)param;
         paramString.Printf(wxT("%s = %s\n"), param->GetName().c_str(),
                                           stringVar->GetString().c_str());
         outputTextCtrl->AppendText(paramString);
      }
      else
//      if (param->GetTypeName() == "Variable")
      {
         wxString paramString;
         paramString.Printf(wxT("%s = %f\n"), param->GetName().c_str(),
                                           param->EvaluateReal());
         outputTextCtrl->AppendText(paramString);
      }
   }
}