Pārlūkot izejas kodu

Convert ErrorPopup to use MultiSet

pull/354/head
Greg Holmes 9 gadus atpakaļ
vecāks
revīzija
176943b039

+ 24
- 43
ui_swing/src/com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.java Parādīt failu

@@ -28,8 +28,7 @@ import com.dmdirc.logger.ErrorReportStatus;
28 28
 import com.dmdirc.ui.core.errors.CoreErrorsDialogModel;
29 29
 import com.dmdirc.ui.core.errors.DisplayableError;
30 30
 
31
-import com.google.common.collect.HashMultimap;
32
-import com.google.common.collect.Multimap;
31
+import com.google.common.collect.HashMultiset;
33 32
 
34 33
 import java.awt.Font;
35 34
 import java.awt.Window;
@@ -76,52 +75,34 @@ public class ErrorPopup extends StatusbarPopupWindow {
76 75
     @Override
77 76
     protected void initContent(final JPanel panel) {
78 77
         final Set<DisplayableError> errors = model.getErrors();
79
-        final Multimap<ErrorLevel, DisplayableError> buckets = HashMultimap.create();
80
-        final Multimap<ErrorReportStatus, DisplayableError> statuses = HashMultimap.create();
81
-
82
-        for (final DisplayableError error : errors) {
83
-            buckets.put(error.getSeverity(), error);
84
-            statuses.put(error.getReportStatus(), error);
85
-        }
86
-
87
-        JLabel header = new JLabel("Severity");
88
-        header.setFont(header.getFont().deriveFont(Font.BOLD));
89
-        panel.add(header);
90
-
91
-        header = new JLabel("#", SwingConstants.RIGHT);
92
-        header.setFont(header.getFont().deriveFont(Font.BOLD));
93
-        panel.add(header, "growx, pushx, wrap");
94
-
95
-        for (final ErrorLevel level : ErrorLevel.values()) {
96
-            if (buckets.containsKey(level)) {
97
-                final int count = buckets.get(level).size();
98
-
99
-                panel.add(new JLabel(level.toString(), iconManager.getIcon(
100
-                        level.getIcon()), SwingConstants.LEFT));
101
-                panel.add(new JLabel(String.valueOf(count), SwingConstants.RIGHT),
102
-                        "growx, pushx, wrap");
103
-            }
104
-        }
78
+        final HashMultiset<ErrorLevel> severities = HashMultiset.create();
79
+        final HashMultiset<ErrorReportStatus> statuses = HashMultiset.create();
80
+        errors.stream().map(DisplayableError::getSeverity).forEach(severities::add);
81
+        errors.stream().map(DisplayableError::getReportStatus).forEach(statuses::add);
82
+
83
+        panel.add(buildLabel("Severity", SwingConstants.LEFT));
84
+        panel.add(buildLabel("#", SwingConstants.RIGHT), "growx, pushx, wrap");
85
+        severities.elementSet().forEach(s -> {
86
+            panel.add(new JLabel(s.toString(), iconManager.getIcon(s.getIcon()), SwingConstants.LEFT));
87
+            panel.add(new JLabel(String.valueOf(severities.count(s)), SwingConstants.RIGHT),
88
+                    "growx, pushx, wrap");
89
+        });
105 90
 
106 91
         panel.add(new JSeparator(), "span, growx, pushx, wrap");
107 92
 
108
-        header = new JLabel("Report status");
109
-        header.setFont(header.getFont().deriveFont(Font.BOLD));
110
-        panel.add(header);
93
+        panel.add(buildLabel("Report status", SwingConstants.LEFT));
94
+        panel.add(buildLabel("#", SwingConstants.RIGHT), "growx, pushx, wrap");
95
+        statuses.elementSet().forEach(s -> {
96
+            panel.add(new JLabel(s.toString(), SwingConstants.LEFT));
97
+            panel.add(new JLabel(String.valueOf(statuses.count(s)), SwingConstants.RIGHT),
98
+                    "growx, pushx, wrap");
99
+        });
100
+    }
111 101
 
112
-        header = new JLabel("#", SwingConstants.RIGHT);
102
+    private JLabel buildLabel(final String text, final int constant) {
103
+        final JLabel header = new JLabel(text, constant);
113 104
         header.setFont(header.getFont().deriveFont(Font.BOLD));
114
-        panel.add(header, "growx, pushx, wrap");
115
-
116
-        for (final ErrorReportStatus status : ErrorReportStatus.values()) {
117
-            if (statuses.containsKey(status)) {
118
-                final int count = statuses.get(status).size();
119
-
120
-                panel.add(new JLabel(status.toString(), SwingConstants.LEFT));
121
-                panel.add(new JLabel(String.valueOf(count), SwingConstants.RIGHT),
122
-                        "growx, pushx, wrap");
123
-            }
124
-        }
105
+        return header;
125 106
     }
126 107
 
127 108
 }

Notiek ielāde…
Atcelt
Saglabāt