From d09c95919f687e90d065df7a6e31254b3617ab78 Mon Sep 17 00:00:00 2001 From: Brian Paitno Date: Thu, 25 Feb 2016 20:40:28 -0500 Subject: [PATCH] Dropbox Tests * Add Dropbox Controller * Add Dropbox tests * Add Dropbox menu item --- .gitignore | 1 - build.gradle | 2 +- .../{directory => launcher}/Controller.java | 16 +++++- src/main/java/webapp/Dropbox.java | 54 +++++++++++++++---- src/main/java/webapp/DropboxController.java | 29 ++++++++++ src/main/java/webapp/dropbox.json | 5 -- src/main/resources/StartPage.fxml | 27 +++++++--- 7 files changed, 109 insertions(+), 25 deletions(-) rename src/main/java/{directory => launcher}/Controller.java (68%) create mode 100644 src/main/java/webapp/DropboxController.java delete mode 100644 src/main/java/webapp/dropbox.json diff --git a/.gitignore b/.gitignore index 26a10da..5ffd15a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ out/ .gradletasknamecache .gradle/ build/ - # dropbox credentials dropbox.json diff --git a/build.gradle b/build.gradle index 955225b..08da353 100644 --- a/build.gradle +++ b/build.gradle @@ -13,4 +13,4 @@ dependencies { compile group: 'com.dropbox.core', name: 'dropbox-core-sdk', version: '2.0-beta-7' compile group: 'org.json', name: 'json', version: '20160212' testCompile group: 'junit', name: 'junit', version: '4.11' -} +} \ No newline at end of file diff --git a/src/main/java/directory/Controller.java b/src/main/java/launcher/Controller.java similarity index 68% rename from src/main/java/directory/Controller.java rename to src/main/java/launcher/Controller.java index 13ea429..02810cf 100644 --- a/src/main/java/directory/Controller.java +++ b/src/main/java/launcher/Controller.java @@ -1,8 +1,13 @@ -package directory; +package launcher; +import directory.FolderViewManager; +import directory.IronFile; import javafx.fxml.FXML; import javafx.scene.control.MenuItem; import javafx.scene.control.TreeView; +import com.dropbox.core.*; +import com.dropbox.core.v2.*; +import webapp.DropboxController; import java.util.ResourceBundle; @@ -12,13 +17,22 @@ public class Controller{ @FXML private MenuItem fileTag; @FXML private MenuItem fileExit; @FXML private MenuItem editPreferences; + @FXML private MenuItem fileDropboxSignin; @FXML private TreeView dirTree; @FXML private ResourceBundle resources; + + @FXML private void initialize() { FolderViewManager manager = new FolderViewManager(dirTree); // 2 statements in 1 line is best IronFile[] hardDrives = IronFile.listRoots(); // an array of hard drives manager.setRootDirectory(hardDrives); + DropboxController dbManager = new DropboxController(); + try { + dbManager.test(); + } catch (DbxException e) { + e.printStackTrace(); + } // directory.IronFile homeDir = new directory.IronFile(System.getProperty("user.home")); // use this for specific directory // manager.setRootDirectory(homeDir); } diff --git a/src/main/java/webapp/Dropbox.java b/src/main/java/webapp/Dropbox.java index e3a2088..64c8696 100644 --- a/src/main/java/webapp/Dropbox.java +++ b/src/main/java/webapp/Dropbox.java @@ -1,28 +1,64 @@ package webapp; -import org.json.JSONException; import org.json.JSONObject; -import java.io.FileNotFoundException; +import java.io.File; import java.io.FileReader; +import java.net.URL; /** * Dropbox API specific */ public class Dropbox { // retrieve private credentials from Dropbox Developers app - static { - try { - FileReader readCred = new FileReader("dropbox.json"); - JSONObject dropCred = new JSONObject(readCred); - final String key = dropCred.getString("key"); - final String secret = dropCred.getString("secret"); - final String token = dropCred.getString("token"); + private String key; + private String secret; + private String token; + public Dropbox() { + readSetCredentials(); + } + public Dropbox(String key, String secret) { + this.key = key; + this.secret = secret; + } + public Dropbox(String key, String secret, String token) { + this.key = key; + this.secret = secret; + this.token = token; + } + + private void readSetCredentials() { + try { + URL url = getClass().getResource("/services/dropbox.json"); + FileReader readCred = new FileReader(url.getPath()); + JSONObject dropCred = new JSONObject(url.getPath()); + key = dropCred.getString("key"); + secret = dropCred.getString("secret"); + token = dropCred.getString("token"); } catch (Exception e) { e.printStackTrace(); } } + public String getKey() { + return key; + } + public String getSecret() { + return secret; + } + public String getToken() { + return token; + } + public void setKey(String key) { + this.key = key; + } + public void setSecret(String secret) { + this.secret = secret; + } + public void setToken(String token) { + this.token = token; + } + } diff --git a/src/main/java/webapp/DropboxController.java b/src/main/java/webapp/DropboxController.java new file mode 100644 index 0000000..623a458 --- /dev/null +++ b/src/main/java/webapp/DropboxController.java @@ -0,0 +1,29 @@ +package webapp; + +import com.dropbox.core.DbxException; +import com.dropbox.core.DbxRequestConfig; +import com.dropbox.core.v2.DbxClientV2; +import com.dropbox.core.v2.users.FullAccount; + +/** + * This class controls the Dropbox application logic. + */ +public class DropboxController { + private static Dropbox dropbox; + private DbxClientV2 client; + private DbxRequestConfig config; + + public DropboxController() { + initialize(); + } + + private void initialize() { + dropbox = new Dropbox(); // uses default json file credentials + config = new DbxRequestConfig("dropbox/IronGate", "en_US"); + client = new DbxClientV2(config, dropbox.getToken()); + } + + public void test() throws DbxException{ + FullAccount account = client.users.getCurrentAccount(); + } +} diff --git a/src/main/java/webapp/dropbox.json b/src/main/java/webapp/dropbox.json deleted file mode 100644 index 31d6455..0000000 --- a/src/main/java/webapp/dropbox.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "key": "", - "secret": "", - "token": "" -} diff --git a/src/main/resources/StartPage.fxml b/src/main/resources/StartPage.fxml index 78162fa..001cc8e 100644 --- a/src/main/resources/StartPage.fxml +++ b/src/main/resources/StartPage.fxml @@ -2,20 +2,31 @@ - - - - - - - + + + + + + + + + + + + + + + + + - + +