@Override
public JComponent getAdditionalInfo() {
JPanel panel = new JPanel(new GridLayout(3, 1));
FancyJButton butt1 = new FancyJButton(
this.isDeterministic() ? (this.isMinimal() ? "Deterministic minimal FSM" : "Deterministic FSM") : "Nondeterministic FSM");
FancyScriptConverterJButton butt2 = new FancyScriptConverterJButton(
"Create equivalent grammar",
() -> generateType3Grammar().generateCode(),
null,
null,
this.father);
panel.add(butt1);
panel.add(butt2);
if (!this.isDeterministic()) {
FancyScriptConverterJButton butt3 = new FancyScriptConverterJButton(
"Make deterministic",
() -> {
FSM detFSM = new FSM(this);
detFSM.makeDeterministic();
return detFSM.createFSMScriptString();},
null,
null,
this.father);
panel.add(butt3);
} else if (!this.isMinimal()) {
FancyScriptConverterJButton butt3 = new FancyScriptConverterJButton(
"Minimize",
() -> {
FSM minFSM = new FSM(this);
minFSM.minimize();
return minFSM.createFSMScriptString();},
null,
null,
this.father);
panel.add(butt3);
}
FancyScriptConverterJButton butt4 = new FancyScriptConverterJButton(
"Create equivalent PDA",
() -> generatePDA().generateCode(),
null,
null,
this.father);
panel.add(butt4);
FancyScriptConverterJButton butt5 = new FancyScriptConverterJButton(
"Create equivalent TM",
() -> generateTuring().generateCode(),
null,
null,
this.father);