From 3e695a37f0d856e2b27935b85ac3f5282c0a1fe4 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 27 Oct 2016 10:51:18 +0200 Subject: [PATCH] view and download counter added --- .../plugins/cloud/model/ProjectEntity.java | 41 ++++++++----- .../src/org/diylc/images/IconLoader.java | 2 +- .../src/org/diylc/images/download.png | Bin 0 -> 852 bytes .../diylc-swing/src/org/diylc/images/eye.png | Bin 0 -> 789 bytes .../view/browser/ResultsScrollPanel.java | 28 ++++++--- .../diylc-swing/test/org/diylc/TableTest.java | 55 ------------------ 6 files changed, 49 insertions(+), 77 deletions(-) create mode 100644 diylc/diylc-swing/src/org/diylc/images/download.png create mode 100644 diylc/diylc-swing/src/org/diylc/images/eye.png delete mode 100644 diylc/diylc-swing/test/org/diylc/TableTest.java diff --git a/diylc/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java b/diylc/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java index f4d72a6d..4cb04037 100644 --- a/diylc/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java +++ b/diylc/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java @@ -14,13 +14,15 @@ public class ProjectEntity implements Serializable { private String updated; private String thumbnailUrl; private String downloadUrl; + private int viewCount; + private int downloadCount; public ProjectEntity() { super(); } public ProjectEntity(int id, String name, String description, String owner, String category, String updated, - String thumbnailUrl, String downloadUrl) { + String thumbnailUrl, String downloadUrl, int viewCount, int downloadCount) { super(); this.id = id; this.name = name; @@ -30,6 +32,8 @@ public class ProjectEntity implements Serializable { this.updated = updated; this.thumbnailUrl = thumbnailUrl; this.downloadUrl = downloadUrl; + this.viewCount = viewCount; + this.downloadCount = downloadCount; } public int getId() { @@ -96,31 +100,36 @@ public class ProjectEntity implements Serializable { this.downloadUrl = downloadUrl; } - // public Action getDownload() { - // - // Action a = new AbstractAction() { - // - // @Override - // public void actionPerformed(ActionEvent e) { - // JOptionPane.showMessageDialog(null, name); - // } - // }; - // a.putValue(AbstractAction.NAME, "Download"); - // return a; - // } - // + public int getViewCount() { + return viewCount; + } + + public void setViewCount(int viewCount) { + this.viewCount = viewCount; + } + + public int getDownloadCount() { + return downloadCount; + } + + public void setDownloadCount(int downloadCount) { + this.downloadCount = downloadCount; + } + @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((category == null) ? 0 : category.hashCode()); result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + downloadCount; result = prime * result + ((downloadUrl == null) ? 0 : downloadUrl.hashCode()); result = prime * result + id; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((owner == null) ? 0 : owner.hashCode()); result = prime * result + ((thumbnailUrl == null) ? 0 : thumbnailUrl.hashCode()); result = prime * result + ((updated == null) ? 0 : updated.hashCode()); + result = prime * result + viewCount; return result; } @@ -143,6 +152,8 @@ public class ProjectEntity implements Serializable { return false; } else if (!description.equals(other.description)) return false; + if (downloadCount != other.downloadCount) + return false; if (downloadUrl == null) { if (other.downloadUrl != null) return false; @@ -170,6 +181,8 @@ public class ProjectEntity implements Serializable { return false; } else if (!updated.equals(other.updated)) return false; + if (viewCount != other.viewCount) + return false; return true; } diff --git a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java index 0a0ec1d1..50a8eab8 100644 --- a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java @@ -34,7 +34,7 @@ public enum IconLoader { "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"), CloudWait( - "cloud_wait.png"), Spinning("spinning.gif"), Megaphone("megaphone.png"); + "cloud_wait.png"), Spinning("spinning.gif"), Megaphone("megaphone.png"), Download("download.png"), Eye("eye.png"); protected String name; diff --git a/diylc/diylc-swing/src/org/diylc/images/download.png b/diylc/diylc-swing/src/org/diylc/images/download.png new file mode 100644 index 0000000000000000000000000000000000000000..654867442f6dff2e33723fdd0acaa07a6772780f GIT binary patch literal 852 zcmV-a1FQUrP)WdKBJATc-~MrC3kGB7YRATcyLF*7aYL+010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00OK@ zL_t(|+I5pnOcPNM$LDqXv4w`VQrrV6i7_iBepD+bPaaf)F@hIkVmKH*5_>ff<3&RV ziAPU*^-wjzL;($!0wpPd1;eKVm)bN1p}MrYbY-_6>nv`uX>gKXvhTf_+5fzmN1)2? zjRLi#9#1zooOU6TjSCrhefjq0T|C-B)M|fI^~Q^50Ct*kUi3H9-R(D9D7ttRw=W|{ z;1DxcF4*^;0hhVPrz!azq*RU}Rf-x;4=`M3;G9>(BddkhY?KYuq6}|mr-hY;tyju}(o^*N zg%tDvswzQ2YL!pA>#b*8b_XWch=nE)nu%%4kss6Q6Kx&~*hRme1xr=Z|1tZQ5|ZJi3m;CG^`i%J^48C=`0lvg|cc6zQe;C74J=A=ME9 zenZsmc!K1i|B<$%2rxT0tBj3}h5P&a^|lJSihTuykQ+XqkG5K^z<=j~kr@!@JaAp? zA{}%m?3N@_Q(HqE4hM}tX~&SZa$EPipsH#%LzJ{#F= zmNzb+9CQJ*f8crELeuowKpWdKHUAU7aSYjhwoFfcVBF)=zcI65>lAS*C2Ffd&Nj*S2S00(qQO+^RR z1s4r60iQBLZ~y=R32;bRa{vGf5dZ)S5dnW>Uy%R+00d`2O+f$vv5yPr!#3fbcDKv1u;m7b&~u=6s*$<@>zneSu>h z=7@L7kqS&rO|e$1HBhgMejVVHB#9{t!e+5pS_%e(%Onwq#-Rn~=H{-~YPH8*j?Uhm z?o)`Dnjut0^yu?QrP4~8=hx!#`2CrgnI)1}2wC;%HFJ>TxMyR5QR_+95FW)_uu?GN zU7o|zo(*HeeavvL%~2{y%s&KQhF+*{7$+8Hy> zHT}Zc+m|R=-FUUtz#U%)`uqFz*=*KdE|<5`>GY-=NhgZpgFqm#ALZLl4Xwszv`bka z^%c6$^DsqcQP(x$^@acoXTrq9M3dL+y+v{l(aKV8iHd+_St!(NGZlC;8wS7p91N9h z2nEW?Ky1iRWO-jF%d&yYXNm8+WHK2Hg+dMLI6R#OS{ryCSqY>L5V~nAGQ85`e-z|ZLwGcp64$)I_$a&&J%c(l3?=qVHmiK?P3EDhk>?g z2BGi^IUEkpudlCDMywD&)$H`kVILV8ne_R5w>^Uc1I`{7Hbl$*vri)nKDmKUt6vh4 z#l`oTOeRPA4;sG@=71$^gm-9Y(C=_`xy@XgjWRRY+-@O}NbHhPR1_senpGl3>=4r5 zlc>JLM065PqMP8fVcR2kBB>cm2NQYNE~w2h5-mit_D$3VM@9OdW%}nr9qar7l9T>Z T=^f6100000NkvXXu0mjfnX+I= literal 0 HcmV?d00001 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 d247395e..60a4e141 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 @@ -101,7 +101,7 @@ public class ResultsScrollPanel extends JScrollPane { gbc.fill = GridBagConstraints.BOTH; gbc.weightx = 100; gbc.weighty = 100; - gbc.gridwidth = 2; + gbc.gridwidth = 4; resultsPanel.add(getLoadMoreLabel(), gbc); gbc.gridx = 2; @@ -179,6 +179,13 @@ public class ResultsScrollPanel extends JScrollPane { descriptionArea.setEnabled(false); // descriptionArea.setDisabledTextColor(descriptionArea.getSelectionColor()); + JLabel viewLabel = + new JLabel(Integer.toString(project.getViewCount()), IconLoader.Eye.getIcon(), SwingConstants.LEFT); + viewLabel.setToolTipText("View count"); + JLabel downloadLabel = + new JLabel(Integer.toString(project.getDownloadCount()), IconLoader.Download.getIcon(), SwingConstants.LEFT); + downloadLabel.setToolTipText("Download count"); + JLabel categoryLabel = new JLabel("Category: " + project.getCategory() + ""); JLabel authorLabel = new JLabel("Author: " + project.getOwner() + ""); JLabel updatedLabel = new JLabel("Last updated: " + project.getUpdated() + ""); @@ -260,30 +267,37 @@ public class ResultsScrollPanel extends JScrollPane { getResultsPanel().add(thumbnailLabel, gbc); gbc.gridheight = 1; - gbc.gridx = 1; - gbc.weightx = 1; + gbc.gridx++; + gbc.weightx = 1000; gbc.insets = new Insets(2, 6, 2, 2); getResultsPanel().add(nameLabel, gbc); + gbc.gridx++; + gbc.weightx = 0; + getResultsPanel().add(viewLabel, gbc); + + gbc.gridx++; + getResultsPanel().add(downloadLabel, gbc); + gbc.gridy++; gbc.gridx = 1; gbc.weighty = 1; gbc.weightx = 1; - gbc.gridwidth = 2; + gbc.gridwidth = 4; gbc.anchor = GridBagConstraints.NORTHWEST; gbc.fill = GridBagConstraints.BOTH; gbc.insets = new Insets(2, 6, 2, 2); getResultsPanel().add(descriptionArea, gbc); gbc.gridy++; - gbc.gridx = 1; gbc.gridwidth = 1; gbc.fill = GridBagConstraints.NONE; gbc.weighty = 0; getResultsPanel().add(categoryLabel, gbc); - gbc.gridx = 2; + gbc.gridx++; gbc.gridheight = 3; + gbc.gridwidth = 2; gbc.insets = new Insets(2, 2, 2, 2); gbc.anchor = GridBagConstraints.SOUTHEAST; getResultsPanel().add(downloadButton, gbc); @@ -300,7 +314,7 @@ public class ResultsScrollPanel extends JScrollPane { gbc.gridx = 0; gbc.gridy++; - gbc.gridwidth = 3; + gbc.gridwidth = 5; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1; gbc.insets = new Insets(2, 2, 2, 2); diff --git a/diylc/diylc-swing/test/org/diylc/TableTest.java b/diylc/diylc-swing/test/org/diylc/TableTest.java deleted file mode 100644 index 58c77aa5..00000000 --- a/diylc/diylc-swing/test/org/diylc/TableTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.diylc; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.Icon; -import javax.swing.JFrame; -import javax.swing.JScrollPane; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.plugins.cloud.model.ProjectEntity; -import org.diylc.swingframework.objecttable.IActionProcessor; -import org.diylc.swingframework.objecttable.ObjectListTable; - -public class TableTest { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - - List projects = new ArrayList(); - projects.add(new ProjectEntity(1, "first", "some text", "bane", "none", "", "", "")); - projects.add(new ProjectEntity(2, "second", "anoter text", "bisera", "none", "", "", "")); - - ObjectListTable t = - new ObjectListTable(ProjectEntity.class, new String[] {"getName", "getDescription", - "getCategory", "getOwner", "action:Download"}, new IActionProcessor() { - - @Override - public void actionExecuted(ProjectEntity value, String actionColumnName) { - System.out.println("row clicked: " + actionColumnName + " - " + value); - } - - @Override - public Icon getActionIcon(String actionColumnName) { - return null; - } - - @Override - public String getActionLabel(String actionColumnName) { - return "get me"; - } - }); - t.setData(projects); - JFrame f = new JFrame(); - f.add(new JScrollPane(t)); - f.pack(); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - f.setVisible(true); - } - -}