コード例 #1
0
/*!
 * \brief AbstractAnimationWindow::loadVisualization
 * loads the data and the xml scene description
 * \return
 */
bool AbstractAnimationWindow::loadVisualization()
{
  VisType visType = VisType::NONE;
  // Get visualization type.
  if (isFMU(mFileName)) {
    visType = VisType::FMU;
  } else if (isMAT(mFileName)) {
    visType = VisType::MAT;
  } else if (isCSV(mFileName)) {
    visType = VisType::CSV;
  } else {
    MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, tr("Unknown visualization type."),
                                                          Helper::scriptingKind, Helper::errorLevel));
    return false;
  }
  //load the XML File, build osgTree, get initial values for the shapes
  bool xmlExists = checkForXMLFile(mFileName, mPathName);
  if (!xmlExists) {
    QString msg = tr("Could not find the visual XML file %1.").arg(QString(assembleXMLFileName(mFileName, mPathName).c_str()));
    MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, msg, Helper::scriptingKind,
                                                          Helper::errorLevel));
    return false;
  } else {
    //init visualizer
    if (visType == VisType::MAT) {
      mpVisualizer = new VisualizerMAT(mFileName, mPathName);
    } else if (visType == VisType::CSV) {
      mpVisualizer = new VisualizerCSV(mFileName, mPathName);
    } else if (visType == VisType::FMU) {
      mpVisualizer = new VisualizerFMU(mFileName, mPathName);
    } else {
      QString msg = tr("Could not init %1 %2.").arg(QString(mPathName.c_str())).arg(QString(mFileName.c_str()));
      MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, msg, Helper::scriptingKind,
                                                            Helper::errorLevel));
      return false;
    }
    connect(mpVisualizer->getTimeManager()->getUpdateSceneTimer(), SIGNAL(timeout()), SLOT(updateScene()));
    mpVisualizer->initData();
    mpVisualizer->setUpScene();
    mpVisualizer->initVisualization();
    //add scene for the chosen visualization
    mpViewerWidget->getSceneView()->setSceneData(mpVisualizer->getOMVisScene()->getScene().getRootNode());
  }
  //add window title
  setWindowTitle(QString::fromStdString(mFileName));
  //open settings dialog for FMU simulation
  if (visType == VisType::FMU) {
    openFMUSettingsDialog(dynamic_cast<VisualizerFMU*>(mpVisualizer));
  }
  return true;
}
コード例 #2
0
void CommitChangesDialog::generateFMUTraceabilityURI(QString activity, QString modelFileName, QString nameStructure, QString fmuFileName)
{
  QString toolURI, activityURI, agentURI, sourceModelFileNameURI, fmuFileNameURI;
  QDir dir(OptionsDialog::instance()->getTraceabilityPage()->getGitRepository()->text());
  //fmuURI;
  QFileInfo info(modelFileName);
  QFile uriFile(info.absolutePath() + "/" + nameStructure +".md");
  // open the file for writing
  if (uriFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
    QDateTime time = QDateTime::currentDateTime();
    if(activity.compare("ModelDescription Import")== 0) {
       qDebug("something here");
      fmuFileNameURI = "Entity.model: " + dir.relativeFilePath(modelFileName) + "#" + MainWindow::instance()->getGitCommands()->commitAndGetFileHash(modelFileName, activity);
      sourceModelFileNameURI = "Entity.modelDescription xml:" + dir.relativeFilePath(fmuFileName) + "#" + MainWindow::instance()->getGitCommands()->getGitHash(fmuFileName);
    }else {
      fmuFileNameURI = "Entity.fmu: " + dir.relativeFilePath(fmuFileName) + "#" + MainWindow::instance()->getGitCommands()->commitAndGetFileHash(fmuFileName, activity);
      sourceModelFileNameURI = "Entity.model:" + dir.relativeFilePath(modelFileName) + "#" + MainWindow::instance()->getGitCommands()->getGitHash(modelFileName);
    }
    toolURI = "Entity.softwareTool: " + MainWindow::instance()->getOMCProxy()->getVersion();
    agentURI = "Agent:" + OptionsDialog::instance()->getTraceabilityPage()->getUserName()->text();
    activityURI = "Activity."+ activity +":" + time.toString("yyyy-MM-dd-hh-mm-ss");
    QTextStream textSstream(&uriFile);
    textSstream << activity << "," << toolURI << "," << fmuFileNameURI << "," << agentURI << "," << activityURI <<"," << sourceModelFileNameURI;
    uriFile.flush();
    uriFile.close();
  } else {
      MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0,
                                               tr("The traceability information is not stored. One possible reason could be the model is not Modelica model"),
                                               Helper::scriptingKind, Helper::notificationLevel));
   }
}
コード例 #3
0
void CommitChangesDialog::generateTraceabilityURI(QString nameStructure, QString absloutePath, QString fileName, QString activity, QString fileURI)
{
  QString toolURI, fileNameURI, activityURI, agentURI, sourceFileNameURI;
  QFile file(absloutePath + "/" + nameStructure +".md");
  // open the file for writing
  if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    QDateTime time = QDateTime::currentDateTime();
    /*for writing line by line to text file */
    fileNameURI = "Entity.model:" + fileURI + "#"+ MainWindow::instance()->getGitCommands()->getGitHash(fileName);
    toolURI = "Entity.softwareTool:" + MainWindow::instance()->getOMCProxy()->getVersion();
    agentURI = "Agent:" + OptionsDialog::instance()->getTraceabilityPage()->getUserName()->text();
    activityURI = "Activity." + activity +":" + time.toString("yyyy-MM-dd-hh-mm-ss");
    QTextStream textSstream(&file);
    if(activity.compare("Model Modification")== 0){
       sourceFileNameURI =  "Entity.model:" + fileURI + "#"+ MainWindow::instance()->getGitCommands()->getGitHash(fileName);
       textSstream << activity << "," << toolURI << "," << fileNameURI << "," << agentURI << "," << activityURI <<"," << sourceFileNameURI;
    }else {
        textSstream << activity << "," << toolURI << "," << agentURI << "," << activityURI <<"," << fileNameURI;
      }

    file.flush();
    file.close();
  } else {
      MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0,
                                                                   tr("The traceability information is not created in a file. One possible reason could be the model is not Modelica model"),
                                                                   Helper::scriptingKind, Helper::notificationLevel));
    }
}
コード例 #4
0
ファイル: GitCommands.cpp プロジェクト: robbr48/OMEdit
/*!
 * \brief GitCommands::createGitRepository
 * Creates a git repositoryt.
 * \param repositoryPath
 */
