public void markFile() { if (!markerHandle.exists()) { return; } try { IMarker[] markers = markerHandle.findMarkers(modelMarker.getMarkerId(), true, IResource.DEPTH_ZERO); if (modelMarker.isActive(markers)) { if (markers.length == 0) { IMarker marker = markerHandle.createMarker(modelMarker.getMarkerId()); IResource resource = (IResource) markerHandle.getAdapter(IResource.class); marker.setAttributes( new String[] { MarkerProblem.ATTRIB_DESCRIPTION, MarkerProblem.ATTRIB_PATH, MarkerProblem.ATTRIB_SOURCE_OPENER }, getMarkerAttributes(resource)); } } else { markerHandle.deleteMarkers(modelMarker.getMarkerId(), true, IResource.DEPTH_ZERO); } } catch (CoreException e) { new Logger(CharacterCorePlugin.ID).error(Messages.ResourceModelMarker_ErrorWhileMarking, e); } }
private Object[] getMarkerAttributes(IResource resource) { IContainer container = resource.getParent(); String displayName = new ModelExtensionPoint().getDisplayConfiguration(resource).getDisplayName(); CharacterDisplayNameProvider characterNameProvider = new CharacterDisplayNameProvider(container); String modelName = new ModelDisplayNameProvider(displayName, characterNameProvider).getDisplayName(); return new Object[] { modelMarker.getDescription(displayName, characterNameProvider.getDisplayName()), modelName, CharacterModelEditorOpener.ID }; }