Commit b660358e authored by Ryan Wisnesky's avatar Ryan Wisnesky
Browse files

fixes the bouncing expanded outline, but still flickers

parent b5c67cea
Loading
Loading
Loading
Loading
+1 −0
Changes for src/catdata/aql/exp/LocStr.java: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import catdata.Ctx;
import catdata.Pair;
import catdata.Quad;
import catdata.Triple;
import catdata.Util;
import catdata.aql.RawTerm;

public class LocStr {
+0 −3
Changes for src/catdata/aql/gui/AqlOutline.java: 0 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -228,14 +228,11 @@ public class AqlOutline extends Outline<Program<Exp<?>>, AqlEnv, AqlDisplay> {
		getComp().setModel(new DefaultTreeModel(makeTree(set, codeEditor.parsed_prog, codeEditor.outline_prefix_kind,
				codeEditor.outline_alphabetical, codeEditor.outline_types)));
		tree.setCellRenderer(makeRenderer());

		if (p == null) {
			return;
		}

		while (p.hasMoreElements()) {
			try {

				TreePath path = p.nextElement();
				if (conv(path) != null) {
					getComp().expandPath(conv(path));
+10 −8
Changes for src/catdata/ide/Outline.java: 10 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Point;
import java.util.LinkedList;
import java.util.List;

@@ -29,8 +30,8 @@ public abstract class Outline<Progg extends Prog, Env, DDisp extends Disp> {

	protected abstract void setComp(List<String> order);


	public void build() {
		Point p = jsp.getViewport().getViewPosition();
		synchronized (this.codeEditor.parsed_prog_lock) {
			if (this.codeEditor.parsed_prog == null) {
				return;
@@ -42,12 +43,15 @@ public abstract class Outline<Progg extends Prog, Env, DDisp extends Disp> {
			setComp(set);
		}
		this.codeEditor.revalidate();
		jsp.getViewport().setViewPosition(p);
		
	}

	JLabel oLabel = new JLabel("", JLabel.CENTER);
	protected JScrollPane jsp;
	protected Outline(CodeEditor<Progg, Env, DDisp> codeEditor) {
		this.codeEditor = codeEditor;
		JScrollPane jsp = new JScrollPane(getComp());
		jsp = new JScrollPane(getComp());
		jsp.setBorder(BorderFactory.createEmptyBorder());
		p = new JPanel(new BorderLayout());
		JPanel q = new JPanel(new GridLayout(1, 3));
@@ -70,7 +74,6 @@ public abstract class Outline<Progg extends Prog, Env, DDisp extends Disp> {

		p.setMinimumSize(new Dimension(0, 0));

		
		Thread t = new Thread(new Runnable() {
			@Override
			public void run() {
@@ -90,13 +93,15 @@ public abstract class Outline<Progg extends Prog, Env, DDisp extends Disp> {
							Progg e = Outline.this.codeEditor.parse(s);
							oLabel.setText("");
							if (!equiv(e, Outline.this.codeEditor.parsed_prog)) {
								if (System.currentTimeMillis() - Outline.this.codeEditor.last_keystroke > codeEditor.sleepDelay) {
								if (System.currentTimeMillis()
										- Outline.this.codeEditor.last_keystroke > codeEditor.sleepDelay) {
									synchronized (Outline.this.codeEditor.parsed_prog_lock) {
										Outline.this.codeEditor.parsed_prog = e;
										Outline.this.codeEditor.parsed_prog_string = s;
									}
									build();
									Outline.this.codeEditor.clearSpellCheck(); //morally, should have its own thread, but meh
									Outline.this.codeEditor.clearSpellCheck(); // morally, should have its own thread,
																				// but meh
								}
							}
						}
@@ -104,17 +109,14 @@ public abstract class Outline<Progg extends Prog, Env, DDisp extends Disp> {
						oLabel.setText("err");
					}

					
				}
			}

			
		});
		t.setDaemon(true);
		t.setPriority(Thread.MIN_PRIORITY);
		t.start();

		
	}

	@SuppressWarnings("unused")