/*
* 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
*
* **Usage 1**: `VOtableApp pathToVOTable` * Display the VOTable stored in the specified XML file. * - `pathToVOTable`: The path to an XML file representing a VOtable; * * **Usage 2**: `VOtableApp targetURL type language query` * Display the VOTable resulting the service or registry request. * - `targetURL`: The URL of the service or registry to ask, ie `http://cdpp-epntap.cesr.fr`; * - `language`: The language of the query, ie `ADQL`; * - `query`: The query in the specified language in double quotes, ie. `"SELECT * FROM amdadb.epn_core"` ** * @param args The program arguments */ public static void main(final String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // TODO: Add option to export to CSV and HTML in CLI. VOTableController voTableControl; VOTableApp.logger .info("Lauching VOTable app with arguments:\n " + new Gson().toJson(args)); if (args.length == 1) { try { voTableControl = new VOTableController(args[0]); } catch (VOTableException e) { System.console().writer().println("Error: " + e.getMessage()); VOTableApp.logger.log(Level.WARNING, e.getMessage(), e); return; } } else if (args.length == 3) { voTableControl = new VOTableController(args[0], args[1], args[2]); } else { System.console().writer().println("Usage: VOtableApp path/to/VOTable.xml\n" + "OR: VOtableApp http://url.to.service/or/registry type language \"YOUR QUERY\""); return; } JFrame frame = new JFrame(args[0]); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(voTableControl.getView()); frame.setVisible(true); frame.setSize(800, 600); frame.setLocationRelativeTo(null); } }); } }