Hallo,
ich bin zur Zeit dabei, für ein Projekt eine Validierung zu erstellen. Es handelt sich dabei um ein RCP Projekt.
Um genau zu sein, sollen Diagramme validiert werden, die mit einem gmf Editor erstellt werden. Zur validierung sollen aber keine Constrains und das bereits in emf vorhandene Validation-Framework verwendet werden.
Der Code läuft soweit auch ganz gut und Fehler werden erkannt und angezeigt. Zur Zeit setzte ich die IMarker auf das File (resource), in dem das Modell liegt. Es wird also, wenn man im Problems View auf das Problem klickt das File geöffnet. Ziel ist es aber die Marker mit den einzelnen Elementen zu verbinden. Ich weiß aber nicht, wie man die Marker auf die Elemente setzten kann oder wie ich eine Referenz auf diese bekomme. Ich habe lediglich eine Id. Das setzten des Markers sieht folgendermaßen aus:
Kann mir da jemand weiter helfen? Ich habe leider nicht viel Ahnung von GMF/EMF. Hoffe jemand kann mich da in die Richtige richtung weisen.
ich bin zur Zeit dabei, für ein Projekt eine Validierung zu erstellen. Es handelt sich dabei um ein RCP Projekt.
Um genau zu sein, sollen Diagramme validiert werden, die mit einem gmf Editor erstellt werden. Zur validierung sollen aber keine Constrains und das bereits in emf vorhandene Validation-Framework verwendet werden.
Der Code läuft soweit auch ganz gut und Fehler werden erkannt und angezeigt. Zur Zeit setzte ich die IMarker auf das File (resource), in dem das Modell liegt. Es wird also, wenn man im Problems View auf das Problem klickt das File geöffnet. Ziel ist es aber die Marker mit den einzelnen Elementen zu verbinden. Ich weiß aber nicht, wie man die Marker auf die Elemente setzten kann oder wie ich eine Referenz auf diese bekomme. Ich habe lediglich eine Id. Das setzten des Markers sieht folgendermaßen aus:
Java:
List<ProblemAttribute> problems = sepProblems(problemMessage);
Iterator<ProblemAttribute> i = problems.iterator();
while(i.hasNext()){
ProblemAttribute attribute = i.next();
IMarker marker = null;
try {
marker = resource.createMarker(IMarker.PROBLEM);
marker.setAttribute(IMarker.MESSAGE, attribute.getMessage());
marker.setAttribute(IMarker.LOCATION, attribute.getLocation());
marker.setAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, attribute.getId());
marker.setAttribute(IMarker.SEVERITY, attribute.getSeverity());
} catch (CoreException e) {
e.printStackTrace();
}
}