Skip to content

Commit fec916c

Browse files
committed
Add issue icons
- Opned and Closed icons - Add NEW to GitHugIssueState
1 parent ed5b1f6 commit fec916c

4 files changed

Lines changed: 30 additions & 7 deletions

File tree

src/main/java/com/junichi11/netbeans/modules/github/issues/GitHubIssueState.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
*/
5151
public enum GitHubIssueState {
5252

53+
NEW("new"), // NOI18N
5354
OPEN("open"), // NOI18N
5455
CLOSED("closed"); // NOI18N
5556

@@ -67,6 +68,9 @@ private GitHubIssueState(String state) {
6768
}
6869

6970
public static GitHubIssueState toEnum(String name) {
71+
if (name == null || name.isEmpty()) {
72+
return NEW;
73+
}
7074
return states.get(name);
7175
}
7276

src/main/java/com/junichi11/netbeans/modules/github/issues/issue/ui/GitHubIssuePanel.java

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ public class GitHubIssuePanel extends JPanel {
102102
private final DefaultComboBoxModel<Milestone> milestoneComboBoxModel = new DefaultComboBoxModel<>();
103103
private final DefaultComboBoxModel<User> assigneeComboBoxModel = new DefaultComboBoxModel<>();
104104
private final DefaultListModel<Label> labelsListModel = new DefaultListModel<>();
105+
private static final Icon ISSUE_OPENED_ICON = ImageUtilities.loadImageIcon("com/junichi11/netbeans/modules/github/issues/resources/issue_opened_16.png", true); // NOI18N
106+
private static final Icon ISSUE_CLOSED_ICON = ImageUtilities.loadImageIcon("com/junichi11/netbeans/modules/github/issues/resources/issue_closed_16.png", true); // NOI18N
105107
private static final Icon ERROR_ICON = ImageUtilities.loadImageIcon("com/junichi11/netbeans/modules/github/issues/resources/error_icon_16.png", true); // NOI18N
106108
private static final Icon ICON_32 = ImageUtilities.loadImageIcon("com/junichi11/netbeans/modules/github/issues/resources/icon_32.png", true); // NOI18N
107109
private static final Logger LOGGER = Logger.getLogger(GitHubIssuePanel.class.getName());
@@ -374,11 +376,10 @@ private void setHeader() {
374376
return;
375377
}
376378
boolean isNew = gitHubIssue.isNew();
379+
GitHubIssueState state = GitHubIssueState.NEW;
377380
if (isNew) {
378381
headerNameLabel.setText(Bundle.GitHubIssuePanel_label_header_name_new());
379382
headerSubmitButton.setText(Bundle.GitHubIssuePanel_label_header_submit_button_new());
380-
headerStatusLabel.setText("");
381-
382383
} else {
383384
String summary = gitHubIssue.getSummary();
384385
headerNameLabel.setText(String.format("%s #%s", summary, gitHubIssue.getID())); // NOI18N
@@ -390,15 +391,33 @@ private void setHeader() {
390391
headerSubmitButton.setVisible(gitHubIssue.isEditableUser());
391392
Issue issue = gitHubIssue.getIssue();
392393
if (issue != null) {
393-
GitHubIssueState state = GitHubIssueState.toEnum(issue.getState());
394-
boolean isClosed = state == GitHubIssueState.CLOSED;
394+
state = GitHubIssueState.toEnum(issue.getState());
395+
}
396+
}
397+
setHeaderStatus(state);
398+
}
399+
400+
private void setHeaderStatus(GitHubIssueState status) {
401+
boolean isClosed = status == GitHubIssueState.CLOSED;
402+
switch (status) {
403+
case NEW:
404+
headerStatusLabel.setText(""); // NOI18N
405+
headerStatusLabel.setIcon(null);
406+
headerStatusLabel.setOpaque(false);
407+
headerStatusLabel.setVisible(false);
408+
break;
409+
case OPEN: // no break
410+
case CLOSED:
395411
headerStatusLabel.setText(isClosed ? "Closed" : "Open");
412+
headerStatusLabel.setIcon(isClosed ? ISSUE_CLOSED_ICON : ISSUE_OPENED_ICON);
396413
headerStatusLabel.setBackground(isClosed ? CLOSED_STATE_COLOR : OPEN_STATE_COLOR);
397414
headerStatusLabel.setForeground(Color.WHITE);
398-
}
415+
headerStatusLabel.setOpaque(true);
416+
headerStatusLabel.setVisible(true);
417+
break;
418+
default:
419+
throw new AssertionError();
399420
}
400-
headerStatusLabel.setOpaque(!isNew);
401-
headerStatusLabel.setVisible(!isNew);
402421
}
403422

404423
@NbBundle.Messages({
490 Bytes
Loading
439 Bytes
Loading

0 commit comments

Comments
 (0)