Маркеры на графических элементах UML

У меня есть файл.uml, который содержит конечный автомат UML, переходы и состояния. Мне удалось поместить маркер на объекты в этом файле.uml, но я не могу поместить маркер на их графическое представление, расположенное в файле.aird. Вот код, который я использую для установки маркеров:

public static void addMarker(EObject eObj, String message, String location, int severity) throws CoreException{
  Resource resource = eObj.eResource();
  String uri = EcoreUtil.getURI(eObj).toString();
  String platformString = resource.getURI().toPlatformString(true);
  IResource iresource = ResourcesPlugin.getWorkspace().getRoot().findMember(platformString);
  IMarker imarker = iresource.createMarker(EValidator.MARKER);
  imarker.setAttribute(IMarker.SEVERITY, severity);
  imarker.setAttribute(IMarker.LOCATION, location);
  imarker.setAttribute(EValidator.URI_ATTRIBUTE, uri);
  imarker.setAttribute(IMarker.MESSAGE, message);
}

Это код, который я использую, чтобы найти графическое представление:

for(DView dview : SessionManager.INSTANCE.getSession(eObj).getOwnedViews()){
  if(dview.getViewpoint().getName().equals("Design")){
    for(DRepresentation drep : dview.getOwnedRepresentations()){
      for(DRepresentationElement drepElem : drep.getOwnedRepresentationElements()){
        if(drepElem.getTarget() == st.getSrcTransition().getTransition()){
          MarkerUtil.addMarker(drepElem, message, location, severity);
        }
      }
    }
  } 
}

Когда я пытаюсь перейти к метке графического представления перехода, он выделяет конечный автомат. Ниже приведены URI перехода:

платформа:/resource/TestSuite/default.uml#_igwUwDFJEealS5qn_7gKFw платформа:/resource/TestSuite/representations.aird#_igwUwTFJEealS5qn_7gKFw

1 ответ

Я не привык работать с маркерами, но я думаю, что маркер должен появиться в левом углу поля, содержащего ваш край. Следовательно, ваш маркер может быть вне вашей диаграммы. Если вы хотите явно добавить его при переходе, вы должны проверить, по крайней мере, тип является DEdge.

Если вам нужна дополнительная информация, вы можете задать вопросы о Sirius на форуме Eclipse.

Другие вопросы по тегам