Blame view

src/main/java/eu/omp/irap/vespa/epntapclient/view/EpnTapView.java 2.92 KB
af879274   Nathanael Jourdane   First 'real' commit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * 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
 * <http://www.gnu.org/licenses/>.
 */

package eu.omp.irap.vespa.epntapclient.view;

import java.awt.BorderLayout;
import java.util.List;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;

import eu.omp.irap.vespa.epntapclient.controller.EpnTapController;
import eu.omp.irap.vespa.epntapclient.model.TAPService;

/**
 * The main class of the View of the application.
 * 
 * @author N. Jourdane
 */
public class EpnTapView extends JPanel {

	/** The serial version UID (affected with a random number). */
5967fb74   Nathanael Jourdane   Add the VOTable s...
37
	private static final long serialVersionUID = -7823290271099283814L;
af879274   Nathanael Jourdane   First 'real' commit.
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

	/**  */
	private EpnTapController control;

	/**
	 * The constructor of the view.
	 * 
	 * @param epnTapControl The Controller of the application.
	 */
	public EpnTapView(EpnTapController epnTapControl) {
		control = epnTapControl;
		createGui();
	}

	/**
	 * Configure and set the GUI.
	 */
	private void createGui() {
		setLayout(new BorderLayout());
	}

	/**
	 * Build a table (JTable) in the window, to display a list of TAP services.
	 * 
	 * @param listServices The list of TAP services which fill the table.
	 */
	public void fillTable(List<TAPService> listServices) {
		String[] keys = listServices.get(0).getKeys();

		Object[][] values = new Object[listServices.size()][keys.length];
		for (int i = 0; i < values.length; i++) {
			values[i] = listServices.get(i).getValuesArray();
		}

		JTable tableau = new JTable(values, keys);

		setLayout(new BorderLayout());
		JPanel northPanel = new JPanel(new BorderLayout());

		add(northPanel, BorderLayout.NORTH);

		northPanel.add(tableau.getTableHeader(), BorderLayout.NORTH);
		northPanel.add(tableau, BorderLayout.CENTER);
	}

	/**
	 * Display an error.
	 *
	 * @param title The title of the error.
	 * @param message The message of the error.
	 */
	public void displayError(String title, String message) {
		JOptionPane.showMessageDialog(this, message, title, JOptionPane.ERROR_MESSAGE);
	}

	/**
	 * @return The controller
	 */
	public EpnTapController getControl() {
		return control;
	}

}