Voici un segment de code de mon code (travail en xtext) (Enregistrement d'un modèle dans un fichier)Eclipse: Mise en un ensemble de ressources après avoir sauvé
generatedModel.save(null) //here generatedModel is an object of resource
Puis lorsque je tente de récupérer les informations sur ce modèle en utilisant
...getResource(...)
Je reçois l'erreur que la ressource suivante ne se trouve pas Mais quand j'ajouté Thread.sleep (3000) entre les deux, cela a fonctionné. Par conséquent, cela se produit lorsque la ressource est en cours d'accès avant d'être enregistrée dans le fichier. J'ai essayé d'ajouter un écouteur pour vérifier quand le fichier est sauvegardé. Voici le code:
var listener = new IResourceChangeListener() {
override resourceChanged(IResourceChangeEvent event) {
if (event.type === IResourceChangeEvent.POST_CHANGE) {
delta = event.delta
}
if (delta.kind === IResourceDelta.CHANGED) {
delta.accept(
new IResourceDeltaVisitor() {
override visit(IResourceDelta innerdelta) throws CoreException {
if (innerdelta.resource.type === IResource.FILE)
println("YESYESYEYESYEYESYSY")
else if(innerdelta.resource.type === IResource.FOLDER)
println("PPPPPPPPPPPPPPPPPP")
else if (innerdelta.resource.type === IResource.PROJECT)
println("WWWWWWWWWWWWWWWWWWWW")
else
println("NONONONONO")
return false
}
}
)
}
}
}
var workspace = ResourcesPlugin.workspace
workspace.addResourceChangeListener(listener)
mais cela n'aide pas. Il imprime nonONO .. toujours sur les changements. J'enregistre les fichiers dans un autre dossier dans le même espace de travail. b (projet) -> scr-gen (dossier) -> code (dossier) -> fichiers ...
greg-449 de votre aide J'ai appris à obtenir des événements liés aux fichiers. Mais y a-t-il un moyen d'obtenir l'écouteur après l'enregistrement du fichier? –