void GitCommands::createGitRepository(QString repositoryPath)
{
  if(isGitInstalled()) {
    mpGitProcess->setWorkingDirectory(repositoryPath);
    //mpGitProcess->setProcessChannelMode(QProcess::MergedChannels);
    mpGitProcess->start("git", QStringList() << "init");
    mpGitProcess->waitForFinished();
    QString createRepo = mpGitProcess->readAllStandardOutput();
    MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0,
                                                                 createRepo,
                                                                 Helper::scriptingKind, Helper::notificationLevel));

    addStructuresToRepository(repositoryPath);
  }
  else {
    QMessageBox *pMessageBox = new QMessageBox();
    pMessageBox->setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::information));
    pMessageBox->setIcon(QMessageBox::Information);
    pMessageBox->setAttribute(Qt::WA_DeleteOnClose);
    pMessageBox->setText("Git not found in the system");
    pMessageBox->exec();
  }
}
コード例 #5
0
	virtual bool specialLoadList(uint32 count, uint32 offset) {
		// Special code for message lists which are set at runtime (but otherwise constant)
		switch (offset) {
		// Scene 1002 rings
		case 0x004B4200:
			add(MessageItem(0x4800, 258));
			add(MessageItem(0x100D, 0x4A845A00));
			add(MessageItem(0x4805, 1));
			return true;
		case 0x004B4218:
			add(MessageItem(0x4800, 297));
			add(MessageItem(0x100D, 0x43807801));
			add(MessageItem(0x4805, 2));
			return true;
		case 0x004B4230:
			add(MessageItem(0x4800, 370));
			add(MessageItem(0x100D, 0x46C26A01));
			return true;
		case 0x004B4240:
			add(MessageItem(0x4800, 334));
			add(MessageItem(0x100D, 0x468C7B11));
			add(MessageItem(0x4805, 1));
			return true;
		case 0x004B4258:
			add(MessageItem(0x4800, 425));
			add(MessageItem(0x100D, 0x42845B19));
			add(MessageItem(0x4805, 1));
			return true;
		// Scene 1302 rings
		case 0x004B0888:
			add(MessageItem(0x4800, 218));
			add(MessageItem(0x100D, 0x4A845A00));
			add(MessageItem(0x4805, 1));
			return true;
		case 0x004B08A0:
			add(MessageItem(0x4800, 218 + 32));
			add(MessageItem(0x100D, 0x43807801));
			return true;
		case 0x004B08B0:
			add(MessageItem(0x4800, 218 + 32 + 32));
			add(MessageItem(0x100D, 0x46C26A01));
			add(MessageItem(0x4805, 1));
			return true;
		case 0x004B08C8:
			add(MessageItem(0x4800, 218 + 32 + 32 + 32));
			add(MessageItem(0x100D, 0x468C7B11));
			return true;
		case 0x004B08D8:
			add(MessageItem(0x4800, 218 + 32 + 32 + 32 + 32));
			add(MessageItem(0x100D, 0x42845B19));
			add(MessageItem(0x4805, 4));
			return true;
		}
		return false;
	}