Commit 49cc21eafbf1267592be0d31fe5b08ace8c434e2

Authored by Nathanael Jourdane
1 parent 857e4845
Exists in master

Use a status bar to display message while sending/parsing the query.

src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainpanel/MainPanelCtrl.java
... ... @@ -69,13 +69,9 @@ public class MainPanelCtrl extends EpnTapController implements MainPanelListener
69 69 JOptionPane.showMessageDialog(view, e.getMessage(), message, JOptionPane.ERROR_MESSAGE);
70 70 }
71 71  
72   - /*
73   - * @see
74   - * eu.omp.irap.vespa.epntapclient.gui.mainpanel.MainPanelListener#displayInfo(java.lang.String)
75   - */
76 72 @Override
77 73 public void displayInfo(String message) {
78   - view.getResultsPanel().getStatusBar().setText(message);
  74 + view.getResultsPanel().setStatusBarText(message);
79 75 }
80 76  
81 77 /**
... ...
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainpanel/MainPanelListener.java
... ... @@ -30,6 +30,13 @@ public interface MainPanelListener {
30 30 void displayError(String message, Exception e);
31 31  
32 32 /**
  33 + * Display an informative message in the status bar.
  34 + *
  35 + * @param message The message to display.
  36 + */
  37 + void displayInfo(String message);
  38 +
  39 + /**
33 40 * Ask the main panel to send the query.
34 41 */
35 42 void sendQuery();
... ...
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelCtrl.java
... ... @@ -44,7 +44,7 @@ public class ResultPanelCtrl extends VOTableController implements ResultPanelLis
44 44  
45 45 /**
46 46 * Constructor of ResultPanelCtrl.
47   - *
  47 + *
48 48 * @param listener The listener of the main panel.
49 49 */
50 50 public ResultPanelCtrl(MainPanelListener listener) {
... ... @@ -52,6 +52,12 @@ public class ResultPanelCtrl extends VOTableController implements ResultPanelLis
52 52 view = new ResultPanelView(this);
53 53 }
54 54  
  55 + @Override
  56 + public void displayInfo(String shortMessage, String detailledMessage) {
  57 + super.displayInfo(shortMessage, detailledMessage);
  58 + listener.displayInfo(shortMessage);
  59 + }
  60 +
55 61 /**
56 62 * @return The view of the result panel. Used in MainPanelCtrl to add panels in the main window.
57 63 */
... ...
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelView.java
... ... @@ -38,8 +38,8 @@ public class ResultPanelView extends VOTableView {
38 38 /** The GUI element of the button to save the result of the query. */
39 39 private JButton fileButton;
40 40  
41   - /** A label to display several informations (aka. status bar). */
42   - private JLabel infoLabel;
  41 + /** A status bar, to display several informative messages. */
  42 + private JLabel statusBar;
43 43  
44 44 /** The listener of the result panel. */
45 45 ResultPanelListener listener;
... ... @@ -61,12 +61,12 @@ public class ResultPanelView extends VOTableView {
61 61 * Build the panel and add graphical elements to it.
62 62 */
63 63 public void buildResultPanel() {
64   - JPanel statusBar = new JPanel();
65   - statusBar.setLayout(new BorderLayout());
66   - statusBar.add(getInfoLabel());
67   - statusBar.add(getFileButton(), BorderLayout.EAST);
  64 + JPanel bottomBar = new JPanel();
  65 + bottomBar.setLayout(new BorderLayout());
  66 + bottomBar.add(getStatusBar(), BorderLayout.CENTER);
  67 + bottomBar.add(getFileButton(), BorderLayout.EAST);
68 68  
69   - add(statusBar, BorderLayout.SOUTH);
  69 + add(bottomBar, BorderLayout.SOUTH);
70 70 }
71 71  
72 72 /**
... ... @@ -91,19 +91,22 @@ public class ResultPanelView extends VOTableView {
91 91 }
92 92  
93 93 /**
94   - * Returns the info label, create it if doesn't exist.
  94 + * Returns the status bar, create it if doesn't exist.
95 95 *
96   - * @return The info label.
  96 + * @return The status bar.
97 97 */
98   - public JLabel getInfoLabel() {
99   - return infoLabel == null ? new JLabel() : infoLabel;
  98 + public JLabel getStatusBar() {
  99 + if (statusBar == null) {
  100 + statusBar = new JLabel("");
  101 + }
  102 + return statusBar;
100 103 }
101 104  
102 105 /**
103 106 * @param infoText The text to display in the status-bar, which will override the old one.
104 107 */
105   - public void setInfoText(String infoText) {
106   - infoLabel.setText(infoText);
  108 + public void setStatusBarText(String infoText) {
  109 + getStatusBar().setText(infoText);
107 110 }
108 111  
109 112 }
... ...
src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java
... ... @@ -58,6 +58,12 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane
58 58 view = new ServicesPanelView(this);
59 59 }
60 60  
  61 + @Override
  62 + public void displayInfo(String message) {
  63 + super.displayInfo(message);
  64 + listener.displayInfo(message);
  65 + }
  66 +
61 67 /**
62 68 * @return The list of services target Urls selected by the user on the service panel.
63 69 */
... ... @@ -78,12 +84,12 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane
78 84 List<String> newTablesNames = new ArrayList<>();
79 85 List<String> newServicesUrls = new ArrayList<>();
80 86  
81   - int idxServiceUrl = view.getTable().getColumn("access_url").getModelIndex();
82 87 int idxTableName = view.getTable().getColumn("table_name").getModelIndex();
  88 + int idxServiceUrl = view.getTable().getColumn("access_url").getModelIndex();
83 89  
84 90 for (int row : view.getSelectedRows()) {
85   - newTablesNames.add((String) view.getValueAt(idxServiceUrl, row));
86   - newServicesUrls.add((String) view.getValueAt(idxTableName, row));
  91 + newTablesNames.add((String) view.getValueAt(idxTableName, row));
  92 + newServicesUrls.add((String) view.getValueAt(idxServiceUrl, row));
87 93 }
88 94 services.updateSelectedServices(newTablesNames, newServicesUrls);
89 95 listener.updateQuery();
... ...