init commit
This commit is contained in:
commit
aa057fca91
159
.gitignore
vendored
Normal file
159
.gitignore
vendored
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
# Created by https://www.gitignore.io/api/java,maven,windows,intellij
|
||||||
|
# Edit at https://www.gitignore.io/?templates=java,maven,windows,intellij
|
||||||
|
|
||||||
|
### Intellij ###
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
### Intellij Patch ###
|
||||||
|
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
|
||||||
|
|
||||||
|
# *.iml
|
||||||
|
# modules.xml
|
||||||
|
# .idea/misc.xml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# Sonarlint plugin
|
||||||
|
.idea/**/sonarlint/
|
||||||
|
|
||||||
|
# SonarQube Plugin
|
||||||
|
.idea/**/sonarIssues.xml
|
||||||
|
|
||||||
|
# Markdown Navigator plugin
|
||||||
|
.idea/**/markdown-navigator.xml
|
||||||
|
.idea/**/markdown-navigator/
|
||||||
|
|
||||||
|
### Java ###
|
||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
### Maven ###
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
.flattened-pom.xml
|
||||||
|
|
||||||
|
### Windows ###
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
# End of https://www.gitignore.io/api/java,maven,windows,intellij
|
||||||
|
|
||||||
|
cream_api.ini
|
||||||
|
steamapps.json
|
16
.idea/checkstyle-idea.xml
Normal file
16
.idea/checkstyle-idea.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CheckStyle-IDEA">
|
||||||
|
<option name="configuration">
|
||||||
|
<map>
|
||||||
|
<entry key="checkstyle-version" value="8.25" />
|
||||||
|
<entry key="copy-libs" value="true" />
|
||||||
|
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
|
||||||
|
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
|
||||||
|
<entry key="scan-before-checkin" value="false" />
|
||||||
|
<entry key="scanscope" value="JavaOnly" />
|
||||||
|
<entry key="suppress-errors" value="false" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
26
.idea/compiler.xml
Normal file
26
.idea/compiler.xml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<wildcardResourcePatterns>
|
||||||
|
<entry name="!?*.java" />
|
||||||
|
<entry name="!?*.form" />
|
||||||
|
<entry name="!?*.class" />
|
||||||
|
<entry name="!?*.groovy" />
|
||||||
|
<entry name="!?*.scala" />
|
||||||
|
<entry name="!?*.flex" />
|
||||||
|
<entry name="!?*.kt" />
|
||||||
|
<entry name="!?*.clj" />
|
||||||
|
</wildcardResourcePatterns>
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="auto-cream-api" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
<bytecodeTargetLevel>
|
||||||
|
<module name="auto-cream-api" target="1.8" />
|
||||||
|
</bytecodeTargetLevel>
|
||||||
|
</component>
|
||||||
|
</project>
|
2
.idea/description.html
Normal file
2
.idea/description.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<html>Simple <b>JavaFX 2.0</b> application that includes simple .fxml file with attached controller and Main class to quick start. Artifact to build JavaFX application is provided.
|
||||||
|
</html>
|
7
.idea/encodings.xml
Normal file
7
.idea/encodings.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
|
||||||
|
<file url="PROJECT" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
16
.idea/misc.xml
Normal file
16
.idea/misc.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectKey">
|
||||||
|
<option name="state" value="project://e79810c8-c5c8-43b1-b19c-90c1f4095425" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/auto-cream-api.iml" filepath="$PROJECT_DIR$/auto-cream-api.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
7
.idea/vcs.xml
Normal file
7
.idea/vcs.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
56
auto-cream-api.iml
Normal file
56
auto-cream-api.iml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Maven: com.jfoenix:jfoenix:8.0.8" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-configuration2:2.6" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.8" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.ibasco.agql:agql-steam-webapi:0.1.7" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.ibasco.agql:agql-lib-core:0.1.7" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.guava:guava:23.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.asynchttpclient:async-http-client:2.5.4" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.asynchttpclient:async-http-client-netty-utils:2.5.4" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.30.Final" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.typesafe.netty:netty-reactive-streams:2.0.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.sun.activation:javax.activation:1.2.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.0-M1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.junit.platform:junit-platform-commons:1.6.0-M1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: de.jensd:fontawesomefx-commons:8.15" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: de.jensd:fontawesomefx-fontawesome:4.7.0-5" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
94
pom.xml
Normal file
94
pom.xml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>xyz.jeddunk</groupId>
|
||||||
|
<artifactId>auto-cream-api</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<version>2.4</version>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
|
||||||
|
</archive>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>2.2-beta-5</version>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>Main</mainClass>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
<descriptorRefs>
|
||||||
|
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||||
|
</descriptorRefs>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id> <!-- this is used for inheritance merges -->
|
||||||
|
<phase>package</phase> <!-- bind to the packaging phase -->
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.jfoenix</groupId>
|
||||||
|
<artifactId>jfoenix</artifactId>
|
||||||
|
<version>8.0.8</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<!--dependency>
|
||||||
|
<groupId>org.ini4j</groupId>
|
||||||
|
<artifactId>ini4j</artifactId>
|
||||||
|
<version>0.5.4</version>
|
||||||
|
</dependency-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-configuration2</artifactId>
|
||||||
|
<version>2.6</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-beanutils</groupId>
|
||||||
|
<artifactId>commons-beanutils</artifactId>
|
||||||
|
<version>1.9.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ibasco.agql</groupId>
|
||||||
|
<artifactId>agql-steam-webapi</artifactId>
|
||||||
|
<version>0.1.7</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.jensd</groupId>
|
||||||
|
<artifactId>fontawesomefx-commons</artifactId>
|
||||||
|
<version>8.15</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.jensd</groupId>
|
||||||
|
<artifactId>fontawesomefx-fontawesome</artifactId>
|
||||||
|
<version>4.7.0-5</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
162
src/main/java/Controller.java
Normal file
162
src/main/java/Controller.java
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
import com.ibasco.agql.protocols.valve.steam.webapi.pojos.SteamApp;
|
||||||
|
import com.jfoenix.controls.*;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.event.EventHandler;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.Tooltip;
|
||||||
|
import javafx.stage.FileChooser;
|
||||||
|
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class Controller {
|
||||||
|
public JFXButton path_button;
|
||||||
|
private CreamApiConfig config = CreamApiConfig.getInstance();
|
||||||
|
private SteamAppsListCache cache = new SteamAppsListCache();
|
||||||
|
@FXML public JFXTextField path_textfield;
|
||||||
|
@FXML public JFXTextField appId_textfield;
|
||||||
|
@FXML public JFXTextField game_name_textfield;
|
||||||
|
@FXML public JFXComboBox<String> language_combobox;
|
||||||
|
@FXML public JFXTextArea dlc_textarea;
|
||||||
|
@FXML public JFXCheckBox extra_protection_checkbox;
|
||||||
|
@FXML public JFXCheckBox offline_checkbox;
|
||||||
|
@FXML public JFXCheckBox unlock_all_checkbox;
|
||||||
|
@FXML public JFXButton reset_button;
|
||||||
|
@FXML public JFXButton save_button;
|
||||||
|
@FXML public JFXButton getAppId_button;
|
||||||
|
|
||||||
|
public Controller() {}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void initialize() {
|
||||||
|
read();
|
||||||
|
generate_tooltips();
|
||||||
|
fix_dlc_textarea_prompt_text();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void read() {
|
||||||
|
appId_textfield.setText(config.getAppId().toString());
|
||||||
|
dlc_textarea.setText(config.getDlcListAsString());
|
||||||
|
game_name_textfield.setText(cache.getGame(config.getAppId()).getName());
|
||||||
|
extra_protection_checkbox.setSelected(config.getExtraProtection());
|
||||||
|
offline_checkbox.setSelected(config.getForceOffline());
|
||||||
|
unlock_all_checkbox.setSelected(config.getUnlockAll());
|
||||||
|
language_combobox.setItems(FXCollections.observableArrayList(config.getLanguages()));
|
||||||
|
language_combobox.getSelectionModel().select(config.getLanguage());
|
||||||
|
unlockAll_disableDlcTextArea();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fix_dlc_textarea_prompt_text() {
|
||||||
|
dlc_textarea.setPromptText("List of DLC...\r0000 = DLC Name");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void generate_tooltips() {
|
||||||
|
Tooltip extra_protection_tooltip = new Tooltip("\"extra protection\"");
|
||||||
|
extra_protection_checkbox.setTooltip(extra_protection_tooltip);
|
||||||
|
Tooltip.install(extra_protection_checkbox, extra_protection_tooltip);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reset() {
|
||||||
|
config.read();
|
||||||
|
read();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save() {
|
||||||
|
config.setDlcListFromString(dlc_textarea.getText());
|
||||||
|
config.setAppId(Integer.parseInt(appId_textfield.getText()));
|
||||||
|
config.setExtraProtection(extra_protection_checkbox.isSelected());
|
||||||
|
config.setForceOffline(offline_checkbox.isSelected());
|
||||||
|
config.setUnlockAll(unlock_all_checkbox.isSelected());
|
||||||
|
config.setLanguage(language_combobox.getValue());
|
||||||
|
try {
|
||||||
|
config.sync();
|
||||||
|
} catch (ConfigurationException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getAppId() {
|
||||||
|
final SteamApp game = cache.getGame(game_name_textfield.getText());
|
||||||
|
if (game == null) {
|
||||||
|
appId_textfield.setText("-1");
|
||||||
|
} else {
|
||||||
|
appId_textfield.setText(String.valueOf(game.getAppid()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unlockAll_disableDlcTextArea() {
|
||||||
|
dlc_textarea.setDisable(unlock_all_checkbox.isSelected());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getDlcList() {
|
||||||
|
// https://github.com/Sak32009/GetDLCInfoFromSteamDB/blob/master/sak32009-get-dlc-info-from-steamdb.user.js
|
||||||
|
/*async getData() {
|
||||||
|
// CHECK IF THE APPID HAS DLCs
|
||||||
|
if (!$("#dlc").length) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// SELF
|
||||||
|
const self = this;
|
||||||
|
// SET APPID
|
||||||
|
this.steamDB.appID = $(".scope-app[data-appid]").data("appid");
|
||||||
|
// SET APPID NAME
|
||||||
|
this.steamDB.appIDName = $("td[itemprop='name']").text();
|
||||||
|
// GET APPID DLCS FROM TAB
|
||||||
|
$("tr.app[data-appid]").each((_index, _values) => {
|
||||||
|
const $this = $(_values);
|
||||||
|
const appID = $this.data("appid");
|
||||||
|
const appIDName = $this.find(`td:nth-of-type(2)`).text().trim();
|
||||||
|
// ADD DATA
|
||||||
|
self.steamDB.appIDDLCs[appID] = {
|
||||||
|
name: appIDName
|
||||||
|
};
|
||||||
|
// +1
|
||||||
|
self.steamDB.appIDDLCsCount += 1;
|
||||||
|
});
|
||||||
|
// GET APPID DLCS FROM REQUEST
|
||||||
|
await this.getHttpRequest(`${self.info.steamDBLinked + this.steamDB.appID}`, ({
|
||||||
|
responseText
|
||||||
|
}) => {
|
||||||
|
// APPS
|
||||||
|
const $apps = $($.parseHTML(responseText)).find("tr.app[data-appid]");
|
||||||
|
// FETCH APPS
|
||||||
|
$apps.each((_index, _values) => {
|
||||||
|
const $this = $(_values);
|
||||||
|
const appID = $this.attr("data-appid");
|
||||||
|
const appIDType = $this.find("td:nth-of-type(2)").text().trim();
|
||||||
|
const appIDName = $this.find("td:nth-of-type(3)").text().trim();
|
||||||
|
// CHECK IF EXISTS
|
||||||
|
if (!(appID in self.steamDB.appIDDLCs) && appIDType === "DLC") {
|
||||||
|
// ADD DATA
|
||||||
|
self.steamDB.appIDDLCs[appID] = {
|
||||||
|
name: appIDName
|
||||||
|
};
|
||||||
|
// +1
|
||||||
|
self.steamDB.appIDDLCsCount += 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// RUN
|
||||||
|
self.start();
|
||||||
|
});
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
public void openFileChooser(ActionEvent event) {
|
||||||
|
FileChooser chooser = new FileChooser();
|
||||||
|
chooser.setTitle("Choose steam_api(64).dll...");
|
||||||
|
FileChooser.ExtensionFilter filter =
|
||||||
|
new FileChooser.ExtensionFilter("steam_api(64).dll",
|
||||||
|
"steam_api.dll", "steam_api64.dll");
|
||||||
|
chooser.getExtensionFilters().add(filter);
|
||||||
|
final File file = chooser.showOpenDialog(path_button.getScene().getWindow());
|
||||||
|
try {
|
||||||
|
config.setConfig(file.getParent() + "\\cream_api.ini");
|
||||||
|
path_textfield.setText(file.getParent());
|
||||||
|
} catch (ConfigurationException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
200
src/main/java/CreamApiConfig.java
Normal file
200
src/main/java/CreamApiConfig.java
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
import org.apache.commons.configuration2.INIConfiguration;
|
||||||
|
import org.apache.commons.configuration2.SubnodeConfiguration;
|
||||||
|
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
|
||||||
|
import org.apache.commons.configuration2.builder.fluent.Configurations;
|
||||||
|
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@SuppressWarnings("WeakerAccess")
|
||||||
|
public class CreamApiConfig {
|
||||||
|
private static CreamApiConfig configInstance;
|
||||||
|
private static final Configurations CONFIGS = new Configurations();
|
||||||
|
|
||||||
|
private INIConfiguration config;
|
||||||
|
private String path = "cream_api.ini";
|
||||||
|
//private Ini ini;
|
||||||
|
private Integer appId;
|
||||||
|
private String language;
|
||||||
|
private Boolean unlockAll;
|
||||||
|
private Boolean extraProtection;
|
||||||
|
private Boolean forceOffline;
|
||||||
|
private Map<Integer, String> dlc = new HashMap<>();
|
||||||
|
private List<String> languages = new ArrayList<>();
|
||||||
|
|
||||||
|
private CreamApiConfig() {
|
||||||
|
try {
|
||||||
|
config = CONFIGS.ini(path);
|
||||||
|
config.setCommentLeadingCharsUsedInInput(";");
|
||||||
|
} catch (ConfigurationException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
/*try {
|
||||||
|
//ini = new Ini(new File("cream_api.ini"));
|
||||||
|
//Config iniConfig = Config.getGlobal().clone();
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("Can't open \"cream_api.ini\"!");
|
||||||
|
e.printStackTrace();
|
||||||
|
}*/
|
||||||
|
// https://partner.steamgames.com/doc/store/localization#supported_languages
|
||||||
|
languages.add("english");
|
||||||
|
languages.add("latam");
|
||||||
|
languages.add("brazilian");
|
||||||
|
languages.add("german");
|
||||||
|
languages.add("french");
|
||||||
|
languages.add("italian");
|
||||||
|
languages.add("portuguese");
|
||||||
|
languages.add("spanish");
|
||||||
|
languages.add("russian");
|
||||||
|
languages.add("schinese");
|
||||||
|
languages.add("tchinese");
|
||||||
|
languages.add("japanese");
|
||||||
|
languages.add("koreana");
|
||||||
|
read();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized CreamApiConfig getInstance() {
|
||||||
|
if (configInstance == null) {
|
||||||
|
configInstance = new CreamApiConfig();
|
||||||
|
}
|
||||||
|
return configInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void read() {
|
||||||
|
/*appId = ini.get("steam", "appid", int.class);
|
||||||
|
language = ini.get("steam", "language", String.class);
|
||||||
|
if (language == null) {
|
||||||
|
language = "english";
|
||||||
|
}
|
||||||
|
unlockAll = ini.get("steam", "unlockall", boolean.class);
|
||||||
|
extraProtection = ini.get("steam", "extraprotection", boolean.class);
|
||||||
|
forceOffline = ini.get("steam", "forceoffline", boolean.class);
|
||||||
|
Map<String, String> dlc_temp = ini.get("dlc");
|
||||||
|
for (Map.Entry<String, String> e: dlc_temp.entrySet())
|
||||||
|
dlc.put(Integer.parseInt(e.getKey()), e.getValue());*/
|
||||||
|
appId = config.getInt("steam.appid");
|
||||||
|
language = config.getString("steam.language");
|
||||||
|
if (language == null) {
|
||||||
|
language = "english";
|
||||||
|
}
|
||||||
|
unlockAll = config.getBoolean("steam.unlockall");
|
||||||
|
extraProtection = config.getBoolean("steam.extraprotection");
|
||||||
|
forceOffline = config.getBoolean("steam.forceoffline");
|
||||||
|
final SubnodeConfiguration dlc_section = config.getSection("dlc");
|
||||||
|
for (Iterator<String> it = dlc_section.getKeys(); it.hasNext(); ) {
|
||||||
|
String k = it.next();
|
||||||
|
final String v = dlc_section.getString(k);
|
||||||
|
dlc.put(Integer.parseInt(k), v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sync() throws ConfigurationException {
|
||||||
|
/*ini.put("steam", "appid", appId);
|
||||||
|
ini.put("steam", "language", language);
|
||||||
|
ini.put("steam", "unlockall", unlockAll);
|
||||||
|
ini.put("steam", "extraprotection", extraProtection);
|
||||||
|
ini.put("steam", "forceoffline", forceOffline);
|
||||||
|
for (Map.Entry<Integer, String> e: dlc.entrySet()) {
|
||||||
|
ini.put("dlc", e.getKey().toString(), e.getValue());
|
||||||
|
}
|
||||||
|
ini.store();*/
|
||||||
|
FileBasedConfigurationBuilder<INIConfiguration> builder = CONFIGS.iniBuilder(path);
|
||||||
|
config = builder.getConfiguration();
|
||||||
|
config.setCommentLeadingCharsUsedInInput(";");
|
||||||
|
|
||||||
|
config.setProperty("steam.appid", appId);
|
||||||
|
config.setProperty("steam.language", language);
|
||||||
|
config.setProperty("steam.unlockall", unlockAll);
|
||||||
|
config.setProperty("steam.extraprotection", extraProtection);
|
||||||
|
config.setProperty("steam.forceoffline", forceOffline);
|
||||||
|
final SubnodeConfiguration dlc_section = config.getSection("dlc");
|
||||||
|
dlc_section.clear();
|
||||||
|
for (Map.Entry<Integer, String> e : this.dlc.entrySet()) {
|
||||||
|
config.setProperty("dlc." + e.getKey().toString(), e.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
// DLC list parsing
|
||||||
|
|
||||||
|
public String getDlcListAsString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (Map.Entry<Integer, String> e: dlc.entrySet()) {
|
||||||
|
sb.append(e.getKey());
|
||||||
|
sb.append("=");
|
||||||
|
sb.append(e.getValue());
|
||||||
|
sb.append("\r\n");
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDlcListFromString(String str) {
|
||||||
|
dlc.clear();
|
||||||
|
final String[] lines = str.split("\\R+");
|
||||||
|
for (String line : lines) {
|
||||||
|
final String[] split = line.split("\\s*=\\s*", 2);
|
||||||
|
if (split.length == 2) dlc.put(Integer.parseInt(split[0]), split[1]);
|
||||||
|
else System.err.println(MessageFormat.format("Error while splitting line: \"{0}\"", line));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GETTERS AND SETTERS
|
||||||
|
|
||||||
|
public Integer getAppId() {
|
||||||
|
return appId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppId(Integer appId) {
|
||||||
|
this.appId = appId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLanguage() {
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage(String language) {
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getUnlockAll() {
|
||||||
|
return unlockAll;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnlockAll(Boolean unlockAll) {
|
||||||
|
this.unlockAll = unlockAll;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getExtraProtection() {
|
||||||
|
return extraProtection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExtraProtection(Boolean extraProtection) {
|
||||||
|
this.extraProtection = extraProtection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getForceOffline() {
|
||||||
|
return forceOffline;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setForceOffline(Boolean forceOffline) {
|
||||||
|
this.forceOffline = forceOffline;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getLanguages() {
|
||||||
|
return languages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfig(String path) throws ConfigurationException, IOException {
|
||||||
|
File file = new File(path);
|
||||||
|
if (!file.exists()) {
|
||||||
|
final boolean newFile = file.createNewFile();
|
||||||
|
}
|
||||||
|
this.config = CONFIGS.ini(path);
|
||||||
|
this.config.setCommentLeadingCharsUsedInInput(";");
|
||||||
|
this.path = path;
|
||||||
|
}
|
||||||
|
}
|
23
src/main/java/Main.java
Normal file
23
src/main/java/Main.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import javafx.application.Application;
|
||||||
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.scene.Parent;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
public class Main extends Application {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void start(Stage primaryStage) throws Exception{
|
||||||
|
Parent root = FXMLLoader.load(ClassLoader.getSystemResource("mainWindow.fxml"));//getClass().getResource("/mainWindow.fxml")
|
||||||
|
primaryStage.setTitle("Auto CreamAPI");
|
||||||
|
primaryStage.setMinWidth(655 + 25);
|
||||||
|
primaryStage.setMinHeight(360 + 50);
|
||||||
|
primaryStage.setScene(new Scene(root, 1200, 600));
|
||||||
|
primaryStage.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
launch(args);
|
||||||
|
}
|
||||||
|
}
|
101
src/main/java/SteamAppsListCache.java
Normal file
101
src/main/java/SteamAppsListCache.java
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.ibasco.agql.protocols.valve.steam.webapi.SteamWebApiClient;
|
||||||
|
import com.ibasco.agql.protocols.valve.steam.webapi.interfaces.SteamApps;
|
||||||
|
import com.ibasco.agql.protocols.valve.steam.webapi.pojos.SteamApp;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings("WeakerAccess")
|
||||||
|
public class SteamAppsListCache {
|
||||||
|
|
||||||
|
static class SteamAppsList {
|
||||||
|
Instant timestamp;
|
||||||
|
List<SteamApp> steamAppsList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SteamAppsList list = new SteamAppsList();
|
||||||
|
private File cacheFile = new File("steamapps.json");
|
||||||
|
|
||||||
|
public SteamAppsListCache() {
|
||||||
|
getListFromFile();
|
||||||
|
if (Instant.now().isAfter(list.timestamp.plus(Duration.ofDays(14)))) {
|
||||||
|
getListFromApi();
|
||||||
|
saveListToFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SteamApp getGame (int appId) {
|
||||||
|
for (SteamApp app : list.steamAppsList) {
|
||||||
|
if (app.getAppid() == appId) {
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SteamApp getGame (String name) {
|
||||||
|
for (SteamApp app : list.steamAppsList) {
|
||||||
|
if (app.getName().equalsIgnoreCase(name)) {
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getListFromApi() {
|
||||||
|
SteamWebApiClient client = new SteamWebApiClient();
|
||||||
|
SteamApps steamApps = new SteamApps(client);
|
||||||
|
/*SteamStorefront storefront = new SteamStorefront(client);
|
||||||
|
StoreAppDetails appDetails = storefront.getAppDetails(440).exceptionally(throwable -> {
|
||||||
|
System.err.println(MessageFormat.format("Error Occurred: {}", throwable));
|
||||||
|
return new StoreAppDetails();
|
||||||
|
}).join();
|
||||||
|
System.out.println(appDetails);
|
||||||
|
Gson gson = new Gson();
|
||||||
|
System.out.println(gson.toJson(appDetails));*/
|
||||||
|
list.timestamp = Instant.now();
|
||||||
|
list.steamAppsList = steamApps.getAppList().exceptionally(throwable -> {
|
||||||
|
System.err.println(MessageFormat.format("Error Occurred: {}", throwable));
|
||||||
|
return new ArrayList<>();
|
||||||
|
}).join();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveListToFile() {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String jsonString = gson.toJson(list);
|
||||||
|
try {
|
||||||
|
BufferedWriter fOut = new BufferedWriter(new FileWriter(cacheFile));
|
||||||
|
fOut.write(jsonString);
|
||||||
|
fOut.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getListFromFile() {
|
||||||
|
try {
|
||||||
|
BufferedReader fIn = new BufferedReader(new FileReader(cacheFile));
|
||||||
|
StringBuilder content = new StringBuilder();
|
||||||
|
String line;
|
||||||
|
|
||||||
|
while ((line = fIn.readLine()) != null) {
|
||||||
|
content.append(line);
|
||||||
|
//content.append(System.lineSeparator());
|
||||||
|
}
|
||||||
|
|
||||||
|
String json = content.toString();
|
||||||
|
final Type type = new TypeToken<SteamAppsList>() {}.getType();
|
||||||
|
Gson gson = new Gson();
|
||||||
|
list = gson.fromJson(json, type);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
src/main/resources/META-INF/MANIFEST.MF
Normal file
1
src/main/resources/META-INF/MANIFEST.MF
Normal file
@ -0,0 +1 @@
|
|||||||
|
Main-Class: Main
|
53
src/main/resources/mainWindow.fxml
Normal file
53
src/main/resources/mainWindow.fxml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import com.jfoenix.controls.JFXButton?>
|
||||||
|
<?import com.jfoenix.controls.JFXCheckBox?>
|
||||||
|
<?import com.jfoenix.controls.JFXComboBox?>
|
||||||
|
<?import com.jfoenix.controls.JFXTextArea?>
|
||||||
|
<?import com.jfoenix.controls.JFXTextField?>
|
||||||
|
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
|
||||||
|
<GridPane hgap="10.0" minHeight="360.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">
|
||||||
|
<columnConstraints>
|
||||||
|
<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" />
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.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="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
<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 maxHeight="-Infinity" minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||||
|
</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" />
|
||||||
|
<JFXButton fx:id="path_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#openFileChooser" GridPane.columnIndex="2">
|
||||||
|
<graphic>
|
||||||
|
<FontAwesomeIconView glyphName="FOLDER_OPEN" glyphSize="24" />
|
||||||
|
</graphic>
|
||||||
|
</JFXButton>
|
||||||
|
<JFXTextField fx:id="game_name_textfield" promptText="Game..." GridPane.rowIndex="1" />
|
||||||
|
<JFXButton fx:id="getAppId_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#getAppId" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||||
|
<graphic>
|
||||||
|
<FontAwesomeIconView glyphName="ARROW_RIGHT" glyphSize="24" />
|
||||||
|
</graphic>
|
||||||
|
</JFXButton>
|
||||||
|
<JFXTextField fx:id="appId_textfield" prefWidth="299.0" promptText="Steam AppID..." GridPane.columnIndex="2" GridPane.rowIndex="1" />
|
||||||
|
<JFXComboBox fx:id="language_combobox" editable="true" promptText="Language" GridPane.columnSpan="2147483647" GridPane.rowIndex="2" />
|
||||||
|
<JFXCheckBox fx:id="offline_checkbox" text="Force offline mode" GridPane.columnSpan="2147483647" GridPane.rowIndex="3" />
|
||||||
|
<JFXCheckBox fx:id="extra_protection_checkbox" text="Try to bypass game-specific protection" GridPane.columnSpan="2147483647" GridPane.rowIndex="4" />
|
||||||
|
<JFXCheckBox fx:id="unlock_all_checkbox" onAction="#unlockAll_disableDlcTextArea" text="Unlock all DLC (if possible)" GridPane.columnSpan="2147483647" GridPane.rowIndex="5" />
|
||||||
|
<JFXTextArea fx:id="dlc_textarea" promptText="List of DLC..." GridPane.columnSpan="2147483647" GridPane.rowIndex="6" />
|
||||||
|
<JFXButton fx:id="save_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#save" text="Save" GridPane.columnIndex="1" GridPane.rowIndex="7" />
|
||||||
|
<JFXButton fx:id="reset_button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" onAction="#reset" text="Reset" GridPane.columnIndex="2" GridPane.rowIndex="7" />
|
||||||
|
</GridPane>
|
Loading…
Reference in New Issue
Block a user