diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index bfc4bd3..f7bc444 100644 --- a/pom.xml +++ b/pom.xml @@ -175,7 +175,7 @@ default-cli - net.gneisscode.nbttocsv.JFXHack + net.gneisscode.nbttocsv.JavaFXThings.JFXHack app app app @@ -195,7 +195,7 @@ true lib/ - net.gneisscode.nbttocsv.JFXHack + net.gneisscode.nbttocsv.JavaFXThings.JFXHack @@ -205,13 +205,13 @@ maven-shade-plugin 3.5.2 - - - true - lib/ - net.gneisscode.nbttocsv.JFXHack - - + + + + + + + diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 111e372..b0ae2aa 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -17,8 +17,11 @@ requires org.apache.commons.lang3; requires NBT; requires com.opencsv; + requires java.desktop; opens net.gneisscode.nbttocsv to javafx.fxml; exports net.gneisscode.nbttocsv; exports net.gneisscode.nbttocsv.utils; + exports net.gneisscode.nbttocsv.JavaFXThings; + opens net.gneisscode.nbttocsv.JavaFXThings to javafx.fxml; } \ No newline at end of file diff --git a/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java b/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java index e34473c..1d90eab 100644 --- a/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java +++ b/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java @@ -67,7 +67,7 @@ public static String getExecuteCommand(BlockContainer fromBlock, boolean relativ * @return The formatted function file */ public static String getStructureBuildStartFunction(String functionName){ - URL defaultFunction = FunctionConverter.class.getResource("/net/gneisscode/nbttocsv/buid_start.txt"); + URL defaultFunction = FunctionConverter.class.getResource("buid_start.txt"); if (defaultFunction == null) { return "ERROR"; } diff --git a/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java b/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java index 9b00f8c..ace653a 100644 --- a/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java +++ b/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java @@ -11,6 +11,7 @@ import net.gneisscode.nbttocsv.utils.Util; import net.querz.nbt.tag.*; +import org.kordamp.bootstrapfx.BootstrapFX; public class HelloApplication extends Application { @@ -22,10 +23,16 @@ public class HelloApplication extends Application { @Override public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml")); - Scene scene = new Scene(fxmlLoader.load(), 320, 350); - stage.setTitle("NBT to CSV"); + Scene scene = new Scene(fxmlLoader.load(), 450, 350); + + + scene.getStylesheets().add(BootstrapFX.bootstrapFXStylesheet()); + + + stage.setScene(scene); + stage.setTitle("NBT to CSV"); stage.show(); } diff --git a/src/main/java/net/gneisscode/nbttocsv/HelloController.java b/src/main/java/net/gneisscode/nbttocsv/HelloController.java index c1e6dea..cfbaf98 100644 --- a/src/main/java/net/gneisscode/nbttocsv/HelloController.java +++ b/src/main/java/net/gneisscode/nbttocsv/HelloController.java @@ -2,20 +2,21 @@ import com.opencsv.CSVWriter; import com.opencsv.CSVWriterBuilder; -import javafx.animation.Timeline; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.event.Event; import javafx.fxml.FXML; import javafx.fxml.Initializable; +import javafx.scene.control.Button; import javafx.scene.control.Label; -import javafx.scene.control.TextArea; +import javafx.scene.control.TabPane; import javafx.scene.control.TextField; import net.querz.nbt.tag.CompoundTag; import org.controlsfx.control.ToggleSwitch; -import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.net.URL; -import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; @@ -25,12 +26,18 @@ public class HelloController implements Initializable { @FXML - public Label outputCsvButton; + public Label outputCsvInfo; @FXML public ToggleSwitch writeAir; @FXML public TextField csvPathInput; @FXML + public Button inputButton; + @FXML + public Label outputCsvTitle; + @FXML + public TabPane fullPanel; + @FXML private Label welcomeText; @FXML @@ -62,10 +69,12 @@ protected void onOutputClick(){ if(HelloApplication.BLOCKS.isEmpty()) return; + ArrayList blocks = new ArrayList<>(); + for(BlockContainer block : HelloApplication.BLOCKS){ block.resolve(); - if(!writeAir.isSelected()) - HelloApplication.BLOCKS.remove(block); + if(!writeAir.isSelected() && !block.location.equals("minecraft:air")) + blocks.add(block); } FileWriter outputFile = null; @@ -73,7 +82,7 @@ protected void onOutputClick(){ outputFile = new FileWriter(FileSystems.getDefault().getPath(csvPathInput.getText()).toFile()); } catch (IOException e) { - outputCsvButton.setText("Path invalid!"); + outputCsvInfo.setText("Path invalid!"); throw new RuntimeException(e); } @@ -83,7 +92,7 @@ protected void onOutputClick(){ int longestRow = 0; ArrayList lines = new ArrayList<>(); - for(BlockContainer b : HelloApplication.BLOCKS){ + for(BlockContainer b : blocks){ ArrayList row = b.getCsvRow(); @@ -100,7 +109,7 @@ protected void onOutputClick(){ outputWriter.writeNext(header.toArray(new String[0])); outputWriter.writeAll(lines); - outputCsvButton.setText("Successfully written!"); + outputCsvInfo.setText("Successfully written!"); try { outputWriter.close(); } catch (IOException e) { @@ -109,11 +118,32 @@ protected void onOutputClick(){ } + private ChangeListener listener; + @FXML private TextField inputArea; @Override public void initialize(URL url, ResourceBundle resourceBundle) { - outputCsvButton.setText("Output controls"); + fullPanel.setStyle("-fx-focus-color: transparent; -fx-faint-focus-color: transparent;"); + +// inputButton.getStyleClass().setAll("btn","btn-danger"); + inputArea.setPrefHeight(30); + csvPathInput.setPrefHeight(30); + + listener = new ChangeListener() { + @Override + public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { + writeAir.setText("Write air states to CSV: " + (newValue ? "Yes" : "No")); + + } + + }; + writeAir.selectedProperty().addListener(listener); + } + + public void onFunctionTabSelected(Event event) { + + } } \ No newline at end of file diff --git a/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java new file mode 100644 index 0000000..591d1fd --- /dev/null +++ b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java @@ -0,0 +1,19 @@ +package net.gneisscode.nbttocsv.JavaFXThings; + +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.scene.control.TextField; + +public class DissapearingLableTextField extends TextField { + DissapearingLableTextField(){ + this(""); + } + + DissapearingLableTextField(String text){ + super(text); + + + } + + +} diff --git a/src/main/java/net/gneisscode/nbttocsv/JFXHack.java b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java similarity index 54% rename from src/main/java/net/gneisscode/nbttocsv/JFXHack.java rename to src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java index be9bf85..92d9fad 100644 --- a/src/main/java/net/gneisscode/nbttocsv/JFXHack.java +++ b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java @@ -1,4 +1,6 @@ -package net.gneisscode.nbttocsv; +package net.gneisscode.nbttocsv.JavaFXThings; + +import net.gneisscode.nbttocsv.HelloApplication; public class JFXHack { public static void main(String[] args){ diff --git a/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css b/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css new file mode 100644 index 0000000..139597f --- /dev/null +++ b/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css @@ -0,0 +1,2 @@ + + diff --git a/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml b/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml index 34fe813..becf95f 100644 --- a/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml +++ b/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml @@ -8,17 +8,46 @@ - - - - - -