Added visual checks if dlls and config are ok (WIP)
Other improvements (might need to be backported to 1.0.x)
This commit is contained in:
parent
f2b289f8c5
commit
2e5399971e
@ -2,6 +2,8 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="Encoding">
|
<component name="Encoding">
|
||||||
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
<file url="PROJECT" charset="UTF-8" />
|
<file url="PROJECT" charset="UTF-8" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -1,4 +1,5 @@
|
|||||||
import com.jfoenix.controls.*;
|
import com.jfoenix.controls.*;
|
||||||
|
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView;
|
||||||
import javafx.beans.value.ChangeListener;
|
import javafx.beans.value.ChangeListener;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.concurrent.Service;
|
import javafx.concurrent.Service;
|
||||||
@ -9,6 +10,7 @@ import javafx.scene.control.Tooltip;
|
|||||||
import javafx.stage.FileChooser;
|
import javafx.stage.FileChooser;
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.commons.configuration2.ex.ConfigurationException;
|
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||||
|
import org.jsoup.HttpStatusException;
|
||||||
import pojo.App;
|
import pojo.App;
|
||||||
import util.CreamApiConfig;
|
import util.CreamApiConfig;
|
||||||
import util.CreamApiDllHandler;
|
import util.CreamApiDllHandler;
|
||||||
@ -26,9 +28,11 @@ import java.util.Objects;
|
|||||||
public class Controller {
|
public class Controller {
|
||||||
|
|
||||||
private static final String REGEX = "(?<steamApiDll>steam_api(?:64)?.dll)$";
|
private static final String REGEX = "(?<steamApiDll>steam_api(?:64)?.dll)$";
|
||||||
private CreamApiDllHandler handler = CreamApiDllHandler.getInstance();
|
public FontAwesomeIconView creamApiDllAppliedIcon;
|
||||||
private CreamApiConfig config = CreamApiConfig.getInstance();
|
public FontAwesomeIconView creamApiConfigExists;
|
||||||
private SteamAppsListCache cache = new SteamAppsListCache();
|
private final CreamApiDllHandler handler = CreamApiDllHandler.getInstance();
|
||||||
|
private final CreamApiConfig config = CreamApiConfig.getInstance();
|
||||||
|
private final SteamAppsListCache cache = new SteamAppsListCache();
|
||||||
@FXML
|
@FXML
|
||||||
public Label state_label;
|
public Label state_label;
|
||||||
@FXML
|
@FXML
|
||||||
@ -69,6 +73,7 @@ public class Controller {
|
|||||||
generate_tooltips();
|
generate_tooltips();
|
||||||
fix_dlc_textarea_prompt_text();
|
fix_dlc_textarea_prompt_text();
|
||||||
reset(true);
|
reset(true);
|
||||||
|
state_label.setText("Ready.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void read() {
|
private void read() {
|
||||||
@ -148,8 +153,10 @@ public class Controller {
|
|||||||
config.sync();
|
config.sync();
|
||||||
} catch (IOException | ConfigurationException e) {
|
} catch (IOException | ConfigurationException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
cancel();
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
System.err.println("No configuration file set!");
|
System.err.println("No configuration file set!");
|
||||||
|
cancel();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -164,6 +171,10 @@ public class Controller {
|
|||||||
setDisableAllButtons(false);
|
setDisableAllButtons(false);
|
||||||
state_label.setText("Saved successfully!");
|
state_label.setText("Saved successfully!");
|
||||||
});
|
});
|
||||||
|
s.setOnCancelled(event -> {
|
||||||
|
setDisableAllButtons(false);
|
||||||
|
state_label.setText("Could not save configuration file!");
|
||||||
|
});
|
||||||
s.start();
|
s.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,10 +203,20 @@ public class Controller {
|
|||||||
return new Task<Void>() {
|
return new Task<Void>() {
|
||||||
@Override
|
@Override
|
||||||
protected Void call() {
|
protected Void call() {
|
||||||
|
try {
|
||||||
Map<Number, String> collect = cache.getDlcMap(appId_textfield.getText());
|
Map<Number, String> collect = cache.getDlcMap(appId_textfield.getText());
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
collect.forEach((k, v) -> sb.append(k).append("=").append(v).append("\n"));
|
collect.forEach((k, v) -> sb.append(k).append("=").append(v).append("\n"));
|
||||||
dlc_textarea.setText(sb.toString());
|
dlc_textarea.setText(sb.toString());
|
||||||
|
} catch (HttpStatusException e) {
|
||||||
|
if (e.getStatusCode() == 404) {
|
||||||
|
System.err.println("App ID empty or not found! (HTTP Status Code: 404)");
|
||||||
|
}
|
||||||
|
cancel();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
cancel();
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -209,6 +230,10 @@ public class Controller {
|
|||||||
setDisableAllButtons(false);
|
setDisableAllButtons(false);
|
||||||
state_label.setText("Got list of DLCs successfully!");
|
state_label.setText("Got list of DLCs successfully!");
|
||||||
});
|
});
|
||||||
|
s.setOnCancelled(event -> {
|
||||||
|
setDisableAllButtons(false);
|
||||||
|
state_label.setText("Could not get list of DLCs!");
|
||||||
|
});
|
||||||
s.start();
|
s.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,6 +250,7 @@ public class Controller {
|
|||||||
path_textfield.setText(file.getParent());
|
path_textfield.setText(file.getParent());
|
||||||
steamApiPathString = file.getAbsolutePath();
|
steamApiPathString = file.getAbsolutePath();
|
||||||
reset(true);
|
reset(true);
|
||||||
|
state_label.setText("Ready.");
|
||||||
} catch (ConfigurationException | IOException e) {
|
} catch (ConfigurationException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,8 @@ public class CreamApiConfig {
|
|||||||
private Boolean unlockAll;
|
private Boolean unlockAll;
|
||||||
private Boolean extraProtection;
|
private Boolean extraProtection;
|
||||||
private Boolean forceOffline;
|
private Boolean forceOffline;
|
||||||
private Map<Integer, String> dlc = new HashMap<>();
|
private final Map<Integer, String> dlc = new HashMap<>();
|
||||||
private List<String> languages = new ArrayList<>();
|
private final List<String> languages = new ArrayList<>();
|
||||||
|
|
||||||
private CreamApiConfig() {
|
private CreamApiConfig() {
|
||||||
try {
|
try {
|
||||||
@ -35,7 +35,7 @@ public class CreamApiConfig {
|
|||||||
File langFile = new File("languages.txt");
|
File langFile = new File("languages.txt");
|
||||||
try {
|
try {
|
||||||
BufferedReader fIn = new BufferedReader(new FileReader(langFile));
|
BufferedReader fIn = new BufferedReader(new FileReader(langFile));
|
||||||
fIn.lines().filter(line -> !line.isEmpty() && !line.startsWith("#")).forEach(line -> languages.add(line));
|
fIn.lines().filter(line -> !line.isEmpty() && !line.startsWith("#")).forEach(languages::add);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import kong.unirest.HttpResponse;
|
import kong.unirest.HttpResponse;
|
||||||
import kong.unirest.Unirest;
|
import kong.unirest.Unirest;
|
||||||
import org.jsoup.HttpStatusException;
|
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
@ -26,13 +25,13 @@ import java.util.stream.Collectors;
|
|||||||
public class SteamAppsListCache {
|
public class SteamAppsListCache {
|
||||||
|
|
||||||
private SteamAppsList list = new SteamAppsList();
|
private SteamAppsList list = new SteamAppsList();
|
||||||
private File cacheFile = new File("steamapps.json");
|
private final File cacheFile = new File("steamapps.json");
|
||||||
private MainEnv env;
|
private MainEnv env;
|
||||||
//private String key;
|
//private String key;
|
||||||
|
|
||||||
public SteamAppsListCache() {
|
public SteamAppsListCache() {
|
||||||
try {
|
try {
|
||||||
Class envDefault = Class.forName("util.env.Default");
|
Class<?> envDefault = Class.forName("util.env.Default");
|
||||||
env = (MainEnv) envDefault.newInstance();
|
env = (MainEnv) envDefault.newInstance();
|
||||||
// System.out.println(env.getKey());
|
// System.out.println(env.getKey());
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
@ -41,14 +40,16 @@ public class SteamAppsListCache {
|
|||||||
// Only thrown by newInstance()
|
// Only thrown by newInstance()
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
boolean fileFound = true;
|
//boolean fileFound = true;
|
||||||
try {
|
try {
|
||||||
getListFromFile();
|
getListFromFile();
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
System.err.println("File does not exist, trying to create steamapps.json for the first time...");
|
System.err.println("File does not exist, trying to create steamapps.json for the first time...");
|
||||||
fileFound = false;
|
//fileFound = false;
|
||||||
|
sync();
|
||||||
}
|
}
|
||||||
if (!fileFound || Instant.now().isAfter(list.getTimestamp().plus(Duration.ofDays(3)))) {
|
if (Instant.now().isAfter(list.getTimestamp().plus(Duration.ofDays(3)))) {
|
||||||
|
System.err.println("List in file is not recent!");
|
||||||
sync();
|
sync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -89,6 +90,7 @@ public class SteamAppsListCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getListFromApi() {
|
private void getListFromApi() {
|
||||||
|
System.out.println("Trying to get SteamAppList from API...");
|
||||||
List<App> apps = getApps();
|
List<App> apps = getApps();
|
||||||
list.setTimestamp(Instant.now());
|
list.setTimestamp(Instant.now());
|
||||||
list.setSteamAppsList(apps);
|
list.setSteamAppsList(apps);
|
||||||
@ -104,23 +106,27 @@ public class SteamAppsListCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void saveListToFile() throws IOException {
|
private void saveListToFile() throws IOException {
|
||||||
|
System.out.println("Trying to save SteamAppList to file (" + cacheFile.getAbsolutePath() + ")...");
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
String jsonString = gson.toJson(list);
|
String jsonString = gson.toJson(list);
|
||||||
BufferedWriter fOut = new BufferedWriter(new FileWriter(cacheFile));
|
BufferedWriter fOut = new BufferedWriter(new FileWriter(cacheFile));
|
||||||
fOut.write(jsonString);
|
fOut.write(jsonString);
|
||||||
fOut.close();
|
fOut.close();
|
||||||
|
System.out.println("Successfully saved SteamAppList to file (" + cacheFile.getAbsolutePath() + ")...");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getListFromFile() throws FileNotFoundException {
|
private void getListFromFile() throws FileNotFoundException {
|
||||||
|
System.out.println("Trying to get SteamAppList from file (" + cacheFile.getAbsolutePath() + ")...");
|
||||||
BufferedReader fIn = new BufferedReader(new FileReader(cacheFile));
|
BufferedReader fIn = new BufferedReader(new FileReader(cacheFile));
|
||||||
String json = fIn.lines().collect(Collectors.joining());
|
String json = fIn.lines().collect(Collectors.joining());
|
||||||
final Type type = new TypeToken<SteamAppsList>() {
|
final Type type = new TypeToken<SteamAppsList>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
list = gson.fromJson(json, type);
|
list = gson.fromJson(json, type);
|
||||||
|
System.out.println("Successfully got SteamAppList from file (" + cacheFile.getAbsolutePath() + ")...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkedHashMap<Number, String> getDlcMap(String appId) {
|
public LinkedHashMap<Number, String> getDlcMap(String appId) throws IOException{
|
||||||
Map<Integer, String> steamStoreDLCs = new HashMap<>();
|
Map<Integer, String> steamStoreDLCs = new HashMap<>();
|
||||||
Map<Integer, String> steamDbDLCs = new HashMap<>();
|
Map<Integer, String> steamDbDLCs = new HashMap<>();
|
||||||
//StringBuilder sb = new StringBuilder();
|
//StringBuilder sb = new StringBuilder();
|
||||||
@ -152,12 +158,6 @@ public class SteamAppsListCache {
|
|||||||
}
|
}
|
||||||
steamDbDLCs.put(Integer.parseInt(dlc_id), dlc_name);
|
steamDbDLCs.put(Integer.parseInt(dlc_id), dlc_name);
|
||||||
}
|
}
|
||||||
} catch (HttpStatusException e) {
|
|
||||||
if (e.getStatusCode() == 404) {
|
|
||||||
System.err.println("App ID empty or not found! (HTTP Status Code: 404)");
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,15 @@
|
|||||||
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
|
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
|
||||||
<?import javafx.geometry.Insets?>
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.layout.BorderPane?>
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
<?import javafx.scene.layout.GridPane?>
|
<?import javafx.scene.layout.GridPane?>
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<GridPane hgap="10.0" minHeight="400.0" minWidth="655.0" vgap="10.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
|
<BorderPane prefHeight="361.0" prefWidth="693.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
|
||||||
|
<center>
|
||||||
|
<GridPane hgap="10.0" minHeight="360.0" minWidth="655.0" vgap="10.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="-Infinity" prefWidth="375.0" />
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="-Infinity" prefWidth="375.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="120.0" />
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="120.0" />
|
||||||
@ -27,11 +31,7 @@
|
|||||||
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
|
<RowConstraints minHeight="-Infinity" prefHeight="60.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<padding>
|
|
||||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
|
||||||
</padding>
|
|
||||||
<JFXTextField fx:id="path_textfield" promptText="Path to game's steam_api(64).dll..." GridPane.columnSpan="2" />
|
<JFXTextField fx:id="path_textfield" promptText="Path to game's steam_api(64).dll..." GridPane.columnSpan="2" />
|
||||||
<JFXButton fx:id="path_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#openFileChooser" ripplerFill="BLACK" style="-fx-background-color: #ddd;" GridPane.columnIndex="2">
|
<JFXButton fx:id="path_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#openFileChooser" ripplerFill="BLACK" style="-fx-background-color: #ddd;" GridPane.columnIndex="2">
|
||||||
<graphic>
|
<graphic>
|
||||||
@ -53,5 +53,54 @@
|
|||||||
<JFXButton fx:id="retrieveDlcList_button" maxHeight="1.7976931348623157E308" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onAction="#getDlcList" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Get DLCs for AppID" GridPane.rowIndex="7" />
|
<JFXButton fx:id="retrieveDlcList_button" maxHeight="1.7976931348623157E308" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onAction="#getDlcList" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Get DLCs for AppID" GridPane.rowIndex="7" />
|
||||||
<JFXButton fx:id="save_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#save" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Save" GridPane.columnIndex="1" GridPane.rowIndex="7" />
|
<JFXButton fx:id="save_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#save" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Save" GridPane.columnIndex="1" GridPane.rowIndex="7" />
|
||||||
<JFXButton fx:id="reset_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#resetFromButton" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Reset" GridPane.columnIndex="2" GridPane.rowIndex="7" />
|
<JFXButton fx:id="reset_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#resetFromButton" ripplerFill="BLACK" style="-fx-background-color: #ddd;" text="Reset" GridPane.columnIndex="2" GridPane.rowIndex="7" />
|
||||||
<Label fx:id="state_label" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" GridPane.columnSpan="2147483647" GridPane.rowIndex="8" />
|
<BorderPane.margin>
|
||||||
|
<Insets />
|
||||||
|
</BorderPane.margin>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
|
</center>
|
||||||
|
<bottom>
|
||||||
|
<Label fx:id="state_label" maxWidth="1.7976931348623157E308" minHeight="25.0" minWidth="-Infinity" style="-fx-background-color: #ddd; -fx-border-color: #aaa;" text="Ready." textFill="#555555" BorderPane.alignment="CENTER">
|
||||||
|
<BorderPane.margin>
|
||||||
|
<Insets />
|
||||||
|
</BorderPane.margin>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||||
|
</padding></Label>
|
||||||
|
</bottom>
|
||||||
|
<right>
|
||||||
|
<GridPane maxHeight="-Infinity" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="250.0"
|
||||||
|
BorderPane.alignment="CENTER">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
|
||||||
|
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
|
||||||
|
</rowConstraints>
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
|
||||||
|
</padding>
|
||||||
|
<Label maxHeight="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity"
|
||||||
|
text="CreamAPI DLL applied">
|
||||||
|
<font>
|
||||||
|
<Font size="14.0"/>
|
||||||
|
</font>
|
||||||
|
<graphic>
|
||||||
|
<FontAwesomeIconView fx:id="creamApiDllAppliedIcon" glyphName="CIRCLE" size="20"/>
|
||||||
|
</graphic>
|
||||||
|
</Label>
|
||||||
|
<Label layoutX="20.0" layoutY="20.0" maxHeight="1.7976931348623157E308" minHeight="-Infinity"
|
||||||
|
minWidth="-Infinity" text="CreamAPI configuration file exists" GridPane.rowIndex="1">
|
||||||
|
<font>
|
||||||
|
<Font size="14.0"/>
|
||||||
|
</font>
|
||||||
|
<graphic>
|
||||||
|
<FontAwesomeIconView fx:id="creamApiConfigExists" glyphName="CIRCLE" size="20"/>
|
||||||
|
</graphic>
|
||||||
|
</Label>
|
||||||
|
</GridPane>
|
||||||
|
</right>
|
||||||
|
</BorderPane>
|
||||||
|
Loading…
Reference in New Issue
Block a user