Commit 58a466aacc6cdb7a12c15448c37e5387ee53b42c
1 parent
6f25e39e
Exists in
master
Use ResultPanelCtrl to manage the result view.
Showing
6 changed files
with
56 additions
and
73 deletions
Show diff stats
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainPanel/MainPanelCtrl.java
@@ -16,10 +16,6 @@ | @@ -16,10 +16,6 @@ | ||
16 | 16 | ||
17 | package eu.omp.irap.vespa.epntapclient.gui.mainPanel; | 17 | package eu.omp.irap.vespa.epntapclient.gui.mainPanel; |
18 | 18 | ||
19 | -import java.io.File; | ||
20 | -import java.io.IOException; | ||
21 | -import java.nio.file.Files; | ||
22 | -import java.nio.file.Paths; | ||
23 | import java.util.logging.Level; | 19 | import java.util.logging.Level; |
24 | import java.util.logging.Logger; | 20 | import java.util.logging.Logger; |
25 | 21 | ||
@@ -27,14 +23,14 @@ import javax.swing.JOptionPane; | @@ -27,14 +23,14 @@ import javax.swing.JOptionPane; | ||
27 | 23 | ||
28 | import eu.omp.irap.vespa.epntapclient.EpnTapController; | 24 | import eu.omp.irap.vespa.epntapclient.EpnTapController; |
29 | import eu.omp.irap.vespa.epntapclient.gui.requestpanel.RequestPanelCtrl; | 25 | import eu.omp.irap.vespa.epntapclient.gui.requestpanel.RequestPanelCtrl; |
26 | +import eu.omp.irap.vespa.epntapclient.gui.resultpanel.ResultPanelCtrl; | ||
30 | import eu.omp.irap.vespa.epntapclient.gui.servicespanel.ServicesPanelCtrl; | 27 | import eu.omp.irap.vespa.epntapclient.gui.servicespanel.ServicesPanelCtrl; |
31 | import eu.omp.irap.vespa.votable.controller.CantGetVOTableException; | 28 | import eu.omp.irap.vespa.votable.controller.CantGetVOTableException; |
32 | -import eu.omp.irap.vespa.votable.controller.VOTableController; | ||
33 | 29 | ||
34 | /** | 30 | /** |
35 | * @author N. Jourdane | 31 | * @author N. Jourdane |
36 | */ | 32 | */ |
37 | -public class MainPanelCtrl extends EpnTapController implements ViewListener { | 33 | +public class MainPanelCtrl extends EpnTapController { |
38 | 34 | ||
39 | /** The logger for the class GUIController. */ | 35 | /** The logger for the class GUIController. */ |
40 | private static final Logger logger = Logger.getLogger(MainPanelCtrl.class.getName()); | 36 | private static final Logger logger = Logger.getLogger(MainPanelCtrl.class.getName()); |
@@ -43,22 +39,18 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | @@ -43,22 +39,18 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | ||
43 | 39 | ||
44 | private ServicesPanelCtrl servicesPanelCtrl; | 40 | private ServicesPanelCtrl servicesPanelCtrl; |
45 | 41 | ||
46 | - private VOTableController resultPanelCtrl; | 42 | + private ResultPanelCtrl resultPanelCtrl; |
47 | 43 | ||
48 | - private MainPanelView mainView; | ||
49 | - | ||
50 | - private String voTablePath; | ||
51 | - | ||
52 | - // TODO: à déplacer dans ServicePanelCtrl | 44 | + private MainPanelView view; |
53 | 45 | ||
54 | private int nbMaxResult = 10; | 46 | private int nbMaxResult = 10; |
55 | 47 | ||
56 | 48 | ||
57 | public MainPanelCtrl() { | 49 | public MainPanelCtrl() { |
58 | servicesPanelCtrl = new ServicesPanelCtrl(this); | 50 | servicesPanelCtrl = new ServicesPanelCtrl(this); |
59 | - resultPanelCtrl = new VOTableController(); | 51 | + resultPanelCtrl = new ResultPanelCtrl(this); |
60 | requestPanelCtrl = new RequestPanelCtrl(this); | 52 | requestPanelCtrl = new RequestPanelCtrl(this); |
61 | - mainView = new MainPanelView(this); | 53 | + view = new MainPanelView(this); |
62 | } | 54 | } |
63 | 55 | ||
64 | @Override | 56 | @Override |
@@ -68,7 +60,7 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | @@ -68,7 +60,7 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | ||
68 | } catch (CantGetVOTableException e) { | 60 | } catch (CantGetVOTableException e) { |
69 | displayError("Can not get services.", e); | 61 | displayError("Can not get services.", e); |
70 | } | 62 | } |
71 | - mainView.getServicesPanel().fillTable(servicesPanelCtrl.getVOTableData()); | 63 | + view.getServicesPanel().fillTable(servicesPanelCtrl.getVOTableData()); |
72 | } | 64 | } |
73 | 65 | ||
74 | public void sendQuery(String query) { | 66 | public void sendQuery(String query) { |
@@ -76,8 +68,7 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | @@ -76,8 +68,7 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | ||
76 | logger.info("Sending query: " + query + " on " + serviceURL); | 68 | logger.info("Sending query: " + query + " on " + serviceURL); |
77 | try { | 69 | try { |
78 | resultPanelCtrl.updateVOTable(serviceURL, query); | 70 | resultPanelCtrl.updateVOTable(serviceURL, query); |
79 | - voTablePath = resultPanelCtrl.getVOTablePath(); | ||
80 | - mainView.getResultsPanel().fillTable(resultPanelCtrl.getVOTableData()); | 71 | + view.getResultsPanel().fillTable(resultPanelCtrl.getVOTableData()); |
81 | } catch (CantGetVOTableException e) { | 72 | } catch (CantGetVOTableException e) { |
82 | displayError("Can not send the query.", e); | 73 | displayError("Can not send the query.", e); |
83 | MainPanelCtrl.logger.log(Level.WARNING, "Can not send query.", e); | 74 | MainPanelCtrl.logger.log(Level.WARNING, "Can not send query.", e); |
@@ -92,27 +83,18 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | @@ -92,27 +83,18 @@ public class MainPanelCtrl extends EpnTapController implements ViewListener { | ||
92 | return servicesPanelCtrl; | 83 | return servicesPanelCtrl; |
93 | } | 84 | } |
94 | 85 | ||
86 | + public ResultPanelCtrl getResultPanelCtrl() { | ||
87 | + return resultPanelCtrl; | ||
88 | + } | ||
89 | + | ||
95 | public MainPanelView getView() { | 90 | public MainPanelView getView() { |
96 | - return mainView; | 91 | + return view; |
97 | } | 92 | } |
98 | 93 | ||
99 | @Override | 94 | @Override |
100 | public void displayError(String message, Exception e) { | 95 | public void displayError(String message, Exception e) { |
101 | logger.log(Level.SEVERE, message, e); | 96 | logger.log(Level.SEVERE, message, e); |
102 | - JOptionPane.showMessageDialog(mainView, e.getMessage(), message, JOptionPane.ERROR_MESSAGE); | ||
103 | - } | ||
104 | - | ||
105 | - /** Copy the VOTable to a specified location. */ | ||
106 | - @Override | ||
107 | - public void onDownloadButtonClicked(File outputFile) { | ||
108 | - try { | ||
109 | - Files.copy(Paths.get(voTablePath), Paths.get(outputFile.getAbsolutePath())); | ||
110 | - } catch (IOException e) { | ||
111 | - // TODO create exception | ||
112 | - mainView.displayError("Can not save the file.", | ||
113 | - "Check that you can write on the specified directory."); | ||
114 | - MainPanelCtrl.logger.log(Level.WARNING, "Can not save the file.", e); | ||
115 | - } | 97 | + JOptionPane.showMessageDialog(view, e.getMessage(), message, JOptionPane.ERROR_MESSAGE); |
116 | } | 98 | } |
117 | 99 | ||
118 | /** | 100 | /** |
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainPanel/MainPanelView.java
@@ -56,7 +56,7 @@ public class MainPanelView extends JPanel { | @@ -56,7 +56,7 @@ public class MainPanelView extends JPanel { | ||
56 | 56 | ||
57 | public MainPanelView(MainPanelCtrl mainPanelCtrl) { | 57 | public MainPanelView(MainPanelCtrl mainPanelCtrl) { |
58 | servicesPanel = mainPanelCtrl.getServicePanelCtrl().getView(); | 58 | servicesPanel = mainPanelCtrl.getServicePanelCtrl().getView(); |
59 | - resultPanel = new ResultPanelView(mainPanelCtrl); | 59 | + resultPanel = mainPanelCtrl.getResultPanelCtrl().getView(); |
60 | requestPanel = mainPanelCtrl.getRequestPanelCtrl().getView(); | 60 | requestPanel = mainPanelCtrl.getRequestPanelCtrl().getView(); |
61 | buildMainView(); | 61 | buildMainView(); |
62 | } | 62 | } |
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainPanel/ViewListener.java deleted
@@ -1,36 +0,0 @@ | @@ -1,36 +0,0 @@ | ||
1 | -/* | ||
2 | - * This file is a part of EpnTAPClient. | ||
3 | - * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer. | ||
4 | - * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861 | ||
5 | - * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie. | ||
6 | - * | ||
7 | - * This program is free software: you can | ||
8 | - * redistribute it and/or modify it under the terms of the GNU General Public License as published | ||
9 | - * by the Free Software Foundation, either version 3 of the License, or (at your option) any later | ||
10 | - * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY | ||
11 | - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
12 | - * PURPOSE. See the GNU General Public License for more details. You should have received a copy of | ||
13 | - * the GNU General Public License along with this program. If not, see | ||
14 | - * <http://www.gnu.org/licenses/>. | ||
15 | - */ | ||
16 | - | ||
17 | -package eu.omp.irap.vespa.epntapclient.gui.mainPanel; | ||
18 | - | ||
19 | -import java.io.File; | ||
20 | - | ||
21 | -/** | ||
22 | - * The interface for the main view listener, which listen for GUI events in the view, implemented by | ||
23 | - * the controller. | ||
24 | - * | ||
25 | - * @author N. Jourdane | ||
26 | - */ | ||
27 | -public interface ViewListener { | ||
28 | - | ||
29 | - /** | ||
30 | - * When the `Download VOTable` button is clicked. | ||
31 | - * | ||
32 | - * @param outputFile The file to copy the VOTable. | ||
33 | - */ | ||
34 | - void onDownloadButtonClicked(File outputFile); | ||
35 | - | ||
36 | -} |
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelCtrl.java
@@ -16,13 +16,50 @@ | @@ -16,13 +16,50 @@ | ||
16 | 16 | ||
17 | package eu.omp.irap.vespa.epntapclient.gui.resultpanel; | 17 | package eu.omp.irap.vespa.epntapclient.gui.resultpanel; |
18 | 18 | ||
19 | +import java.io.File; | ||
20 | +import java.io.IOException; | ||
21 | +import java.nio.file.Files; | ||
22 | +import java.nio.file.Paths; | ||
23 | +import java.util.logging.Level; | ||
19 | import java.util.logging.Logger; | 24 | import java.util.logging.Logger; |
20 | 25 | ||
26 | +import eu.omp.irap.vespa.epntapclient.gui.mainPanel.MainPanelCtrl; | ||
27 | +import eu.omp.irap.vespa.votable.controller.VOTableController; | ||
28 | + | ||
21 | /** | 29 | /** |
22 | * @author N. Jourdane | 30 | * @author N. Jourdane |
23 | */ | 31 | */ |
24 | -public class ResultPanelCtrl { | 32 | +public class ResultPanelCtrl extends VOTableController implements ResultPanelListener { |
25 | 33 | ||
26 | /** The logger for the class ResultPanelCtrl. */ | 34 | /** The logger for the class ResultPanelCtrl. */ |
27 | private static final Logger logger = Logger.getLogger(ResultPanelCtrl.class.getName()); | 35 | private static final Logger logger = Logger.getLogger(ResultPanelCtrl.class.getName()); |
36 | + | ||
37 | + private MainPanelCtrl mainPanelCtrl; | ||
38 | + | ||
39 | + private ResultPanelView view; | ||
40 | + | ||
41 | + | ||
42 | + public ResultPanelCtrl(MainPanelCtrl mainPanelCtrl) { | ||
43 | + this.mainPanelCtrl = mainPanelCtrl; | ||
44 | + view = new ResultPanelView(this); | ||
45 | + } | ||
46 | + | ||
47 | + /* | ||
48 | + * @see | ||
49 | + * eu.omp.irap.vespa.epntapclient.gui.resultpanel.ResultPanelListener#onDownloadButtonClicked( | ||
50 | + * java.io.File) | ||
51 | + */ | ||
52 | + @Override | ||
53 | + public void onDownloadButtonClicked(File file) { | ||
54 | + try { | ||
55 | + Files.copy(Paths.get(voTablePath), Paths.get(file.getAbsolutePath())); | ||
56 | + } catch (IOException e) { | ||
57 | + mainPanelCtrl.displayError("Can not save the file.", e); | ||
58 | + logger.log(Level.WARNING, "Can not save the file.", e); | ||
59 | + } | ||
60 | + } | ||
61 | + | ||
62 | + public ResultPanelView getView() { | ||
63 | + return view; | ||
64 | + } | ||
28 | } | 65 | } |
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelListener.java
@@ -23,5 +23,6 @@ import java.io.File; | @@ -23,5 +23,6 @@ import java.io.File; | ||
23 | */ | 23 | */ |
24 | public interface ResultPanelListener { | 24 | public interface ResultPanelListener { |
25 | 25 | ||
26 | + /** Copy the VOTable to a specified location. */ | ||
26 | public void onDownloadButtonClicked(File file); | 27 | public void onDownloadButtonClicked(File file); |
27 | } | 28 | } |
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelView.java
@@ -25,7 +25,6 @@ import javax.swing.JFileChooser; | @@ -25,7 +25,6 @@ import javax.swing.JFileChooser; | ||
25 | import javax.swing.JLabel; | 25 | import javax.swing.JLabel; |
26 | import javax.swing.JPanel; | 26 | import javax.swing.JPanel; |
27 | 27 | ||
28 | -import eu.omp.irap.vespa.epntapclient.gui.mainPanel.ViewListener; | ||
29 | import eu.omp.irap.vespa.votable.view.VOTableView; | 28 | import eu.omp.irap.vespa.votable.view.VOTableView; |
30 | 29 | ||
31 | /** | 30 | /** |
@@ -36,7 +35,7 @@ public class ResultPanelView extends VOTableView { | @@ -36,7 +35,7 @@ public class ResultPanelView extends VOTableView { | ||
36 | /** The serial version UID. */ | 35 | /** The serial version UID. */ |
37 | private static final long serialVersionUID = 1L; | 36 | private static final long serialVersionUID = 1L; |
38 | 37 | ||
39 | - ViewListener viewListener; | 38 | + ResultPanelListener viewListener; |
40 | 39 | ||
41 | /** A label to display several informations (aka. status bar). */ | 40 | /** A label to display several informations (aka. status bar). */ |
42 | private JLabel infoLabel; | 41 | private JLabel infoLabel; |
@@ -51,7 +50,7 @@ public class ResultPanelView extends VOTableView { | @@ -51,7 +50,7 @@ public class ResultPanelView extends VOTableView { | ||
51 | * @param mainView The main view of the application. | 50 | * @param mainView The main view of the application. |
52 | * @param voTableView The generic view of the VOTable panel. | 51 | * @param voTableView The generic view of the VOTable panel. |
53 | */ | 52 | */ |
54 | - public ResultPanelView(ViewListener viewListener) { | 53 | + public ResultPanelView(ResultPanelListener viewListener) { |
55 | super(); | 54 | super(); |
56 | this.viewListener = viewListener; | 55 | this.viewListener = viewListener; |
57 | buildResultPanel(); | 56 | buildResultPanel(); |