Inceptum/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/ArgumentsTab.java

51 lines
2.2 KiB
Java

package io.gitlab.jfronny.inceptum.imgui.window.edit;
import imgui.ImGui;
import imgui.type.ImString;
import io.gitlab.jfronny.inceptum.common.Utils;
import io.gitlab.jfronny.inceptum.imgui.control.Tab;
import io.gitlab.jfronny.inceptum.imgui.window.GuiUtil;
import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Pattern;
public class ArgumentsTab extends Tab {
private final InstanceEditWindow window;
private final ImString jvm = new ImString(GuiUtil.INPUT_FIELD_LENGTH);
private final ImString client = new ImString(GuiUtil.INPUT_FIELD_LENGTH);
private final ImString server = new ImString(GuiUtil.INPUT_FIELD_LENGTH);
public ArgumentsTab(InstanceEditWindow window) {
super("Arguments");
this.window = window;
InstanceMeta meta = window.instance.meta;
if (meta.arguments == null) meta.arguments = new InstanceMeta.Arguments(new LinkedList<>(), new LinkedList<>(), new LinkedList<>());
if (meta.arguments.jvm == null) meta.arguments = meta.arguments.withJvm(new LinkedList<>());
jvm.set(String.join("\n", meta.arguments.jvm));
if (meta.arguments.client == null) meta.arguments = meta.arguments.withClient(new LinkedList<>());
client.set(String.join("\n", meta.arguments.client));
if (meta.arguments.server == null) meta.arguments = meta.arguments.withServer(new LinkedList<>());
server.set(String.join("\n", meta.arguments.server));
}
@Override
protected void renderInner() {
InstanceMeta meta = window.instance.meta;
if (ImGui.inputTextMultiline("JVM", jvm)) {
meta.arguments = meta.arguments.withJvm(List.of(Utils.NEW_LINE.split(jvm.get())));
window.instance.writeMeta();
}
if (ImGui.inputTextMultiline("Client", client)) {
meta.arguments = meta.arguments.withClient(List.of(Utils.NEW_LINE.split(client.get())));
window.instance.writeMeta();
}
if (ImGui.inputTextMultiline("Server", server)) {
meta.arguments = meta.arguments.withServer(List.of(Utils.NEW_LINE.split(server.get())));
window.instance.writeMeta();
}
}
}