Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
e4a316f62c | |||
eb127282ad | |||
5b46a0b58c | |||
6169a5e7cd | |||
f53055db7e | |||
8d759a724b | |||
f6778a320f | |||
607bcf8ace | |||
c5d6a2f276 |
28
.classpath
28
.classpath
@ -3,21 +3,7 @@
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-io-2.5.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-api-client-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-api-services-drive-v3-rev68-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-http-client-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-http-client-jackson2-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-oauth-client-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-oauth-client-java6-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/google-oauth-client-jetty-1.22.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/javax.servlet-api-3.1.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/jetty-6.1.25.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/jetty-util-6.1.25.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_apis/jackson-core-2.8.8.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-codec-1.10.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/minimal-json-0.9.4.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-logging-api-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-vfs2-2.1.1744488.2.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/flow-8.0.1.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/zip4j-1.3.2.jar"/>
|
||||
@ -25,5 +11,19 @@
|
||||
<classpathentry kind="lib" path="src/libraries/log4j-core-2.8.2.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/sqlite-jdbc-3.20.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/jfoenix-1.9.1.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-codec-1.11.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-io-2.6.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-api-client-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-api-services-drive-v3-rev87-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-http-client-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-http-client-jackson2-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-oauth-client-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-oauth-client-java6-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/google-oauth-client-jetty-1.23.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/jackson-core-2.9.2.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/javax.servlet-api-4.0.0.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/jetty-6.1.26.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/google_api_libraries/jetty-util-6.1.26.jar"/>
|
||||
<classpathentry kind="lib" path="src/libraries/commons-logging-1.1.1.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
12
README.md
12
README.md
@ -7,16 +7,10 @@
|
||||
cemu_UI is a simple, material design graphical frontend for [cemu](http://cemu.info/), a Wii U emulator. Downloads can be found [here](https://github.com/Seil0/cemu_UI/releases).
|
||||
|
||||
## Installation
|
||||
Simply download the cemu_UI.jar from [releases](https://github.com/Seil0/cemu_UI/releases), make sure you have the latest version of java 8 oracle jre/jdk installed, open the file. cemu_UI creats a new directory "C:\Users\USERNAME\Documents\cemu_UI", where the database, settings and covers are stored. **first start can take while!**
|
||||
Simply download the cemu_UI.jar from [releases](https://github.com/Seil0/cemu_UI/releases), make sure you have the latest version of java 8 oracle jre/jdk installed and open the file. cemu_UI creats a new directory "C:\Users\USERNAME\Documents\cemu_UI", where the database, settings and covers are stored. **first start can take while!**
|
||||
|
||||
If you want to use the cloud sync function read the [wiki](https://github.com/Seil0/cemu_UI/wiki#cloud-savegame-syncronisation) carefully!
|
||||
|
||||
## building from source
|
||||
1. read the [license](https://github.com/Seil0/cemu_UI/blob/master/LICENSE)
|
||||
2. download/clone the git repository
|
||||
3. make sure you have the latest versionj of java 8 oracle jdk installed
|
||||
4. place the unzip repository into your workspace and start eclipse, project should now be there **or** import the project to your workspace
|
||||
|
||||
## Features
|
||||
|
||||
* launch Games
|
||||
@ -26,7 +20,7 @@ If you want to use the cloud sync function read the [wiki](https://github.com/Se
|
||||
* automatic rom detection (only .rpx files with a app.xml)
|
||||
* customisable UI
|
||||
* [sync savegames via google drive](https://github.com/Seil0/cemu_UI/wiki)
|
||||
* [smmdb api](http://smmdb.ddns.net/api) integration
|
||||
* [smmdb api](https://github.com/Tarnadas/smmdb) integration
|
||||
|
||||
## [planed Features](https://github.com/Seil0/cemu_UI/projects/1) (no ETA)
|
||||
|
||||
@ -37,6 +31,8 @@ If you want to use the cloud sync function read the [wiki](https://github.com/Se
|
||||
### If you have another idea, make a "new issue" with the `idea` lable
|
||||
|
||||
## [FAQ](https://github.com/Seil0/cemu_UI/wiki#faq)
|
||||
|
||||
### [building from source](https://github.com/Seil0/cemu_UI/wiki/Documantation)
|
||||
|
||||
## Screenshots
|
||||
|
||||
|
2
bin/.gitignore
vendored
2
bin/.gitignore
vendored
@ -1 +1,3 @@
|
||||
/application/
|
||||
/cloudControllerInstances/
|
||||
/datatypes/
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/application/Main$1$1.class
Normal file
BIN
bin/application/Main$1$1.class
Normal file
Binary file not shown.
BIN
bin/application/Main$1.class
Normal file
BIN
bin/application/Main$1.class
Normal file
Binary file not shown.
BIN
bin/application/Main$2$1.class
Normal file
BIN
bin/application/Main$2$1.class
Normal file
Binary file not shown.
BIN
bin/application/Main$2.class
Normal file
BIN
bin/application/Main$2.class
Normal file
Binary file not shown.
BIN
bin/application/Main$3.class
Normal file
BIN
bin/application/Main$3.class
Normal file
Binary file not shown.
Binary file not shown.
@ -16,9 +16,9 @@
|
||||
<?import javafx.scene.text.Font?>
|
||||
<?import javafx.scene.text.TextFlow?>
|
||||
|
||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||
<children>
|
||||
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<ScrollPane fx:id="mainScrollPane" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<content>
|
||||
<AnchorPane fx:id="gamesAnchorPane">
|
||||
<padding>
|
||||
@ -60,31 +60,38 @@
|
||||
</JFXButton>
|
||||
</children>
|
||||
</VBox>
|
||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<children>
|
||||
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
||||
<JFXTextField fx:id="romTextField" layoutX="18.0" layoutY="159.0" maxWidth="305.0" minWidth="305.0" onAction="#romTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="151.0" />
|
||||
<JFXButton fx:id="romTFBtn" layoutX="337.0" layoutY="159.0" onAction="#romTFBtnAction" prefHeight="32.0" prefWidth="108.0" text="choose directory" AnchorPane.leftAnchor="333.0" AnchorPane.topAnchor="151.0" />
|
||||
<JFXButton fx:id="cemuTFBtn" layoutX="333.0" layoutY="79.0" onAction="#cemuTFBtnAction" prefHeight="32.0" prefWidth="108.0" text="choose directory" AnchorPane.leftAnchor="333.0" AnchorPane.topAnchor="79.0" />
|
||||
<JFXColorPicker fx:id="colorPicker" layoutX="22.0" layoutY="235.0" onAction="#colorPickerAction" AnchorPane.leftAnchor="16.0" AnchorPane.topAnchor="227.0" />
|
||||
<JFXToggleButton fx:id="fullscreenToggleBtn" layoutX="14.0" layoutY="391.0" onAction="#fullscreenToggleBtnAction" text="start game in fullscreen" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="390.0" />
|
||||
<Label layoutX="22.0" layoutY="135.0" text="Rom Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="131.0" />
|
||||
<Label layoutX="22.0" layoutY="211.0" text="main Color" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="203.0" />
|
||||
<Label layoutX="14.0" layoutY="371.0" text="Cemu Settings" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="350.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="22.0" layoutY="14.0" text="cemu_UI Settings" AnchorPane.leftAnchor="18.0" AnchorPane.topAnchor="14.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<JFXToggleButton fx:id="cloudSyncToggleBtn" layoutX="14.0" layoutY="264.0" onAction="#cloudSyncToggleBtnAction" text="cloud savegames (Google Drive)" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="267.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
<ScrollPane fx:id="settingsScrollPane" style="-fx-background: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<content>
|
||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||
<AnchorPane fx:id="settingsAnchorPane" prefHeight="562.0" prefWidth="511.0" style="-fx-background-color: white;">
|
||||
<children>
|
||||
<Label fx:id="cemuDirectoryLbl" layoutX="10.0" layoutY="39.0" text="Cemu Directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="39.0" />
|
||||
<JFXTextField fx:id="cemuTextField" layoutX="10.0" layoutY="59.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXTextField fx:id="romTextField" layoutX="10.0" layoutY="131.0" maxWidth="305.0" minWidth="305.0" onAction="#romTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="131.0" />
|
||||
<JFXButton fx:id="romTFBtn" layoutX="329.0" layoutY="131.0" onAction="#romTFBtnAction" prefHeight="32.0" text="choose directory" AnchorPane.leftAnchor="329.0" AnchorPane.topAnchor="131.0" />
|
||||
<JFXButton fx:id="cemuTFBtn" layoutX="329.0" layoutY="59.0" onAction="#cemuTFBtnAction" prefHeight="32.0" text="choose directory" AnchorPane.leftAnchor="329.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXColorPicker fx:id="colorPicker" layoutX="12.0" layoutY="207.0" onAction="#colorPickerAction" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="207.0" />
|
||||
<JFXToggleButton fx:id="fullscreenToggleBtn" layoutX="16.0" layoutY="488.0" onAction="#fullscreenToggleBtnAction" text="start game in fullscreen" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="488.0" />
|
||||
<Label fx:id="romDirectoryLbl" layoutX="10.0" layoutY="111.0" text="Rom Directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="111.0" />
|
||||
<Label fx:id="mainColorLbl" layoutX="10.0" layoutY="183.0" text="main Color" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="183.0" />
|
||||
<Label fx:id="cemuSettingsLbl" layoutX="16.0" layoutY="450.0" text="Cemu Settings" AnchorPane.leftAnchor="16.0" AnchorPane.topAnchor="465.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label fx:id="cemu_UISettingsLbl" layoutX="22.0" layoutY="14.0" text="cemu_UI Settings" AnchorPane.leftAnchor="18.0" AnchorPane.topAnchor="14.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<JFXToggleButton fx:id="cloudSyncToggleBtn" layoutX="10.0" layoutY="247.0" onAction="#cloudSyncToggleBtnAction" text="cloud savegames (Google Drive)" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="247.0" />
|
||||
<Label fx:id="updateLbl" layoutX="10.0" layoutY="315.0" text="Updates" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="315.0" />
|
||||
<JFXButton fx:id="updateBtn" layoutX="14.0" layoutY="335.0" onAction="#updateBtnAction" prefHeight="32.0" prefWidth="111.0" text="check now!" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="335.0" />
|
||||
<JFXToggleButton fx:id="autoUpdateToggleBtn" layoutX="10.0" layoutY="372.0" onAction="#autoUpdateToggleBtnAction" text="check for updates on startup" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="372.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</ScrollPane>
|
||||
<AnchorPane fx:id="smmdbAnchorPane" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<children>
|
||||
<JFXTreeTableView fx:id="courseTreeTable" layoutX="14.0" layoutY="14.0" prefHeight="537.0" prefWidth="405.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="14.0" />
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/libraries/commons-codec-1.11.jar
Normal file
BIN
bin/libraries/commons-codec-1.11.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/libraries/commons-io-2.6.jar
Normal file
BIN
bin/libraries/commons-io-2.6.jar
Normal file
Binary file not shown.
BIN
bin/libraries/commons-logging-1.1.1.jar
Normal file
BIN
bin/libraries/commons-logging-1.1.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/libraries/google_api_libraries/google-api-client-1.23.0.jar
Normal file
BIN
bin/libraries/google_api_libraries/google-api-client-1.23.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/libraries/google_api_libraries/jackson-core-2.9.2.jar
Normal file
BIN
bin/libraries/google_api_libraries/jackson-core-2.9.2.jar
Normal file
Binary file not shown.
BIN
bin/libraries/google_api_libraries/javax.servlet-api-4.0.0.jar
Normal file
BIN
bin/libraries/google_api_libraries/javax.servlet-api-4.0.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -40,20 +40,26 @@ public class CloudController {
|
||||
private GoogleDriveController googleDriveController = new GoogleDriveController();
|
||||
private static final Logger LOGGER = LogManager.getLogger(CloudController.class.getName());
|
||||
|
||||
void initializeConnection(String cloudService, String cemuDirectory) {
|
||||
boolean initializeConnection(String cloudService, String cemuDirectory) {
|
||||
boolean success = false;
|
||||
LOGGER.info("sartting cloud initialisation ...");
|
||||
|
||||
if(cloudService.equals("GoogleDrive")) {
|
||||
LOGGER.info("selected service is Google Drive");
|
||||
try {
|
||||
googleDriveController.main(cemuDirectory);
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("error while initialize connection", e);
|
||||
return success;
|
||||
}
|
||||
success = true;
|
||||
}
|
||||
|
||||
if(cloudService.equals("Dropbox")) {
|
||||
LOGGER.info("selected service is Dropbox");
|
||||
}
|
||||
LOGGER.info("cloud initialisation done!");
|
||||
return success;
|
||||
}
|
||||
|
||||
void stratupCheck(String cloudService, String cemuDirectory) {
|
||||
|
@ -287,4 +287,9 @@ public class Main extends Application {
|
||||
LOGGER = LogManager.getLogger(Main.class.getName());
|
||||
launch(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
@ -16,9 +16,9 @@
|
||||
<?import javafx.scene.text.Font?>
|
||||
<?import javafx.scene.text.TextFlow?>
|
||||
|
||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||
<children>
|
||||
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<ScrollPane fx:id="mainScrollPane" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<content>
|
||||
<AnchorPane fx:id="gamesAnchorPane">
|
||||
<padding>
|
||||
@ -60,31 +60,38 @@
|
||||
</JFXButton>
|
||||
</children>
|
||||
</VBox>
|
||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<children>
|
||||
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
||||
<JFXTextField fx:id="romTextField" layoutX="18.0" layoutY="159.0" maxWidth="305.0" minWidth="305.0" onAction="#romTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="151.0" />
|
||||
<JFXButton fx:id="romTFBtn" layoutX="337.0" layoutY="159.0" onAction="#romTFBtnAction" prefHeight="32.0" prefWidth="108.0" text="choose directory" AnchorPane.leftAnchor="333.0" AnchorPane.topAnchor="151.0" />
|
||||
<JFXButton fx:id="cemuTFBtn" layoutX="333.0" layoutY="79.0" onAction="#cemuTFBtnAction" prefHeight="32.0" prefWidth="108.0" text="choose directory" AnchorPane.leftAnchor="333.0" AnchorPane.topAnchor="79.0" />
|
||||
<JFXColorPicker fx:id="colorPicker" layoutX="22.0" layoutY="235.0" onAction="#colorPickerAction" AnchorPane.leftAnchor="16.0" AnchorPane.topAnchor="227.0" />
|
||||
<JFXToggleButton fx:id="fullscreenToggleBtn" layoutX="14.0" layoutY="391.0" onAction="#fullscreenToggleBtnAction" text="start game in fullscreen" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="390.0" />
|
||||
<Label layoutX="22.0" layoutY="135.0" text="Rom Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="131.0" />
|
||||
<Label layoutX="22.0" layoutY="211.0" text="main Color" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="203.0" />
|
||||
<Label layoutX="14.0" layoutY="371.0" text="Cemu Settings" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="350.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="22.0" layoutY="14.0" text="cemu_UI Settings" AnchorPane.leftAnchor="18.0" AnchorPane.topAnchor="14.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<JFXToggleButton fx:id="cloudSyncToggleBtn" layoutX="14.0" layoutY="264.0" onAction="#cloudSyncToggleBtnAction" text="cloud savegames (Google Drive)" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="267.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
<ScrollPane fx:id="settingsScrollPane" style="-fx-background: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<content>
|
||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||
<AnchorPane fx:id="settingsAnchorPane" prefHeight="562.0" prefWidth="511.0" style="-fx-background-color: white;">
|
||||
<children>
|
||||
<Label fx:id="cemuDirectoryLbl" layoutX="10.0" layoutY="39.0" text="Cemu Directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="39.0" />
|
||||
<JFXTextField fx:id="cemuTextField" layoutX="10.0" layoutY="59.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXTextField fx:id="romTextField" layoutX="10.0" layoutY="131.0" maxWidth="305.0" minWidth="305.0" onAction="#romTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="131.0" />
|
||||
<JFXButton fx:id="romTFBtn" layoutX="329.0" layoutY="131.0" onAction="#romTFBtnAction" prefHeight="32.0" text="choose directory" AnchorPane.leftAnchor="329.0" AnchorPane.topAnchor="131.0" />
|
||||
<JFXButton fx:id="cemuTFBtn" layoutX="329.0" layoutY="59.0" onAction="#cemuTFBtnAction" prefHeight="32.0" text="choose directory" AnchorPane.leftAnchor="329.0" AnchorPane.topAnchor="59.0" />
|
||||
<JFXColorPicker fx:id="colorPicker" layoutX="12.0" layoutY="207.0" onAction="#colorPickerAction" AnchorPane.leftAnchor="12.0" AnchorPane.topAnchor="207.0" />
|
||||
<JFXToggleButton fx:id="fullscreenToggleBtn" layoutX="16.0" layoutY="488.0" onAction="#fullscreenToggleBtnAction" text="start game in fullscreen" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="488.0" />
|
||||
<Label fx:id="romDirectoryLbl" layoutX="10.0" layoutY="111.0" text="Rom Directory" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="111.0" />
|
||||
<Label fx:id="mainColorLbl" layoutX="10.0" layoutY="183.0" text="main Color" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="183.0" />
|
||||
<Label fx:id="cemuSettingsLbl" layoutX="16.0" layoutY="450.0" text="Cemu Settings" AnchorPane.leftAnchor="16.0" AnchorPane.topAnchor="465.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label fx:id="cemu_UISettingsLbl" layoutX="22.0" layoutY="14.0" text="cemu_UI Settings" AnchorPane.leftAnchor="18.0" AnchorPane.topAnchor="14.0">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<JFXToggleButton fx:id="cloudSyncToggleBtn" layoutX="10.0" layoutY="247.0" onAction="#cloudSyncToggleBtnAction" text="cloud savegames (Google Drive)" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="247.0" />
|
||||
<Label fx:id="updateLbl" layoutX="10.0" layoutY="315.0" text="Updates" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="315.0" />
|
||||
<JFXButton fx:id="updateBtn" layoutX="14.0" layoutY="335.0" onAction="#updateBtnAction" prefHeight="32.0" prefWidth="111.0" text="check now!" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="335.0" />
|
||||
<JFXToggleButton fx:id="autoUpdateToggleBtn" layoutX="10.0" layoutY="372.0" onAction="#autoUpdateToggleBtnAction" text="check for updates on startup" AnchorPane.leftAnchor="10.0" AnchorPane.topAnchor="372.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</ScrollPane>
|
||||
<AnchorPane fx:id="smmdbAnchorPane" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||
<children>
|
||||
<JFXTreeTableView fx:id="courseTreeTable" layoutX="14.0" layoutY="14.0" prefHeight="537.0" prefWidth="405.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="14.0" />
|
||||
|
@ -42,6 +42,7 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.ProgressMonitor;
|
||||
import javax.swing.ProgressMonitorInputStream;
|
||||
@ -127,6 +128,9 @@ public class MainWindowController {
|
||||
@FXML
|
||||
private JFXButton romTFBtn;
|
||||
|
||||
@FXML
|
||||
private JFXButton updateBtn;
|
||||
|
||||
@FXML
|
||||
private JFXButton smmdbDownloadBtn;
|
||||
|
||||
@ -152,14 +156,23 @@ public class MainWindowController {
|
||||
private TextFlow smmdbTextFlow;
|
||||
|
||||
@FXML
|
||||
private JFXColorPicker colorPicker;
|
||||
|
||||
@FXML
|
||||
private JFXToggleButton fullscreenToggleBtn;
|
||||
private JFXColorPicker colorPicker;
|
||||
|
||||
@FXML
|
||||
private JFXToggleButton cloudSyncToggleBtn;
|
||||
|
||||
@FXML
|
||||
private JFXToggleButton autoUpdateToggleBtn;
|
||||
|
||||
@FXML
|
||||
private JFXToggleButton fullscreenToggleBtn;
|
||||
|
||||
@FXML
|
||||
private AnchorPane mainAnchorPane;
|
||||
|
||||
@FXML
|
||||
private AnchorPane gamesAnchorPane;
|
||||
|
||||
@FXML
|
||||
private AnchorPane settingsAnchorPane;
|
||||
|
||||
@ -167,13 +180,10 @@ public class MainWindowController {
|
||||
private AnchorPane smmdbAnchorPane;
|
||||
|
||||
@FXML
|
||||
private AnchorPane gamesAnchorPane;
|
||||
private ScrollPane mainScrollPane;
|
||||
|
||||
@FXML
|
||||
private AnchorPane mainAnchorPane;
|
||||
|
||||
@FXML
|
||||
private ScrollPane scrollPaneMain;
|
||||
private ScrollPane settingsScrollPane;
|
||||
|
||||
@FXML
|
||||
private ScrollPane smmdbScrollPane;
|
||||
@ -190,6 +200,24 @@ public class MainWindowController {
|
||||
@FXML
|
||||
private Label helpLabel;
|
||||
|
||||
@FXML
|
||||
private Label cemu_UISettingsLbl;
|
||||
|
||||
@FXML
|
||||
private Label cemuDirectoryLbl;
|
||||
|
||||
@FXML
|
||||
private Label romDirectoryLbl;
|
||||
|
||||
@FXML
|
||||
private Label mainColorLbl;
|
||||
|
||||
@FXML
|
||||
private Label updateLbl;
|
||||
|
||||
@FXML
|
||||
private Label cemuSettingsLbl;
|
||||
|
||||
|
||||
@FXML
|
||||
private JFXTreeTableView<CourseTableDataType> courseTreeTable = new JFXTreeTableView<CourseTableDataType>();
|
||||
@ -229,7 +257,7 @@ public class MainWindowController {
|
||||
private String selectedGameTitle;
|
||||
private String id;
|
||||
private String version = "0.2.0";
|
||||
private String buildNumber = "043";
|
||||
private String buildNumber = "047";
|
||||
private String versionName = "Puzzle Plank Galaxy";
|
||||
private int xPos = -200;
|
||||
private int yPos = 17;
|
||||
@ -341,7 +369,7 @@ public class MainWindowController {
|
||||
menuTrue = true;
|
||||
}
|
||||
if (settingsTrue) {
|
||||
settingsAnchorPane.setVisible(false);
|
||||
settingsScrollPane.setVisible(false);
|
||||
// setPath(tfPath.getText());
|
||||
saveSettings();
|
||||
settingsTrue = false;
|
||||
@ -619,11 +647,11 @@ public class MainWindowController {
|
||||
smmdbTrue = false;
|
||||
}
|
||||
if (settingsTrue) {
|
||||
settingsAnchorPane.setVisible(false);
|
||||
settingsScrollPane.setVisible(false);
|
||||
settingsTrue = false;
|
||||
saveSettings();
|
||||
} else {
|
||||
settingsAnchorPane.setVisible(true);
|
||||
settingsScrollPane.setVisible(true);
|
||||
settingsTrue = true;
|
||||
}
|
||||
}
|
||||
@ -714,6 +742,16 @@ public class MainWindowController {
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
void updateBtnAction(ActionEvent event) {
|
||||
// TODO implement and call update method
|
||||
}
|
||||
|
||||
@FXML
|
||||
void autoUpdateToggleBtnAction(ActionEvent event) {
|
||||
// TODO implement auto update function
|
||||
}
|
||||
|
||||
@FXML
|
||||
void smmdbDownloadBtnAction(ActionEvent event){
|
||||
String downloadUrl = "http://smmdb.ddns.net/api/downloadcourse?id=" + id + "&type=zip";
|
||||
@ -820,9 +858,15 @@ public class MainWindowController {
|
||||
cloudSync = true;
|
||||
//TODO rework for other cloud services
|
||||
cloudService = "GoogleDrive";
|
||||
main.cloudController.initializeConnection(getCloudService(), getCemuPath());
|
||||
main.cloudController.sync(getCloudService(), getCemuPath());
|
||||
saveSettings();
|
||||
if (main.cloudController.initializeConnection(getCloudService(), getCemuPath())) {
|
||||
main.cloudController.sync(getCloudService(), getCemuPath());
|
||||
saveSettings();
|
||||
} else {
|
||||
cloudSyncToggleBtn.setSelected(false);
|
||||
// TODO show error message
|
||||
}
|
||||
|
||||
// saveSettings();
|
||||
dialog.close();
|
||||
}
|
||||
});
|
||||
@ -1089,9 +1133,16 @@ public class MainWindowController {
|
||||
}
|
||||
|
||||
void refreshplayBtnPosition() {
|
||||
playBtn.setLayoutX((main.pane.getWidth()/2)-50);
|
||||
totalPlaytimeBtn.setLayoutX((main.pane.getWidth()/2)-50-20.5-100);
|
||||
lastTimePlayedBtn.setLayoutX((main.pane.getWidth()/2)+50+20.5);
|
||||
double width;
|
||||
|
||||
if (mainAnchorPane.getWidth() < 10) {
|
||||
width = mainAnchorPane.getPrefWidth();
|
||||
} else {
|
||||
width = mainAnchorPane.getWidth();
|
||||
}
|
||||
playBtn.setLayoutX((width/2)-50);
|
||||
totalPlaytimeBtn.setLayoutX((width/2)-50-20.5-100);
|
||||
lastTimePlayedBtn.setLayoutX((width/2)+50+20.5);
|
||||
}
|
||||
|
||||
private void addCourseDescription(SmmdbApiDataType course) {
|
||||
@ -1239,8 +1290,8 @@ public class MainWindowController {
|
||||
xPosHelper++;
|
||||
}
|
||||
|
||||
System.out.println("Breit: " + mainAnchorPane.getPrefWidth());
|
||||
System.out.println("Breit2: " + mainAnchorPane.getWidth());
|
||||
// System.out.println("Breit: " + mainAnchorPane.getPrefWidth());
|
||||
// System.out.println("Breit2: " + mainAnchorPane.getWidth());
|
||||
// System.out.println("xPosHelper: " + xPosHelper);
|
||||
// System.out.println("yPos: " + yPos);
|
||||
// System.out.println("xPos: " + xPos);
|
||||
@ -1269,9 +1320,10 @@ public class MainWindowController {
|
||||
playBtn.setStyle("-fx-text-fill: WHITE; -fx-font-family: Roboto Medium;");
|
||||
cemuTFBtn.setStyle(btnStyleWhite);
|
||||
romTFBtn.setStyle(btnStyleWhite);
|
||||
updateBtn.setStyle(btnStyleWhite);
|
||||
smmdbDownloadBtn.setStyle(btnStyleWhite);
|
||||
playBtn.setStyle(btnStyleWhite);
|
||||
|
||||
|
||||
aboutBtn.setGraphic(info_white);
|
||||
settingsBtn.setGraphic(settings_white);
|
||||
addBtn.setGraphic(add_circle_white);
|
||||
@ -1290,6 +1342,7 @@ public class MainWindowController {
|
||||
playBtn.setStyle("-fx-text-fill: BLACK; -fx-font-family: Roboto Medium;");
|
||||
cemuTFBtn.setStyle(btnStyleBlack);
|
||||
romTFBtn.setStyle(btnStyleBlack);
|
||||
updateBtn.setStyle(btnStyleBlack);
|
||||
smmdbDownloadBtn.setStyle(btnStyleBlack);
|
||||
playBtn.setStyle(btnStyleBlack);
|
||||
|
||||
|
@ -56,7 +56,7 @@ import com.google.api.services.drive.model.FileList;
|
||||
public class GoogleDriveController {
|
||||
|
||||
Drive service;
|
||||
private String cemuDirectory;
|
||||
private String saveDirectory;
|
||||
private String folderID;
|
||||
private ArrayList<java.io.File> localSavegames = new ArrayList<>();
|
||||
private ArrayList<File> cloudSavegames = new ArrayList<>();
|
||||
@ -64,7 +64,7 @@ public class GoogleDriveController {
|
||||
private ArrayList<String> cloudSavegamesName = new ArrayList<>();
|
||||
private static final Logger LOGGER = LogManager.getLogger(GoogleDriveController.class.getName());
|
||||
|
||||
private final String APPLICATION_NAME ="cemu_Ui Drive API Controller";
|
||||
private final String APPLICATION_NAME ="cemu_Ui Drive API Controller"; //TODO add Google
|
||||
|
||||
//Directory to store user credentials for this application
|
||||
private final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".credentials/cemu_UI_credential");
|
||||
@ -104,10 +104,10 @@ public class GoogleDriveController {
|
||||
InputStream in = getClass().getClassLoader().getResourceAsStream("resources/client_secret.json");
|
||||
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
|
||||
|
||||
//FIXME Linux fails to open a new browser window, application crashes, maybe a kde only bug
|
||||
// Build flow and trigger user authorization request.
|
||||
GoogleAuthorizationCodeFlow flow =
|
||||
new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
|
||||
.setDataStoreFactory(DATA_STORE_FACTORY)
|
||||
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
|
||||
.setDataStoreFactory(DATA_STORE_FACTORY)
|
||||
.setAccessType("offline")
|
||||
.build();
|
||||
Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
|
||||
@ -129,8 +129,18 @@ public class GoogleDriveController {
|
||||
|
||||
|
||||
public void main(String cemuDirectory) throws IOException {
|
||||
java.io.File dir = new java.io.File(cemuDirectory + "/mlc01/usr/save");
|
||||
|
||||
service = getDriveService();
|
||||
this.cemuDirectory = cemuDirectory;
|
||||
|
||||
// cemu >= 1.11 uses /mlc01/usr/save/... instead of /mlc01/emulatorSave/...
|
||||
if (dir.exists()) {
|
||||
LOGGER.info("using new save path");
|
||||
saveDirectory = cemuDirectory + "/mlc01/usr/save";
|
||||
} else {
|
||||
LOGGER.info("using old save path");
|
||||
saveDirectory = cemuDirectory + "/mlc01/emulatorSave";
|
||||
}
|
||||
}
|
||||
|
||||
public void sync(String cemuDirectory) throws IOException {
|
||||
@ -209,7 +219,7 @@ public class GoogleDriveController {
|
||||
|
||||
//reading all local savegames
|
||||
private void getLocalSavegames() throws IOException {
|
||||
java.io.File dir = new java.io.File(cemuDirectory+"/mlc01/emulatorSave");
|
||||
java.io.File dir = new java.io.File(saveDirectory);
|
||||
String[] extensions = new String[] { "dat","sav","bin" };
|
||||
localSavegames.removeAll(localSavegames);
|
||||
localSavegamesName.removeAll(localSavegamesName);
|
||||
@ -263,17 +273,17 @@ public class GoogleDriveController {
|
||||
//download a file from the cloud to the local savegames folder
|
||||
private void downloadFile(File downloadFile) throws IOException{
|
||||
LOGGER.info("downloading "+downloadFile.getName()+" ...");
|
||||
java.io.File directory = new java.io.File(cemuDirectory+"/mlc01/emulatorSave/"+ downloadFile.getName().substring(0,8));
|
||||
String file = downloadFile.getName().substring(9,downloadFile.getName().length());
|
||||
if(!directory.exists()) {
|
||||
LOGGER.info("dir dosent exist");
|
||||
directory.mkdir();
|
||||
}
|
||||
java.io.File directory = new java.io.File(saveDirectory + "/" + downloadFile.getName().substring(0,8));
|
||||
String file = downloadFile.getName().substring(9,downloadFile.getName().length());
|
||||
if(!directory.exists()) {
|
||||
LOGGER.info("dir dosent exist");
|
||||
directory.mkdir();
|
||||
}
|
||||
|
||||
OutputStream outputStream = new FileOutputStream(directory +"/"+ file);
|
||||
service.files().get(downloadFile.getId()).executeMediaAndDownloadTo(outputStream);
|
||||
outputStream.close();
|
||||
LOGGER.info("download successfull, File ID: " + file); //TODO add FileID
|
||||
OutputStream outputStream = new FileOutputStream(directory +"/"+ file);
|
||||
service.files().get(downloadFile.getId()).executeMediaAndDownloadTo(outputStream);
|
||||
outputStream.close();
|
||||
LOGGER.info("download successfull, File ID: " + file); //TODO add FileID
|
||||
}
|
||||
|
||||
//update a file in the cloud, by deleting the old one and uploading an new with the same id
|
||||
|
Binary file not shown.
BIN
src/libraries/commons-codec-1.11.jar
Normal file
BIN
src/libraries/commons-codec-1.11.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/libraries/commons-io-2.6.jar
Normal file
BIN
src/libraries/commons-io-2.6.jar
Normal file
Binary file not shown.
BIN
src/libraries/commons-logging-1.1.1.jar
Normal file
BIN
src/libraries/commons-logging-1.1.1.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/libraries/google_api_libraries/google-api-client-1.23.0.jar
Normal file
BIN
src/libraries/google_api_libraries/google-api-client-1.23.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/libraries/google_api_libraries/jackson-core-2.9.2.jar
Normal file
BIN
src/libraries/google_api_libraries/jackson-core-2.9.2.jar
Normal file
Binary file not shown.
BIN
src/libraries/google_api_libraries/javax.servlet-api-4.0.0.jar
Normal file
BIN
src/libraries/google_api_libraries/javax.servlet-api-4.0.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user