EpnTapMainView.java
3.92 KB
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
37
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/*
* 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 javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import eu.omp.irap.vespa.epntapclient.controller.ViewListener;
import eu.omp.irap.vespa.epntapclient.view.panels.BottomBarPanel;
import eu.omp.irap.vespa.epntapclient.view.panels.RequestPanel;
import eu.omp.irap.vespa.epntapclient.view.panels.ResultsPanel;
import eu.omp.irap.vespa.epntapclient.view.panels.ServicesPanel;
import eu.omp.irap.vespa.epntapclient.votable.view.VOTableView;
/**
* The main view of the application, which manage all the other views.
*
* @author N. Jourdane
*/
public class EpnTapMainView extends JPanel {
/** The serial version UID. */
private static final long serialVersionUID = 1L;
/** The JPanel where the VOTable results is displayed. */
private ResultsPanel resultsPanel;
/** The JPanel where the list of services is displayed. */
private ServicesPanel servicesPanel;
/** The JPanel where the user build the query. */
private RequestPanel requestPanel;
/** The status bar. */
private BottomBarPanel bottomBarPanel;
/**
* The main view constructor, which create all the panels.
*
* @param voTableServicesView The view to put in the services panel, built by ServicesController
* @param voTableResultsView The view to put in the results panel, built by ResultsController.
*/
public EpnTapMainView(ViewListener viewListener, VOTableView voTableServicesView,
VOTableView voTableResultsView) {
servicesPanel = new ServicesPanel(viewListener, voTableServicesView);
resultsPanel = new ResultsPanel(viewListener, voTableResultsView);
requestPanel = new RequestPanel(viewListener);
bottomBarPanel = new BottomBarPanel(viewListener);
buildMainView();
}
/**
* @return The JPanel where the VOTable result is displayed.
*/
public ResultsPanel getResultsPanel() {
return resultsPanel;
}
/**
* @return The JPanel containing the GUI elements to build the query.
*/
public RequestPanel getRequestPanel() {
return requestPanel;
}
/**
* @return The JPanel where the list of services is displayed.
*/
public ServicesPanel getServicesPanel() {
return servicesPanel;
}
/**
* @return The status bar.
*/
public BottomBarPanel getBottomBarPanel() {
return bottomBarPanel;
}
/**
* Build and fill the GUI.
*/
private void buildMainView() {
setLayout(new BorderLayout());
JSplitPane northPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, servicesPanel,
requestPanel);
JSplitPane mainPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, northPanel, resultsPanel);
add(mainPanel, BorderLayout.CENTER);
add(bottomBarPanel, BorderLayout.SOUTH);
}
/**
* Display an error message. Usually used each time an error happens.
*
* @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);
}
}