From 765ce9068eae09c4654fe43e135b0014df985efa Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Wed, 17 Oct 2012 21:24:50 -0700 Subject: Renaming from SermonUploader to PodcastUploader. --- README.md | 4 +- build.xml | 7 +- .../jesterpm/podcastuploader/PodcastUploader.java | 64 +++++++++ .../jesterpm/podcastuploader/config/Config.java | 133 +++++++++++++++++ .../podcastuploader/control/ConfigureTask.java | 85 +++++++++++ .../podcastuploader/control/UploadTask.java | 22 +++ src/net/jesterpm/podcastuploader/ui/Action.java | 17 +++ .../podcastuploader/ui/ConfigurationWindow.java | 157 +++++++++++++++++++++ .../podcastuploader/ui/ProgressWindow.java | 13 ++ .../jesterpm/sermonuploader/SermonUploader.java | 64 --------- src/net/jesterpm/sermonuploader/config/Config.java | 133 ----------------- .../sermonuploader/control/ConfigureTask.java | 85 ----------- .../sermonuploader/control/UploadTask.java | 22 --- src/net/jesterpm/sermonuploader/ui/Action.java | 17 --- .../sermonuploader/ui/ConfigurationWindow.java | 157 --------------------- .../jesterpm/sermonuploader/ui/ProgressWindow.java | 13 -- 16 files changed, 497 insertions(+), 496 deletions(-) create mode 100644 src/net/jesterpm/podcastuploader/PodcastUploader.java create mode 100644 src/net/jesterpm/podcastuploader/config/Config.java create mode 100644 src/net/jesterpm/podcastuploader/control/ConfigureTask.java create mode 100644 src/net/jesterpm/podcastuploader/control/UploadTask.java create mode 100644 src/net/jesterpm/podcastuploader/ui/Action.java create mode 100644 src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java create mode 100644 src/net/jesterpm/podcastuploader/ui/ProgressWindow.java delete mode 100644 src/net/jesterpm/sermonuploader/SermonUploader.java delete mode 100644 src/net/jesterpm/sermonuploader/config/Config.java delete mode 100644 src/net/jesterpm/sermonuploader/control/ConfigureTask.java delete mode 100644 src/net/jesterpm/sermonuploader/control/UploadTask.java delete mode 100644 src/net/jesterpm/sermonuploader/ui/Action.java delete mode 100644 src/net/jesterpm/sermonuploader/ui/ConfigurationWindow.java delete mode 100644 src/net/jesterpm/sermonuploader/ui/ProgressWindow.java diff --git a/README.md b/README.md index fe26c6e..62ddf2b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -Sermon Upload Utility +Podcast Upload Utility ===================== -Sermon upload utility, designed with Foursquare Church in mind. +Podcast upload utility, designed with Foursquare Church in mind. A more complete README will be available soon. Currently released under the GPL, but that may change once I consider diff --git a/build.xml b/build.xml index 03e9353..8f7fdbd 100644 --- a/build.xml +++ b/build.xml @@ -1,5 +1,5 @@ - + @@ -20,7 +20,7 @@ - + @@ -30,13 +30,14 @@ - + + diff --git a/src/net/jesterpm/podcastuploader/PodcastUploader.java b/src/net/jesterpm/podcastuploader/PodcastUploader.java new file mode 100644 index 0000000..f386f0d --- /dev/null +++ b/src/net/jesterpm/podcastuploader/PodcastUploader.java @@ -0,0 +1,64 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader; + +import net.jesterpm.podcastuploader.config.Config; +import net.jesterpm.podcastuploader.control.ConfigureTask; +import net.jesterpm.podcastuploader.control.UploadTask; +import net.jesterpm.podcastuploader.ui.ConfigurationWindow; +import net.jesterpm.podcastuploader.ui.ProgressWindow; + +/** + * Application entry-point. + * + * @author Jesse Morgan + */ +public class PodcastUploader { + private static final String DEFAULT_CONFIG = System.getProperty("user.home") + + System.getProperty("file.separator") + ".podcastuploader"; + + public static void main(String... args) { + final Config appconfig = new Config(DEFAULT_CONFIG); + + if (args.length == 0) { + startConfigure(appconfig); + + } else { + if (args[0].equals("--help")) { + printHelp(); + } + + startUpload(appconfig, args[0]); + } + } + + private static void printHelp() { + System.out.println("PodcastUploader - Podcast upload utility."); + System.out.println("Created by Jesse Morgan "); + System.out.println("http://jesterpm.net/projects/podcastuploader"); + System.out.println(); + System.out.println("Usage: PodcastUploader [directory]"); + System.out.println( + "When started with no arguments, the configuration dialog is opened."); + System.out.println( + "When started with one argument, it is assumed to be a directory\n" + + "with a metadata.txt file with upload instructions."); + System.out.println(); + } + + private static void startConfigure(final Config appconfig) { + ConfigurationWindow win = new ConfigurationWindow(); + ConfigureTask task = new ConfigureTask(appconfig, win); + + task.run(); + } + + public static void startUpload(final Config appconfig, final String dir) { + ProgressWindow win = new ProgressWindow(); + UploadTask task = new UploadTask(appconfig, win, dir); + + task.run(); + } +} diff --git a/src/net/jesterpm/podcastuploader/config/Config.java b/src/net/jesterpm/podcastuploader/config/Config.java new file mode 100644 index 0000000..b3d6954 --- /dev/null +++ b/src/net/jesterpm/podcastuploader/config/Config.java @@ -0,0 +1,133 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.config; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.File; + +import java.text.ParseException; + +import java.util.Map; +import java.util.HashMap; + +/** + * Configuration and metadata parser. + * + * @author Jesse Morgan + */ +public class Config { + private final String mFilename; + private Map mConfig; + + /** + * States the parser can be in. + */ + private enum TokenizerState { + OUT_OF_ENTRY, IN_ENTRY; + } + + /** + * Create a new Config object based on the given file. + */ + public Config(final String filename) { + mFilename = filename; + mConfig = new HashMap(); + parse(); + } + + private void parse() { + try { + final File configfile = new File(mFilename); + if (configfile.isFile()) { + BufferedReader in = new BufferedReader(new FileReader(mFilename)); + + int lineno = 0; + String line; + String key = ""; + String value = ""; + TokenizerState state = TokenizerState.OUT_OF_ENTRY; + while ((line = in.readLine()) != null) { + lineno++; + if (line.length() == 0) { + continue; + } + + switch (state) { + case IN_ENTRY: + if (Character.isWhitespace(line.charAt(0))) { + value += "\n" + line.trim(); + break; + + } else { + // Beginning new entry. Save old and pass through. + mConfig.put(key, value); + key = value = ""; + state = TokenizerState.OUT_OF_ENTRY; + // NB Intentionally falling through... + } + + case OUT_OF_ENTRY: + if (line.charAt(0) == '#') { + continue; + } + + final int pos = line.indexOf(':'); + if (pos == -1) { + throw new ParseException("Missing : at line " + lineno, lineno); + } + key = line.substring(0, pos).trim().toLowerCase(); + if (key.length() == 0) { + throw new ParseException("Zero-length key on line " + lineno, + lineno); + } + value = line.substring(pos + 1).trim(); + state = TokenizerState.IN_ENTRY; + break; + } + } + + // Catch last key/value + if (state == TokenizerState.IN_ENTRY) { + mConfig.put(key, value); + } + + in.close(); + } + + } catch (final Exception e) { + System.err.println("[ERROR] Failed to load config from " + mFilename + ". " + + e.getMessage()); + } + } + + public void save() { + try { + BufferedWriter out = new BufferedWriter(new FileWriter(mFilename)); + + for (Map.Entry entry : mConfig.entrySet()) { + out.write(entry.getKey()); + out.write(": "); + out.write(entry.getValue()); + out.newLine(); + } + + out.close(); + + } catch (final Exception e) { + System.err.println("[ERROR] Failed to save configuration: " + e.getMessage()); + } + } + + public String get(final String key) { + return mConfig.get(key); + } + + public void put(final String key, final String obj) { + mConfig.put(key, obj); + } +} diff --git a/src/net/jesterpm/podcastuploader/control/ConfigureTask.java b/src/net/jesterpm/podcastuploader/control/ConfigureTask.java new file mode 100644 index 0000000..0158155 --- /dev/null +++ b/src/net/jesterpm/podcastuploader/control/ConfigureTask.java @@ -0,0 +1,85 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.control; + +import net.jesterpm.podcastuploader.config.Config; + +import net.jesterpm.podcastuploader.ui.Action; +import net.jesterpm.podcastuploader.ui.ConfigurationWindow; + +/** + * Controller for the ConfigurationWindow. + * + * @author Jesse Morgan + */ +public class ConfigureTask { + private final Config mAppConfig; + private final ConfigurationWindow mWin; + + public ConfigureTask(final Config appconfig, final ConfigurationWindow win) { + mAppConfig = appconfig; + mWin = win; + + mWin.addSaveAction(new Action() { + public void onAction() { + populateConfig(); + mAppConfig.save(); + mWin.setVisible(false); + System.exit(0); + } + }); + + mWin.addCancelAction(new Action() { + public void onAction() { + mWin.setVisible(false); + System.exit(0); + } + }); + + mWin.addAuthorizeAction(new Action() { + public void onAction() { + populateConfig(); + getAuthorization(); + } + }); + + populateWindow(); + } + + /** + * Set the fields in the configuration window. + */ + private void populateWindow() { + mWin.setAWSKey(mAppConfig.get("AWSAccessKeyId")); + mWin.setAWSSecret(mAppConfig.get("AWSSecretKey")); + mWin.setS3Bucket(mAppConfig.get("S3Bucket")); + mWin.setMetadataServer(mAppConfig.get("MetadataURL")); + mWin.setHasAuthKey(mAppConfig.get("MetadataAuthKey") != null); + } + + /** + * Populate the config from the window. + */ + private void populateConfig() { + mAppConfig.put("AWSAccessKeyId", mWin.getAWSKey()); + mAppConfig.put("AWSSecretKey", mWin.getAWSSecret()); + mAppConfig.put("S3Bucket", mWin.getS3Bucket()); + mAppConfig.put("MetadataURL", mWin.getMetadataServer()); + } + + /** + * Display the window. + */ + public void run() { + mWin.setVisible(true); + } + + /** + * Get an authorization token from the metadata service. + */ + private void getAuthorization() { + + } +} diff --git a/src/net/jesterpm/podcastuploader/control/UploadTask.java b/src/net/jesterpm/podcastuploader/control/UploadTask.java new file mode 100644 index 0000000..2ed1f85 --- /dev/null +++ b/src/net/jesterpm/podcastuploader/control/UploadTask.java @@ -0,0 +1,22 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.control; + +import net.jesterpm.podcastuploader.config.Config; +import net.jesterpm.podcastuploader.ui.ProgressWindow; + +/** + * + * @author Jesse Morgan + */ +public class UploadTask { + public UploadTask(final Config appconfig, final ProgressWindow win, final String dir) { + + } + + public void run() { + + } +} diff --git a/src/net/jesterpm/podcastuploader/ui/Action.java b/src/net/jesterpm/podcastuploader/ui/Action.java new file mode 100644 index 0000000..5ec4bde --- /dev/null +++ b/src/net/jesterpm/podcastuploader/ui/Action.java @@ -0,0 +1,17 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.ui; + +/** + * Action handler for the UI. + * + * @author Jesse Morgan + */ +public interface Action { + /** + * This method is called when the action is performed. + */ + public void onAction(); +} diff --git a/src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java b/src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java new file mode 100644 index 0000000..d0dc96d --- /dev/null +++ b/src/net/jesterpm/podcastuploader/ui/ConfigurationWindow.java @@ -0,0 +1,157 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.ui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; + +import javax.swing.border.EmptyBorder; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +/** + * UI for the configuration window. + * + * @author Jesse Morgan + */ +public class ConfigurationWindow extends JFrame { + private final JTextField mAWSKey; + private final JTextField mAWSSecret; + private final JTextField mS3Bucket; + private final JTextField mMetadataServer; + private final JButton mAuthorize; + private final JButton mSave; + + public ConfigurationWindow() { + super("Podcast Uploader Configuration"); + + JPanel panel = new JPanel(); + panel.setBorder(new EmptyBorder(10, 10, 10, 10)); + panel.setLayout(new GridBagLayout()); + add(panel); + + mAWSKey = new JTextField(); + mAWSSecret = new JTextField(); + mS3Bucket = new JTextField(); + mMetadataServer = new JTextField(); + mAuthorize = new JButton("Authorize App"); + mSave = new JButton("Save"); + mSave.setDefaultCapable(true); + + GridBagConstraints labelConstraint = new GridBagConstraints(); + GridBagConstraints fieldConstraint = new GridBagConstraints(); + + labelConstraint.gridx = 0; + labelConstraint.gridy = GridBagConstraints.RELATIVE; + + fieldConstraint.gridx = 1; + fieldConstraint.gridy = GridBagConstraints.RELATIVE; + fieldConstraint.fill = GridBagConstraints.HORIZONTAL; + fieldConstraint.weightx = 1; + + panel.add(new JLabel("Podcast Server:", JLabel.RIGHT), labelConstraint); + panel.add(mMetadataServer, fieldConstraint); + + panel.add(new JLabel("AWS Access Key:", JLabel.RIGHT), labelConstraint); + panel.add(mAWSKey, fieldConstraint); + + panel.add(new JLabel("AWS Secret Key:", JLabel.RIGHT), labelConstraint); + panel.add(mAWSSecret, fieldConstraint); + + panel.add(new JLabel("S3 Bucket:", JLabel.RIGHT), labelConstraint); + panel.add(mS3Bucket, fieldConstraint); + + GridBagConstraints buttonConstraint = new GridBagConstraints(); + buttonConstraint.gridy = 5; + buttonConstraint.gridwidth = 2; + buttonConstraint.weighty = 1; + panel.add(mAuthorize, buttonConstraint); + + buttonConstraint.gridx = 1; + buttonConstraint.gridy = 7; + buttonConstraint.gridwidth = 1; + buttonConstraint.anchor = GridBagConstraints.LAST_LINE_END; + panel.add(mSave, buttonConstraint); + + pack(); + Dimension d = getPreferredSize(); + d.height += 20; + d.width += 50; + setMinimumSize(d); + } + + public void setAWSKey(final String value) { + mAWSKey.setText(value); + } + + public String getAWSKey() { + return mAWSKey.getText(); + } + + public void setAWSSecret(final String value) { + mAWSSecret.setText(value); + } + + public String getAWSSecret() { + return mAWSSecret.getText(); + } + + public void setS3Bucket(final String value) { + mS3Bucket.setText(value); + } + + public String getS3Bucket() { + return mS3Bucket.getText(); + } + + public void setMetadataServer(final String value) { + mMetadataServer.setText(value); + } + + public String getMetadataServer() { + return mMetadataServer.getText(); + } + + public void setHasAuthKey(final boolean value) { + if (value) { + mAuthorize.setText("Reauthorize App"); + + } else { + mAuthorize.setText("Authorize App"); + } + } + + public void addAuthorizeAction(final Action a) { + mAuthorize.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent e) { + a.onAction(); + } + }); + } + + public void addSaveAction(final Action a) { + mSave.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent e) { + a.onAction(); + } + }); + } + + public void addCancelAction(final Action a) { + addWindowListener(new WindowAdapter() { + public void windowClosing(final WindowEvent e) { + a.onAction(); + } + }); + } +} diff --git a/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java b/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java new file mode 100644 index 0000000..a2cdfcc --- /dev/null +++ b/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java @@ -0,0 +1,13 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.ui; + +/** + * + * @author Jesse Morgan + */ +public class ProgressWindow { + +} diff --git a/src/net/jesterpm/sermonuploader/SermonUploader.java b/src/net/jesterpm/sermonuploader/SermonUploader.java deleted file mode 100644 index 6338b3e..0000000 --- a/src/net/jesterpm/sermonuploader/SermonUploader.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader; - -import net.jesterpm.sermonuploader.config.Config; -import net.jesterpm.sermonuploader.control.ConfigureTask; -import net.jesterpm.sermonuploader.control.UploadTask; -import net.jesterpm.sermonuploader.ui.ConfigurationWindow; -import net.jesterpm.sermonuploader.ui.ProgressWindow; - -/** - * Application entry-point. - * - * @author Jesse Morgan - */ -public class SermonUploader { - private static final String DEFAULT_CONFIG = System.getProperty("user.home") - + System.getProperty("file.separator") + ".sermonuploader"; - - public static void main(String... args) { - final Config appconfig = new Config(DEFAULT_CONFIG); - - if (args.length == 0) { - startConfigure(appconfig); - - } else { - if (args[0].equals("--help")) { - printHelp(); - } - - startUpload(appconfig, args[0]); - } - } - - private static void printHelp() { - System.out.println("SermonUploader - Podcast upload utility."); - System.out.println("Created by Jesse Morgan "); - System.out.println("http://jesterpm.net/projects/sermonuploader"); - System.out.println(); - System.out.println("Usage: SermonUploader [directory]"); - System.out.println( - "When started with no arguments, the configuration dialog is opened."); - System.out.println( - "When started with one argument, it is assumed to be a directory\n" - + "with a metadata.txt file with upload instructions."); - System.out.println(); - } - - private static void startConfigure(final Config appconfig) { - ConfigurationWindow win = new ConfigurationWindow(); - ConfigureTask task = new ConfigureTask(appconfig, win); - - task.run(); - } - - public static void startUpload(final Config appconfig, final String dir) { - ProgressWindow win = new ProgressWindow(); - UploadTask task = new UploadTask(appconfig, win, dir); - - task.run(); - } -} diff --git a/src/net/jesterpm/sermonuploader/config/Config.java b/src/net/jesterpm/sermonuploader/config/Config.java deleted file mode 100644 index 9c9cc20..0000000 --- a/src/net/jesterpm/sermonuploader/config/Config.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.config; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.File; - -import java.text.ParseException; - -import java.util.Map; -import java.util.HashMap; - -/** - * Configuration and metadata parser. - * - * @author Jesse Morgan - */ -public class Config { - private final String mFilename; - private Map mConfig; - - /** - * States the parser can be in. - */ - private enum TokenizerState { - OUT_OF_ENTRY, IN_ENTRY; - } - - /** - * Create a new Config object based on the given file. - */ - public Config(final String filename) { - mFilename = filename; - mConfig = new HashMap(); - parse(); - } - - private void parse() { - try { - final File configfile = new File(mFilename); - if (configfile.isFile()) { - BufferedReader in = new BufferedReader(new FileReader(mFilename)); - - int lineno = 0; - String line; - String key = ""; - String value = ""; - TokenizerState state = TokenizerState.OUT_OF_ENTRY; - while ((line = in.readLine()) != null) { - lineno++; - if (line.length() == 0) { - continue; - } - - switch (state) { - case IN_ENTRY: - if (Character.isWhitespace(line.charAt(0))) { - value += "\n" + line.trim(); - break; - - } else { - // Beginning new entry. Save old and pass through. - mConfig.put(key, value); - key = value = ""; - state = TokenizerState.OUT_OF_ENTRY; - // NB Intentionally falling through... - } - - case OUT_OF_ENTRY: - if (line.charAt(0) == '#') { - continue; - } - - final int pos = line.indexOf(':'); - if (pos == -1) { - throw new ParseException("Missing : at line " + lineno, lineno); - } - key = line.substring(0, pos).trim().toLowerCase(); - if (key.length() == 0) { - throw new ParseException("Zero-length key on line " + lineno, - lineno); - } - value = line.substring(pos + 1).trim(); - state = TokenizerState.IN_ENTRY; - break; - } - } - - // Catch last key/value - if (state == TokenizerState.IN_ENTRY) { - mConfig.put(key, value); - } - - in.close(); - } - - } catch (final Exception e) { - System.err.println("[ERROR] Failed to load config from " + mFilename + ". " - + e.getMessage()); - } - } - - public void save() { - try { - BufferedWriter out = new BufferedWriter(new FileWriter(mFilename)); - - for (Map.Entry entry : mConfig.entrySet()) { - out.write(entry.getKey()); - out.write(": "); - out.write(entry.getValue()); - out.newLine(); - } - - out.close(); - - } catch (final Exception e) { - System.err.println("[ERROR] Failed to save configuration: " + e.getMessage()); - } - } - - public String get(final String key) { - return mConfig.get(key); - } - - public void put(final String key, final String obj) { - mConfig.put(key, obj); - } -} diff --git a/src/net/jesterpm/sermonuploader/control/ConfigureTask.java b/src/net/jesterpm/sermonuploader/control/ConfigureTask.java deleted file mode 100644 index 13b2afb..0000000 --- a/src/net/jesterpm/sermonuploader/control/ConfigureTask.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.control; - -import net.jesterpm.sermonuploader.config.Config; - -import net.jesterpm.sermonuploader.ui.Action; -import net.jesterpm.sermonuploader.ui.ConfigurationWindow; - -/** - * Controller for the ConfigurationWindow. - * - * @author Jesse Morgan - */ -public class ConfigureTask { - private final Config mAppConfig; - private final ConfigurationWindow mWin; - - public ConfigureTask(final Config appconfig, final ConfigurationWindow win) { - mAppConfig = appconfig; - mWin = win; - - mWin.addSaveAction(new Action() { - public void onAction() { - populateConfig(); - mAppConfig.save(); - mWin.setVisible(false); - System.exit(0); - } - }); - - mWin.addCancelAction(new Action() { - public void onAction() { - mWin.setVisible(false); - System.exit(0); - } - }); - - mWin.addAuthorizeAction(new Action() { - public void onAction() { - populateConfig(); - getAuthorization(); - } - }); - - populateWindow(); - } - - /** - * Set the fields in the configuration window. - */ - private void populateWindow() { - mWin.setAWSKey(mAppConfig.get("AWSAccessKeyId")); - mWin.setAWSSecret(mAppConfig.get("AWSSecretKey")); - mWin.setS3Bucket(mAppConfig.get("S3Bucket")); - mWin.setMetadataServer(mAppConfig.get("MetadataURL")); - mWin.setHasAuthKey(mAppConfig.get("MetadataAuthKey") != null); - } - - /** - * Populate the config from the window. - */ - private void populateConfig() { - mAppConfig.put("AWSAccessKeyId", mWin.getAWSKey()); - mAppConfig.put("AWSSecretKey", mWin.getAWSSecret()); - mAppConfig.put("S3Bucket", mWin.getS3Bucket()); - mAppConfig.put("MetadataURL", mWin.getMetadataServer()); - } - - /** - * Display the window. - */ - public void run() { - mWin.setVisible(true); - } - - /** - * Get an authorization token from the metadata service. - */ - private void getAuthorization() { - - } -} diff --git a/src/net/jesterpm/sermonuploader/control/UploadTask.java b/src/net/jesterpm/sermonuploader/control/UploadTask.java deleted file mode 100644 index 722d03a..0000000 --- a/src/net/jesterpm/sermonuploader/control/UploadTask.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.control; - -import net.jesterpm.sermonuploader.config.Config; -import net.jesterpm.sermonuploader.ui.ProgressWindow; - -/** - * - * @author Jesse Morgan - */ -public class UploadTask { - public UploadTask(final Config appconfig, final ProgressWindow win, final String dir) { - - } - - public void run() { - - } -} diff --git a/src/net/jesterpm/sermonuploader/ui/Action.java b/src/net/jesterpm/sermonuploader/ui/Action.java deleted file mode 100644 index d3e2697..0000000 --- a/src/net/jesterpm/sermonuploader/ui/Action.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.ui; - -/** - * Action handler for the UI. - * - * @author Jesse Morgan - */ -public interface Action { - /** - * This method is called when the action is performed. - */ - public void onAction(); -} diff --git a/src/net/jesterpm/sermonuploader/ui/ConfigurationWindow.java b/src/net/jesterpm/sermonuploader/ui/ConfigurationWindow.java deleted file mode 100644 index 033c871..0000000 --- a/src/net/jesterpm/sermonuploader/ui/ConfigurationWindow.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.ui; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; - -import javax.swing.border.EmptyBorder; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -/** - * UI for the configuration window. - * - * @author Jesse Morgan - */ -public class ConfigurationWindow extends JFrame { - private final JTextField mAWSKey; - private final JTextField mAWSSecret; - private final JTextField mS3Bucket; - private final JTextField mMetadataServer; - private final JButton mAuthorize; - private final JButton mSave; - - public ConfigurationWindow() { - super("Sermon Uploader Configuration"); - - JPanel panel = new JPanel(); - panel.setBorder(new EmptyBorder(10, 10, 10, 10)); - panel.setLayout(new GridBagLayout()); - add(panel); - - mAWSKey = new JTextField(); - mAWSSecret = new JTextField(); - mS3Bucket = new JTextField(); - mMetadataServer = new JTextField(); - mAuthorize = new JButton("Authorize App"); - mSave = new JButton("Save"); - mSave.setDefaultCapable(true); - - GridBagConstraints labelConstraint = new GridBagConstraints(); - GridBagConstraints fieldConstraint = new GridBagConstraints(); - - labelConstraint.gridx = 0; - labelConstraint.gridy = GridBagConstraints.RELATIVE; - - fieldConstraint.gridx = 1; - fieldConstraint.gridy = GridBagConstraints.RELATIVE; - fieldConstraint.fill = GridBagConstraints.HORIZONTAL; - fieldConstraint.weightx = 1; - - panel.add(new JLabel("Podcast Server:", JLabel.RIGHT), labelConstraint); - panel.add(mMetadataServer, fieldConstraint); - - panel.add(new JLabel("AWS Access Key:", JLabel.RIGHT), labelConstraint); - panel.add(mAWSKey, fieldConstraint); - - panel.add(new JLabel("AWS Secret Key:", JLabel.RIGHT), labelConstraint); - panel.add(mAWSSecret, fieldConstraint); - - panel.add(new JLabel("S3 Bucket:", JLabel.RIGHT), labelConstraint); - panel.add(mS3Bucket, fieldConstraint); - - GridBagConstraints buttonConstraint = new GridBagConstraints(); - buttonConstraint.gridy = 5; - buttonConstraint.gridwidth = 2; - buttonConstraint.weighty = 1; - panel.add(mAuthorize, buttonConstraint); - - buttonConstraint.gridx = 1; - buttonConstraint.gridy = 7; - buttonConstraint.gridwidth = 1; - buttonConstraint.anchor = GridBagConstraints.LAST_LINE_END; - panel.add(mSave, buttonConstraint); - - pack(); - Dimension d = getPreferredSize(); - d.height += 20; - d.width += 50; - setMinimumSize(d); - } - - public void setAWSKey(final String value) { - mAWSKey.setText(value); - } - - public String getAWSKey() { - return mAWSKey.getText(); - } - - public void setAWSSecret(final String value) { - mAWSSecret.setText(value); - } - - public String getAWSSecret() { - return mAWSSecret.getText(); - } - - public void setS3Bucket(final String value) { - mS3Bucket.setText(value); - } - - public String getS3Bucket() { - return mS3Bucket.getText(); - } - - public void setMetadataServer(final String value) { - mMetadataServer.setText(value); - } - - public String getMetadataServer() { - return mMetadataServer.getText(); - } - - public void setHasAuthKey(final boolean value) { - if (value) { - mAuthorize.setText("Reauthorize App"); - - } else { - mAuthorize.setText("Authorize App"); - } - } - - public void addAuthorizeAction(final Action a) { - mAuthorize.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - a.onAction(); - } - }); - } - - public void addSaveAction(final Action a) { - mSave.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - a.onAction(); - } - }); - } - - public void addCancelAction(final Action a) { - addWindowListener(new WindowAdapter() { - public void windowClosing(final WindowEvent e) { - a.onAction(); - } - }); - } -} diff --git a/src/net/jesterpm/sermonuploader/ui/ProgressWindow.java b/src/net/jesterpm/sermonuploader/ui/ProgressWindow.java deleted file mode 100644 index 20af58f..0000000 --- a/src/net/jesterpm/sermonuploader/ui/ProgressWindow.java +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2012 Jesse Morgan - */ - -package net.jesterpm.sermonuploader.ui; - -/** - * - * @author Jesse Morgan - */ -public class ProgressWindow { - -} -- cgit v1.2.3