From a01d4ef5d59afb6467f36be546fe3758b006d4c0 Mon Sep 17 00:00:00 2001 From: Akarshit Wal Date: Sat, 15 Aug 2015 11:11:27 +0530 Subject: [PATCH] Sorting by author name --- .../app/contrib/ContributionListPanel.java | 50 ++++++++++++------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/app/src/processing/app/contrib/ContributionListPanel.java b/app/src/processing/app/contrib/ContributionListPanel.java index 865e11bd6..85056f2cb 100644 --- a/app/src/processing/app/contrib/ContributionListPanel.java +++ b/app/src/processing/app/contrib/ContributionListPanel.java @@ -136,8 +136,16 @@ public class ContributionListPanel extends JPanel implements Scrollable, Contrib TableRowSorter sorter = new TableRowSorter(table.getModel()); table.setRowSorter(sorter); sorter.setComparator(1, contribListing.getComparator()); + sorter.setComparator(2, new Comparator() { + + @Override + public int compare(Contribution o1, Contribution o2) { + return getAuthorNameWithoutMarkup(o1.getAuthorList()) + .compareTo(getAuthorNameWithoutMarkup(o2.getAuthorList())); + } + }); sorter.setSortable(0, false); - sorter.setSortable(2, false); + sorter.setSortable(2, true); table.getTableHeader().setDefaultRenderer(new MyColumnHeaderRenderer()); GroupLayout layout = new GroupLayout(this); @@ -314,24 +322,8 @@ public class ContributionListPanel extends JPanel implements Scrollable, Contrib label = new JLabel( contribution.isSpecial() ? Toolkit .getLibIcon("icons/pde-16.png") : null); - StringBuilder name = new StringBuilder(""); String authorList = contribution.getAuthorList(); - if (authorList != null) { - for (int i = 0; i < authorList.length(); i++) { - - if (authorList.charAt(i) == '[' || authorList.charAt(i) == ']') { - continue; - } - if (authorList.charAt(i) == '(') { - i++; - while (authorList.charAt(i) != ')') { - i++; - } - } else { - name.append(authorList.charAt(i)); - } - } - } + String name = getAuthorNameWithoutMarkup(authorList); label.setText(name.toString()); label.setHorizontalAlignment(SwingConstants.LEFT); if(!contribution.isCompatible(Base.getRevision())){ @@ -347,7 +339,6 @@ public class ContributionListPanel extends JPanel implements Scrollable, Contrib } return label; } - } private class MyTableModel extends DefaultTableModel{ MyTableModel() { @@ -362,6 +353,27 @@ public class ContributionListPanel extends JPanel implements Scrollable, Contrib return Contribution.class; } } + + String getAuthorNameWithoutMarkup(String authorList) { + StringBuilder name = new StringBuilder(""); + if (authorList != null) { + for (int i = 0; i < authorList.length(); i++) { + + if (authorList.charAt(i) == '[' || authorList.charAt(i) == ']') { + continue; + } + if (authorList.charAt(i) == '(') { + i++; + while (authorList.charAt(i) != ')') { + i++; + } + } else { + name.append(authorList.charAt(i)); + } + } + } + return name.toString(); + } void updatePanelOrdering(Set contributionsSet) { /* int row = 0;