2016-08-31 6 views
0

私は、UMLステートマシン、遷移および状態を含む.umlファイルを持っています。私はこの.umlファイル内のオブジェクトにマーカーを置くことができましたが、.airdファイルにあるグラフィック表現にマーカーを置くことはできません。私はのグラフィカル表現のマーカーに移動しようとするとUMLグラフィック要素のマーカー

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); 
     } 
     } 
    } 
    } 
} 

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); 
} 

これは私がグラフィカルな表現を見つけるために使用コードです: これは私がマーカーを置くために使用するコードですトランジション、ステートマシンを強調表示します。

プラットフォーム:/resource/TestSuite/default.uml#_igwUwDFJEealS5qn_7gKFw プラットフォーム:/resource/TestSuite/representations.aird#_igwUwTFJEealS5qn_7gKFw

答えて

0

は私がマーカーで動作するように使用されていないです は、以下の遷移のURIです私はあなたのエッジを含むボックスの左隅にマーカーが現れるはずだと思います。結果として、あなたのマーカがあなたのダイアグラムから外れることがあります。 遷移に明示的に追加したい場合は、少なくとも型がDEdgeであることを確認する必要があります。

詳細については、Eclipse forumSiriusに関する質問があります。

関連する問題