package genomizerdesktop;
import gui.ConvertTab;
import gui.ErrorDialog;
import gui.GUI;
import gui.QuerySearchTab;
import gui.SettingsTab;
import gui.UploadTab;
import gui.WorkspaceTab;
import gui.processing.ProcessTab;
import gui.sysadmin.SysadminTab;
import javax.swing.SwingUtilities;
import model.ErrorLogger;
import model.Model;
import communication.SSLTool;
import model.ErrorLogger;
import model.Model;
import model.SessionHandler;
import model.User;
import controller.Controller;
/**
* Main Genomizer desktop startup class
*
*/
public class Genomizer {
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
if(User.getInstance().isLoggedIn()) {
SessionHandler.getInstance().logoutUser();
}
}
});
// TODO
SSLTool.disableCertificateValidation();
// Create GUI
final GUI gui = new GUI();
ErrorDialog.setParentComponent(gui);
try {
// Create Tabs
UploadTab ut = new UploadTab();
WorkspaceTab wt = new WorkspaceTab();
ProcessTab pt = new ProcessTab();
// AnalyzeTab at = new AnalyzeTab(); // TODO: Analyze tab
// not used
// (OO)
SysadminTab sat = new SysadminTab();
QuerySearchTab qst = new QuerySearchTab();
ConvertTab ct = new ConvertTab();
SettingsTab st = new SettingsTab();
// Set tabs in GUI
gui.setQuerySearchTab(qst);
gui.setUploadTab(ut);
gui.setProcessTab(pt);
gui.setWorkspaceTab(wt);
// gui.setAnalyzeTab(at); // TODO: Analyze tab not used (OO)
gui.setSysAdminTab(sat);
gui.setConvertTab(ct);
gui.setSettingsTab(st);
// Create model and controller
Model model = new Model();
Controller controller = new Controller(gui, model);
// Start the GUI
// TODO: Maybe put EDT on other parts?
SwingUtilities.invokeLater(new Runnable() {
public void run() {
gui.showLoginWindow();
// Set tabs in GUI
gui.pack();
}
});
} catch (Exception e) {
ErrorLogger.log(e);
}
}
});
}
}