// | int main(int argc, char const* argv[]) { mediator.expectMsg(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, PubSubMediator.Publish( className[MessageEvent], MessageAdded(flowName, Message("Akka rocks!", time)) )); return 0; }
/*! Adds the error message.\n Moves to the most recent error message in the view. */ void MessagesWidget::addGUIMessage(MessageItem messageItem) { // move the cursor down before adding message. QTextCursor textCursor = mpMessagesTextBrowser->textCursor(); textCursor.movePosition(QTextCursor::End); mpMessagesTextBrowser->setTextCursor(textCursor); // set the CSS class depending on message type QString messageCSSClass; switch (messageItem.getErrorType()) { case StringHandler::Warning: messageCSSClass = "warning"; break; case StringHandler::OMError: messageCSSClass = "error"; break; case StringHandler::Notification: default: messageCSSClass = "notification"; break; } QString linkFormat = QString("[%1: %2]: <a href=\"omeditmessagesbrowser:///%3?lineNumber=%4\">%5</a>"); QString errorMessage; QString message; if(messageItem.getMessageItemType()== MessageItem::Modelica) { // if message already have tags then just use it. if (Qt::mightBeRichText(messageItem.getMessage())) { message = messageItem.getMessage(); } else { message = Qt::convertFromPlainText(messageItem.getMessage()).remove("<p>").remove("</p>"); } } else if(messageItem.getMessageItemType()== MessageItem::TLM) { message = messageItem.getMessage().remove("<p>"); } if (messageItem.getFileName().isEmpty()) { // if custom error message errorMessage = message; } else if (messageItem.getMessageItemType()== MessageItem::TLM || mpMainWindow->getLibraryWidget()->getLibraryTreeModel()->findLibraryTreeItem(messageItem.getFileName())) { // If the class is only loaded in AST via loadString then create link for the error message. errorMessage = linkFormat.arg(messageItem.getFileName()) .arg(messageItem.getLocation()) .arg(messageItem.getFileName()) .arg(messageItem.getLineStart()) .arg(message); } else { // Find the class name using the file name and line number. LibraryTreeItem *pLibraryTreeItem; pLibraryTreeItem = mpMainWindow->getLibraryWidget()->getLibraryTreeModel()->getLibraryTreeItemFromFile(messageItem.getFileName(), messageItem.getLineStart().toInt()); if (pLibraryTreeItem) { errorMessage = linkFormat.arg(pLibraryTreeItem->getNameStructure()) .arg(messageItem.getLocation()) .arg(pLibraryTreeItem->getNameStructure()) .arg(messageItem.getLineStart()) .arg(message); } else { // otherwise display filename to user where error occurred. errorMessage = QString("[%1: %2]: %3") .arg(messageItem.getFileName()) .arg(messageItem.getLocation()) .arg(message); } } QString errorString = QString("<div class=\"%1\">" "<b>[%2] %3 %4 %5</b><br>" "%6" "</div><br>") .arg(messageCSSClass) .arg(QString::number(mMessageNumber)) .arg(QTime::currentTime().toString()) .arg(StringHandler::getErrorKindString(messageItem.getErrorKind())) .arg(StringHandler::getErrorTypeDisplayString(messageItem.getErrorType())) .arg(errorMessage); mpMessagesTextBrowser->insertHtml(errorString); mMessageNumber++; // move the cursor down after adding message. textCursor.movePosition(QTextCursor::End); mpMessagesTextBrowser->setTextCursor(textCursor); emit MessageAdded(); }