Note that there are some explanatory texts on larger screens.

plurals
  1. POEclipse plugin development - working with many files, marking MultiPageEditor as dirty throw exception
    primarykey
    data
    text
    <p>I am writing eclipse plugin. I've got MultiPageEditor in which i've got 5 pages. On first page there is an editor which extends GraphicalEditor(geEx), on second there are 2(logicInputEditor, logicOutputEditor) GroovyEditor's org.codehaus.groovy.eclipse.editor.GroovyEditor). geEx is working with one file(e.g. first.qwe) and logicEditors are working with 2 other files(in.groovy, out.groovy). In geEx there is a code:</p> <pre><code> @Override public void commandStackChanged(EventObject event) { firePropertyChange(IEditorPart.PROP_DIRTY); super.commandStackChanged(event); } </code></pre> <p>When I edit file first.qwe MultiPageEditor know that something has been modified and marks it and allow to save file - everything is fine.</p> <p>I add listeners to GrooveEditors:</p> <pre><code> logicInputEditor.addPropertyListener(new IPropertyListener() { @Override public void propertyChanged(Object source, int propId) { if (propId == IEditorPart.PROP_DIRTY){ firePropertyChange(IEditorPart.PROP_DIRTY); } } }); </code></pre> <p>I can't override commandStackChanged function, because GrooveEditor doesn't implement CommandStackListener.</p> <p>Each time I edit something in one of GroovyEditors, the MultiPageEditor is changing its state to dirty - that's what i wanted, but also exception is printed on console. So - it's working as i want, but throwing and catching exception each time user type someting in editor is slow and generally bad. </p> <p>The message is:</p> <pre><code>Problem trying to determine classpath of project Test: Java Model Exception: Java Model Status [Test does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:495) at org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence(JavaModelManager.java:2287) at org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo(JavaProject.java:1914) at org.eclipse.jdt.internal.core.JavaProject.getOutputLocation(JavaProject.java:1741) at org.eclipse.jdt.core.util.CompilerUtils.calculateClasspath(CompilerUtils.java:209) at org.eclipse.jdt.core.util.CompilerUtils.setGroovyClasspath(CompilerUtils.java:152) at org.eclipse.jdt.core.util.CompilerUtils.setGroovyClasspath(CompilerUtils.java:117) at org.codehaus.jdt.groovy.model.GroovyCompilationUnit.buildStructure(GroovyCompilationUnit.java:260) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:526) at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:1100) at org.codehaus.jdt.groovy.model.GroovyReconcileWorkingCopyOperation.makeConsistent(GroovyReconcileWorkingCopyOperation.java:60) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:89) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.codehaus.jdt.groovy.model.GroovyCompilationUnit.reconcile(GroovyCompilationUnit.java:423) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1231) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:133) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) </code></pre> <p>or:</p> <pre><code>!ENTRY org.eclipse.jdt.core 4 4 2012-08-13 20:33:29.402 !MESSAGE Problem with build structure for in.groovy !STACK 1 Java Model Exception: Java Model Status [Test does not exist] at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:505) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:526) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:255) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241) at org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java:1646) at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2334) at org.eclipse.jdt.internal.core.SearchableEnvironment.&lt;init&gt;(SearchableEnvironment.java:59) at org.eclipse.jdt.internal.core.SearchableEnvironment.&lt;init&gt;(SearchableEnvironment.java:66) at org.eclipse.jdt.internal.core.CancelableNameEnvironment.&lt;init&gt;(CancelableNameEnvironment.java:26) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:178) at org.codehaus.jdt.groovy.model.GroovyCompilationUnit.buildStructure(GroovyCompilationUnit.java:338) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:526) at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:1100) at org.codehaus.jdt.groovy.model.GroovyReconcileWorkingCopyOperation.makeConsistent(GroovyReconcileWorkingCopyOperation.java:60) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:89) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.codehaus.jdt.groovy.model.GroovyCompilationUnit.reconcile(GroovyCompilationUnit.java:423) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1231) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:133) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) !SUBENTRY 1 org.eclipse.jdt.core 4 969 2012-08-13 20:33:29.402 !MESSAGE Test does not exist </code></pre> <p>The question is - how i can fix this? How should i send 'message' to MultiPageEditor, that one of GroovyEditors is 'dirty'?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload