From 545e48339736468cd45535f16aebc0ab19354ce0 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sun, 23 Oct 2016 09:56:45 +0200 Subject: [PATCH] work on cloud browser --- .../cloud/presenter/CloudPresenter.java | 21 ++ .../src/org/diylc/images/IconLoader.java | 3 +- .../src/org/diylc/images/data_find.png | Bin 0 -> 833 bytes .../src/org/diylc/swing/gui/MainFrame.java | 1 - .../plugins/cloud/view/CloudBrowserFrame.java | 189 +++++++++++++++++- 5 files changed, 209 insertions(+), 5 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/data_find.png diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java index 32a3cd9b..2d857ca2 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java @@ -8,6 +8,7 @@ import java.util.List; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.plugins.cloud.model.ProjectEntity; import org.diylc.plugins.cloud.model.ServiceAPI; import org.diylc.plugins.cloud.model.UserEntity; @@ -226,6 +227,26 @@ public class CloudPresenter { throw new CloudException(res); } + public List search(String criteria, String category, + String sortOrder, int pageNumber, int itemsPerPage) + throws CloudException { + try { + Object res = service.search(criteria, category, "json", pageNumber, + itemsPerPage, sortOrder); + if (res == null) + throw new CloudException("Failed to retreive search results."); + if (res instanceof String) + throw new CloudException(res.toString()); + if (res instanceof List) + return (List) res; + throw new CloudException( + "Unexpected server response received for search results: " + + res.getClass().getName()); + } catch (Exception e) { + throw new CloudException(e); + } + } + private String getMachineId() { if (machineId == null) { try { 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 df271b82..06042a01 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,8 @@ 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"), Find("find.png"), Dashboard("dashboard.png"); + "key_edit.png"), Find("find.png"), Dashboard("dashboard.png"), DataFind( + "data_find.png"); protected String name; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/data_find.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/data_find.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ddfe44f3fa4e0b4e10b14ebd0f90c96003c84d GIT binary patch literal 833 zcmV-H1HSx;P)WdKcSAT=OOa(W;#FfcP9F*iCeF*-0cAS*C2Fffdk6>0zg00(qQO+^RO z2o((`A4$hG&j0`b32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yPcFulppj)jmOLJ z(x8kYkuXvb9IM%^G|>cQrr?k1wzFTJvz?u@^&LUGXm;ZV@Atmn$NN6t^FDkpaKxp^ zciGe9sZS)Lk4z?Gtx`!@B}p<0f{0X#=QxfJZf=GaST^!(Xy~z5nGe8bGfZ@MH|mo~ zfagI9MF>I`nM_v8vT^g)R;0SW|78>f~oM<6I6h+wWb^;dr%fM!{4O*?%8w|t1 zU@#EXQz$JxNyJoOWMqI)*1+j}faT=^EH3Kd^ZAIlJGlb@qHdeZi zSAXv*?sPiQ)N~nd2K!N6U5}EI0>VZMi{->#yOg}8)9GH>yWMUyG}NQ7ub0q2g|n3v z*bW9^wOU{=tHsohX@nw6q^)!EqglCzmbdlw_0eE3SYtAoWW&_g1>AFWAxT^CYkCZ^ zI0xq1T`*S~@&4Th)K#5<$FuliV`J(gwXgj6`1q~0wY68i&t4p>YeBY93wvWTcutV~ zem}m20T20H3Nagc8WPg@GhDzWp^mwWxB)6u{%Vw$#mQtPz3 z>() { + + @Override + public List doInBackground() + throws Exception { + return cloudPresenter + .search(getSearchField().getText(), + getCategoryBox().getSelectedItem() == null ? "" + : getCategoryBox() + .getSelectedItem() + .toString(), + getSortBox().getSelectedItem() == null ? "" + : getSortBox() + .getSelectedItem() + .toString(), + CloudBrowserFrame.this.pageNumber, + CloudBrowserFrame.this.itemsPerPage); + } + + @Override + public void failed(Exception e) { + showMessage( + "Search failed. Error: " + e.getMessage(), + "Search Failed", IView.ERROR_MESSAGE); + } + + @Override + public void complete(List result) { + // TODO Auto-generated method stub + + } + }); + } + }); + } + return goButton; + } + + public void executeBackgroundTask(final ITask task) { + getGlassPane().setVisible(true); + SwingWorker worker = new SwingWorker() { + + @Override + protected T doInBackground() throws Exception { + return task.doInBackground(); + } + + @Override + protected void done() { + try { + T result = get(); + task.complete(result); + } 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); + } + }; + worker.execute(); + } + + public void showMessage(String message, String title, int messageType) { + JOptionPane.showMessageDialog(this, message, title, messageType); + } }