Add and make use of Lombok Remove Mojang API Remove ZipFileUtils Remove StreamTools in favor of Apache IOUtils Keyframe should be abstract all derivatives final Replace clone in Keyframe with copy Move some constants from GuiReplaySetttings to GuiConstants
90 lines
3.6 KiB
Java
Executable File
90 lines
3.6 KiB
Java
Executable File
package eu.crushedpixel.replaymod.gui.replayviewer;
|
|
|
|
import eu.crushedpixel.replaymod.utils.ReplayFile;
|
|
import eu.crushedpixel.replaymod.utils.ReplayFileIO;
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.client.gui.GuiScreen;
|
|
import net.minecraft.client.gui.GuiTextField;
|
|
import net.minecraft.client.resources.I18n;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.io.FilenameUtils;
|
|
import org.lwjgl.input.Keyboard;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
public class GuiRenameReplay extends GuiScreen {
|
|
private GuiScreen field_146585_a;
|
|
private GuiTextField field_146583_f;
|
|
private File file;
|
|
|
|
public GuiRenameReplay(GuiScreen parent, File file) {
|
|
this.field_146585_a = parent;
|
|
this.file = file;
|
|
}
|
|
|
|
public void updateScreen() {
|
|
this.field_146583_f.updateCursorCounter();
|
|
}
|
|
|
|
public void initGui() {
|
|
Keyboard.enableRepeatEvents(true);
|
|
@SuppressWarnings("unchecked")
|
|
List<GuiButton> buttonList = this.buttonList;
|
|
buttonList.clear();
|
|
buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + 12, I18n.format("replaymod.gui.rename")));
|
|
buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + 12, I18n.format("replaymod.gui.cancel")));
|
|
String s = FilenameUtils.getBaseName(file.getAbsolutePath());
|
|
this.field_146583_f = new GuiTextField(2, this.fontRendererObj, this.width / 2 - 100, 60, 200, 20);
|
|
this.field_146583_f.setFocused(true);
|
|
this.field_146583_f.setText(s);
|
|
}
|
|
|
|
public void onGuiClosed() {
|
|
Keyboard.enableRepeatEvents(false);
|
|
}
|
|
|
|
protected void actionPerformed(GuiButton button) throws IOException {
|
|
if(button.enabled) {
|
|
if(button.id == 1) {
|
|
this.mc.displayGuiScreen(this.field_146585_a);
|
|
} else if(button.id == 0) {
|
|
File folder = ReplayFileIO.getReplayFolder();
|
|
|
|
File initRenamed = new File(folder, (this.field_146583_f.getText().trim() + ReplayFile.ZIP_FILE_EXTENSION).replaceAll("[^a-zA-Z0-9\\.\\-]", "_"));
|
|
File renamed = initRenamed;
|
|
int i = 1;
|
|
while(renamed.isFile()) {
|
|
renamed = new File(initRenamed.getAbsolutePath() + "_" + i);
|
|
i++;
|
|
}
|
|
FileUtils.moveFile(file, renamed);
|
|
this.mc.displayGuiScreen(this.field_146585_a);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void keyTyped(char typedChar, int keyCode) throws IOException {
|
|
this.field_146583_f.textboxKeyTyped(typedChar, keyCode);
|
|
((GuiButton) this.buttonList.get(0)).enabled = this.field_146583_f.getText().trim().length() > 0;
|
|
|
|
if(keyCode == 28 || keyCode == 156) {
|
|
this.actionPerformed((GuiButton) this.buttonList.get(0));
|
|
}
|
|
}
|
|
|
|
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
|
|
super.mouseClicked(mouseX, mouseY, mouseButton);
|
|
this.field_146583_f.mouseClicked(mouseX, mouseY, mouseButton);
|
|
}
|
|
|
|
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
|
this.drawDefaultBackground();
|
|
this.drawCenteredString(this.fontRendererObj, I18n.format("replaymod.gui.viewer.rename.title"), this.width / 2, 20, 16777215);
|
|
this.drawString(this.fontRendererObj, I18n.format("replaymod.gui.viewer.rename.name"), this.width / 2 - 100, 47, 10526880);
|
|
this.field_146583_f.drawTextBox();
|
|
super.drawScreen(mouseX, mouseY, partialTicks);
|
|
}
|
|
}
|