74 lines
2.0 KiB
Java
74 lines
2.0 KiB
Java
package envoy.client.ui;
|
|
|
|
import java.awt.EventQueue;
|
|
import java.io.IOException;
|
|
import java.util.Properties;
|
|
|
|
import javax.swing.JOptionPane;
|
|
|
|
import envoy.client.Client;
|
|
import envoy.client.Config;
|
|
import envoy.client.LocalDB;
|
|
import envoy.exception.EnvoyException;
|
|
|
|
/**
|
|
* Starts the Envoy client and prompts the user to enter their name.
|
|
*
|
|
* Project: <strong>envoy-client</strong><br>
|
|
* File: <strong>Startup.java</strong><br>
|
|
* Created: <strong>12 Oct 2019</strong><br>
|
|
*
|
|
* @author Leon Hofmeister
|
|
* @author Maximilian Käfer
|
|
* @since Envoy v0.1-alpha
|
|
*/
|
|
public class Startup {
|
|
|
|
public static void main(String[] args) {
|
|
Config config = Config.getInstance();
|
|
if (args.length > 0) {
|
|
config.load(args);
|
|
} else {
|
|
ClassLoader loader = Thread.currentThread().getContextClassLoader();
|
|
try {
|
|
Properties configProperties = new Properties();
|
|
configProperties.load(loader.getResourceAsStream("client.properties"));
|
|
config.load(configProperties);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
if (!config.isInitialized()) {
|
|
System.err.println("Server or port are not defined. Exiting...");
|
|
System.exit(1);
|
|
}
|
|
|
|
String userName = JOptionPane.showInputDialog("Please enter your username");
|
|
if (userName == null || userName.isEmpty()) {
|
|
System.err.println("User name is not set or empty. Exiting...");
|
|
System.exit(1);
|
|
}
|
|
Client client = new Client(config, userName);
|
|
LocalDB localDB = new LocalDB(client.getSender());
|
|
try {
|
|
localDB.initializeDBFile(config.getLocalDB());
|
|
} catch (EnvoyException e) {
|
|
e.printStackTrace();
|
|
JOptionPane.showMessageDialog(null,
|
|
"Error while loading local database: " + e.toString() + "\nChats will not be stored locally.",
|
|
"Local DB error",
|
|
JOptionPane.WARNING_MESSAGE);
|
|
}
|
|
|
|
EventQueue.invokeLater(() -> {
|
|
try {
|
|
ChatWindow chatWindow = new ChatWindow(client, localDB);
|
|
new StatusTrayIcon(chatWindow).show();
|
|
chatWindow.setVisible(true);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
});
|
|
}
|
|
} |