diff --git a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java index 6bf6f5f8..3337a053 100644 --- a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java @@ -33,7 +33,8 @@ public enum IconLoader { "arrow.png"), Cloud("cloud.png"), CloudUp("cloud_up.png"), CloudGear("cloud_gear.png"), IdCardEdit( "id_card_edit.png"), KeyEdit("key_edit.png"), Find("find.png"), Dashboard("dashboard.png"), DataFind( "data_find.png"), CloudDownload("cloud-download.png"), NavLeftBlue("nav_left_blue.png"), NavRightBlue( - "nav_right_blue.png"), MissingImage("missing_image.png"), CloudBg("cloud_bg.png"), CloudBig("cloud_big.png"); + "nav_right_blue.png"), MissingImage("missing_image.png"), CloudBg("cloud_bg.png"), CloudBig("cloud_big.png"), CloudWait( + "cloud_wait.png"), Spinning("spinning.gif"); protected String name; diff --git a/diylc/diylc-swing/src/org/diylc/images/cloud_wait.png b/diylc/diylc-swing/src/org/diylc/images/cloud_wait.png new file mode 100644 index 00000000..16a60537 Binary files /dev/null and b/diylc/diylc-swing/src/org/diylc/images/cloud_wait.png differ diff --git a/diylc/diylc-swing/src/org/diylc/images/spinning.gif b/diylc/diylc-swing/src/org/diylc/images/spinning.gif new file mode 100644 index 00000000..704b875f Binary files /dev/null and b/diylc/diylc-swing/src/org/diylc/images/spinning.gif differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java index ec248635..d31c48b3 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/ResultsScrollPanel.java @@ -66,6 +66,8 @@ public class ResultsScrollPanel extends JScrollPane { private boolean armed; private PagingProvider provider; + private Icon spinnerIcon = IconLoader.Spinning.getIcon(); + public ResultsScrollPanel(ISwingUI mainUI, CloudBrowserFrame cloudUI, IPlugInPort plugInPort, PagingProvider provider) { super(); this.mainUI = mainUI; @@ -109,6 +111,8 @@ public class ResultsScrollPanel extends JScrollPane { gbc.weightx = 1; gbc.weighty = Integer.MAX_VALUE; getResultsPanel().add(label, gbc); + getLoadMoreLabel().setText(""); + getLoadMoreLabel().setIcon(null); } public void addData(List projects) { @@ -121,9 +125,14 @@ public class ResultsScrollPanel extends JScrollPane { this.currentLocation++; } armed = true; + if (provider.hasMoreData()) { + getLoadMoreLabel().setText("Querying the cloud for more results..."); + getLoadMoreLabel().setIcon(spinnerIcon); + } else { + getLoadMoreLabel().setText("No more results."); + getLoadMoreLabel().setIcon(null); + } } - - getLoadMoreLabel().setText(provider.hasMoreData() ? "Loading more data..." : ""); } private JComponent addProjectToDisplay(final ProjectEntity project) { @@ -290,10 +299,7 @@ public class ResultsScrollPanel extends JScrollPane { protected void done() { try { List newResults = get(); - if (newResults != null && !newResults.isEmpty()) - addData(newResults); - else - getLoadMoreLabel().setText(""); + addData(newResults); } catch (Exception e) { cloudUI.showMessage("Search failed! Detailed message is in the logs. Please report to the author.", "Search Failed", IView.ERROR_MESSAGE); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/SimpleCloudGlassPane.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/SimpleCloudGlassPane.java index c3413530..e737a632 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/SimpleCloudGlassPane.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/browser/SimpleCloudGlassPane.java @@ -37,20 +37,20 @@ public class SimpleCloudGlassPane extends JPanel implements MouseListener, KeyLi GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; - gbc.anchor = GridBagConstraints.LAST_LINE_START; + gbc.anchor = GridBagConstraints.CENTER; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1; gbc.weighty = 1; - JLabel cloudLabel = new JLabel(IconLoader.CloudBig.getIcon()); + JLabel cloudLabel = new JLabel(IconLoader.CloudWait.getIcon()); cloudLabel.setHorizontalAlignment(SwingConstants.CENTER); add(cloudLabel, gbc); - - gbc.gridy = 1; - gbc.weighty = 1.5; - gbc.anchor = GridBagConstraints.FIRST_LINE_START; - JLabel label = new JLabel("Querying the cloud..."); - label.setHorizontalAlignment(SwingConstants.CENTER); - add(label, gbc); +// +// gbc.gridy = 1; +// gbc.weighty = 1.5; +// gbc.anchor = GridBagConstraints.FIRST_LINE_START; +// JLabel label = new JLabel("Querying the cloud..."); +// label.setHorizontalAlignment(SwingConstants.CENTER); +// add(label, gbc); } @Override