package io.github.vmzakharov.ecdataframe.ui;
import io.github.vmzakharov.ecdataframe.dsl.EvalContext;
import io.github.vmzakharov.ecdataframe.dsl.SimpleEvalContext;
import io.github.vmzakharov.ecdataframe.util.PrinterFactory;
import javax.swing.*;
import java.awt.*;
public class UiRunner
extends JFrame
{
private final EvalContext storedContext = new SimpleEvalContext();
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(() -> {
UiRunner uiRunner = new UiRunner();
uiRunner.setVisible(true);
});
}
public UiRunner()
throws HeadlessException
{
super("DSL Runner");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container contentPane = this.getContentPane();
ScriptPanel scriptPanel = new ScriptPanel(this.storedContext);
MemoryPanel memoryPanel = new MemoryPanel(this.storedContext);
OutputPanel outputPanel = new OutputPanel();
// PrinterFactory.getPrinter().println(result.stringValue());
scriptPanel.addActionPostEvaluation(memoryPanel::refreshVariableList);
PrinterFactory.setPrinter(outputPanel::addText);
JSplitPane horizontalSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scriptPanel, memoryPanel);
horizontalSplit.setOneTouchExpandable(true);
horizontalSplit.setResizeWeight(1.0);
JSplitPane verticalSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT, horizontalSplit, outputPanel);
verticalSplit.setOneTouchExpandable(true);
horizontalSplit.setResizeWeight(0.8);
contentPane.add(verticalSplit, BorderLayout.CENTER);
this.pack();
}
}