diff --git a/src/JavaGUI2/de/uka/ilkd/key/ocl/gf/GFEditor2.java b/src/JavaGUI2/de/uka/ilkd/key/ocl/gf/GFEditor2.java
index b93878478..b1b861b18 100644
--- a/src/JavaGUI2/de/uka/ilkd/key/ocl/gf/GFEditor2.java
+++ b/src/JavaGUI2/de/uka/ilkd/key/ocl/gf/GFEditor2.java
@@ -161,9 +161,15 @@ public class GFEditor2 extends JFrame {
* Avoids a time-consuming reconstruction and flickering.
*/
public boolean treeChanged = true;
- /** The output from GF is in here */
+ /**
+ * The output from GF is in here.
+ * Only the read methods, initializeGF and the prober objects access this.
+ */
private BufferedReader fromProc;
- /** leave messages for GF here. */
+ /** Used to leave messages for GF here.
+ * But only in send and special probers that clean up with undo
+ * after them (or don't change the state like PrintnameLoader).
+ */
private BufferedWriter toProc;
/** Linearizations' display area */
private JTextArea linearizationArea = new JTextArea();
@@ -1665,16 +1671,18 @@ public class GFEditor2 extends JFrame {
}
readresult = next;
readLin();
- readTree();
- readMessage();
+ final String treeString = readTree();
+ final String message = readMessage();
//read the menu stuff
+ Vector gfCommandVector;
if (newObject) {
- readRefinementMenu();
+ gfCommandVector = readRefinementMenu();
} else {
while(readresult.indexOf(""
@@ -1683,6 +1691,25 @@ public class GFEditor2 extends JFrame {
if (xmlLogger.isLoggable(Level.FINER)) xmlLogger.finer("11 " + readresult);
}
+ //now the form methods are called:
+ if (treeChanged && (newObject)) {
+ formTree(tree, treeString);
+ }
+ if (gfCommandVector != null) {
+ formRefinementMenu(gfCommandVector);
+ }
+ if (newObject) {
+ //MUST come after readLin, but since formLin is called later too,
+ //this cannot be enforced with a local this.linearization
+ formLin();
+ }
+ if (message != null && message.length()>1) {
+ this.display.addToStages("\n-------------\n" + message, "