/* * This file is a part of EpnTAPClient. * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer. * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861 * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie. * * This program is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, or (at your option) any later * version. 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 General Public License for more details. You should have received a copy of * the GNU General Public License along with this program. If not, see * . */ package eu.omp.irap.vespa.epntapclient; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.SwingUtilities; import com.google.gson.Gson; import eu.omp.irap.vespa.epntapclient.gui.mainpanel.MainPanelCtrl; import eu.omp.irap.vespa.epntapclient.gui.mainpanel.MainPanelView; /** * Simple class to have a main function to launch the EPNTap client. * * @author N. Jourdane */ public class EpnTapMainApp { /** The logger for the class EpnTapMainApp. */ private static final Logger LOGGER = Logger.getLogger(EpnTapMainApp.class.getName()); /** Error message when the user put a wrong command. */ private static final String WRONG_COMMAND = "Usage: EpnTapMainApp"; /** Constructor to hide the implicit public one. */ private EpnTapMainApp() { } /** * Main function to start the application as standalone. * * @param args The program arguments (not used). */ public static void main(final String[] args) { EpnTapMainApp.LOGGER.info("Lauching EPNTAP app with arguments: " + new Gson().toJson(args)); if (args.length != 0) { System.console().writer().println(EpnTapMainApp.WRONG_COMMAND); return; } MainPanelCtrl guiCtrl = new MainPanelCtrl(); guiCtrl.readServices(); SwingUtilities.invokeLater(EpnTapMainApp.run(guiCtrl.getView(), "EPN-TAP client")); } /** * Creates runnable used to run the application GUI. * * @param voTableView The VOTable main view, created by the controller. * @param title The title of the application window. * @return The runnable. */ private static Runnable run(final MainPanelView voTableView, final String title) { return new Runnable() { @Override public void run() { JFrame frame = new JFrame(title); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(voTableView); frame.setVisible(true); frame.pack(); frame.setLocationRelativeTo(null); } }; } }