diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java index aaee0234..df271b82 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java @@ -42,7 +42,7 @@ public enum IconLoader { "rotate_ccw.png"), ElementInto("element_into.png"), Arrow( "arrow.png"), Cloud("cloud.png"), CloudUp("cloud_up.png"), CloudGear( "cloud_gear.png"), IdCardEdit("id_card_edit.png"), KeyEdit( - "key_edit.png"); + "key_edit.png"), Find("find.png"), Dashboard("dashboard.png"); protected String name; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/dashboard.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/dashboard.png new file mode 100644 index 00000000..be064034 Binary files /dev/null and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/dashboard.png differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/find.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/find.png new file mode 100644 index 00000000..fd369f12 Binary files /dev/null and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/find.png differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java index ae2b4370..2debd119 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java @@ -16,6 +16,7 @@ import org.diylc.plugins.cloud.presenter.CloudPresenter; import org.diylc.swing.gui.components.OverwritePromptFileChooser; import org.diylc.swing.gui.editor.PropertyEditorDialog; import org.diylc.swing.plugins.cloud.view.ChangePasswordDialog; +import org.diylc.swing.plugins.cloud.view.CloudBrowserFrame; import org.diylc.swing.plugins.cloud.view.LoginDialog; import org.diylc.swing.plugins.cloud.view.UserEditDialog; import org.diylc.swing.plugins.cloud.view.UploadDialog; @@ -152,16 +153,25 @@ public class DialogFactory { return dialog; } - public UploadDialog createUploadDialog(IPlugInPort plugInPort, CloudPresenter cloudPresenter) { - UploadDialog dialog = new UploadDialog(mainFrame, plugInPort, cloudPresenter); + public UploadDialog createUploadDialog(IPlugInPort plugInPort, + CloudPresenter cloudPresenter) { + UploadDialog dialog = new UploadDialog(mainFrame, plugInPort, + cloudPresenter); return dialog; } - + public ChangePasswordDialog createChangePasswordDialog() { ChangePasswordDialog dialog = new ChangePasswordDialog(mainFrame); return dialog; } + public CloudBrowserFrame createCloudBrowserFrame(IPlugInPort plugInPort, + CloudPresenter cloudPresenter) { + CloudBrowserFrame frame = new CloudBrowserFrame(mainFrame, plugInPort, + cloudPresenter); + return frame; + } + public ProgressDialog createProgressDialog(String title, String[] buttonCaptions, String description, boolean useProgress) { ProgressDialog dialog = new ProgressDialog(mainFrame, title, diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index 198c40ef..b1de976c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ExecutionException; import javax.swing.Action; import javax.swing.BoxLayout; @@ -330,8 +331,11 @@ public class MainFrame extends JFrame implements ISwingUI { try { T result = get(); task.complete(result); - } catch (Exception e) { - LOG.error("Task failed", e); + } catch (ExecutionException e) { + LOG.error("Background task execution failed", e); + task.failed(e); + } catch (InterruptedException e) { + LOG.error("Background task execution interrupted", e); task.failed(e); } getGlassPane().setVisible(false); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java index 829f728c..6b245f12 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java @@ -23,6 +23,7 @@ import org.diylc.swing.ISwingUI; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.DummyView; import org.diylc.swing.plugins.cloud.view.ChangePasswordDialog; +import org.diylc.swing.plugins.cloud.view.CloudBrowserFrame; import org.diylc.swing.plugins.cloud.view.LoginDialog; import org.diylc.swing.plugins.cloud.view.UserEditDialog; import org.diylc.swing.plugins.cloud.view.UploadDialog; @@ -186,6 +187,9 @@ public class CloudPlugIn implements IPlugIn, CloudListener { @Override public void actionPerformed(ActionEvent e) { + CloudBrowserFrame frame = DialogFactory.getInstance() + .createCloudBrowserFrame(plugInPort, cloudPresenter); + frame.setVisible(true); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/CloudBrowserFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/CloudBrowserFrame.java new file mode 100644 index 00000000..fdc08863 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/CloudBrowserFrame.java @@ -0,0 +1,80 @@ +package org.diylc.swing.plugins.cloud.view; + +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; + +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; + +import org.diylc.common.IPlugInPort; +import org.diylc.images.IconLoader; +import org.diylc.plugins.cloud.presenter.CloudPresenter; + +public class CloudBrowserFrame extends JFrame { + + private static final long serialVersionUID = 1L; + + private JPanel mainPanel; + private JTabbedPane tabbedPane; + private JPanel dashboardPanel; + private JPanel browsePanel; + + private IPlugInPort plugInPort; + private CloudPresenter cloudPresenter; + + public CloudBrowserFrame(JFrame owner, IPlugInPort plugInPort, + CloudPresenter cloudPresenter) { + super("DIY Cloud Browser"); + this.setIconImage(IconLoader.Cloud.getImage()); + this.setPreferredSize(new Dimension(800, 600)); + this.plugInPort = plugInPort; + this.cloudPresenter = cloudPresenter; + + setContentPane(getMainPanel()); + this.pack(); + this.setLocationRelativeTo(owner); + } + + public JPanel getMainPanel() { + if (mainPanel == null) { + mainPanel = new JPanel(new GridBagLayout()); + GridBagConstraints gbc = new GridBagConstraints(); + gbc.anchor = GridBagConstraints.NORTHWEST; + gbc.insets = new Insets(2, 2, 2, 2); + + gbc.gridx = 0; + gbc.gridy = 0; + gbc.fill = GridBagConstraints.BOTH; + gbc.weightx = 1; + gbc.weighty = 1; + mainPanel.add(getTabbedPane(), gbc); + } + return mainPanel; + } + + private JTabbedPane getTabbedPane() { + if (tabbedPane == null) { + tabbedPane = new JTabbedPane(); + tabbedPane.addTab("Dashboard", IconLoader.Dashboard.getIcon(), getDashboardPanel()); + tabbedPane.addTab("Search For Projects", IconLoader.Find.getIcon(), getBrowsePanel()); + } + return tabbedPane; + } + + private JPanel getDashboardPanel() { + if (dashboardPanel == null) { + dashboardPanel = new JPanel(); + } + return dashboardPanel; + } + + private JPanel getBrowsePanel() { + if (browsePanel == null) { + browsePanel = new JPanel(); + } + return browsePanel; + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/LibraryFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/LibraryFrame.java deleted file mode 100644 index b16d1a35..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/LibraryFrame.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.diylc.swing.plugins.cloud.view; - -import javax.swing.JFrame; - -public class LibraryFrame extends JFrame { - - private static final long serialVersionUID = 1L; - - public LibraryFrame() { - super("Online Library"); - } -}