/**
* Copyright 2007 DFKI GmbH.
* All Rights Reserved. Use is subject to license terms.
*
* This file is part of MARY TTS.
*
* MARY TTS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package marytts.tools.redstart;
import java.io.File;
import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Redstart {
/**
* @param args
* args
*/
public static void main(String[] args) {
// Determine the voice building directory in the following order:
// 1. System property "user.dir"
// 2. First command line argument
// 3. current directory
// 4. Prompt user via gui.
// Do a sanity check -- do they exist, do they have a wav/ subdirectory?
String voiceBuildingDir = null;
Vector<String> candidates = new Vector<String>();
candidates.add(System.getProperty("user.dir"));
if (args.length > 0)
candidates.add(args[0]);
candidates.add("."); // current directory
for (String dir : candidates) {
if (dir != null && new File(dir).isDirectory() && new File(dir + "/text").isDirectory()) {
voiceBuildingDir = dir;
break;
}
}
if (voiceBuildingDir == null) { // need to ask user
JFrame window = new JFrame("This is the Frames's Title Bar!");
JFileChooser fc = new JFileChooser(new File("."));
fc.setDialogTitle("Choose Voice Building Directory");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
System.out.println("Opening GUI....... ");
// outDir.setText(file.getAbsolutePath());
// System.exit(0);
int returnVal = fc.showOpenDialog(window);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
if (file != null)
voiceBuildingDir = file.getAbsolutePath();
}
}
if (voiceBuildingDir == null) {
System.err.println("Could not get a voice building directory -- exiting.");
System.exit(0);
}
File textDir = new File(voiceBuildingDir + System.getProperty("file.separator") + "text");
// System.out.println(System.getProperty("user.dir")+System.getProperty("file.separator")+"wav");
if (!textDir.exists()) {
JOptionPane
.showOptionDialog(
null,
"Before beginning a new recording session, make sure that all text files (transcriptions) are available in 'text' directory of your specified location.",
"Could not find transcriptions", JOptionPane.OK_OPTION, JOptionPane.ERROR_MESSAGE, null,
new String[] { "OK" }, null);
System.err.println("Could not find 'text' directory in user specified location -- exiting.");
System.exit(0);
}
// Display splash screen
Splash splash = null;
try {
splash = new Splash();
splash.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
Test.output("OS Name: " + System.getProperty("os.name"));
Test.output("OS Architecture: " + System.getProperty("os.arch"));
Test.output("OS Version: " + System.getProperty("os.version"));
System.out.println("Welcome to Redstart, your recording session manager.");
// TESTCODE
Test.output("|Redstart.main| voiceFolderPath = " + voiceBuildingDir);
AdminWindow adminWindow = new AdminWindow(voiceBuildingDir);
if (splash != null)
splash.setVisible(false);
adminWindow.setVisible(true);
}
}