Skip to content

Commit 3b8a75a

Browse files
committed
Add a quote comment action
1 parent bfd2472 commit 3b8a75a

5 files changed

Lines changed: 58 additions & 3 deletions

File tree

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@
4242
package com.junichi11.netbeans.modules.github.issues.issue;
4343

4444
import com.junichi11.netbeans.modules.github.issues.GitHubIssues;
45+
import com.junichi11.netbeans.modules.github.issues.issue.ui.CommentsPanel;
4546
import com.junichi11.netbeans.modules.github.issues.issue.ui.GitHubIssuePanel;
4647
import com.junichi11.netbeans.modules.github.issues.utils.StringUtils;
4748
import com.junichi11.netbeans.modules.github.issues.utils.UiUtils;
4849
import java.awt.event.ActionEvent;
4950
import java.awt.event.ActionListener;
51+
import java.beans.PropertyChangeEvent;
5052
import java.beans.PropertyChangeListener;
5153
import javax.swing.JComponent;
5254
import javax.swing.SwingUtilities;
@@ -66,7 +68,7 @@
6668
*
6769
* @author junichi11
6870
*/
69-
public class GitHubIssueController implements IssueController, ChangeListener {
71+
public class GitHubIssueController implements IssueController, ChangeListener, PropertyChangeListener {
7072

7173
private GitHubIssuePanel panel;
7274
private String errorMessage;
@@ -126,6 +128,7 @@ private GitHubIssuePanel getPanel() {
126128
panel.addAction(getSubmitIssueAction());
127129
panel.addAction(getCommentAction());
128130
panel.addAction(getCloseReopenAction());
131+
panel.addCommentsChangeListener(this);
129132
}
130133
return panel;
131134
}
@@ -172,6 +175,19 @@ private CloseReopenAction getCloseReopenAction() {
172175
return new CloseReopenAction();
173176
}
174177

178+
@Override
179+
public void propertyChange(PropertyChangeEvent evt) {
180+
switch (evt.getPropertyName()) {
181+
case CommentsPanel.PROP_COMMENT_QUOTE:
182+
GitHubIssuePanel p = getPanel();
183+
String quoteComment = StringUtils.toQuoteComment(p.getQuoteComment()) + "\n"; // NOI18N
184+
p.appendNewComment(quoteComment);
185+
break;
186+
default:
187+
break;
188+
}
189+
}
190+
175191
//~ inner classes
176192
public class SubmitIssueAction implements ActionListener {
177193

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ public CommentPanel(Comment comment) {
7878
// TODO
7979
deleteLinkButton.setEnabled(false);
8080
editLinkButton.setEnabled(false);
81-
quoteLinkButton.setEnabled(false);
8281
}
8382

8483
private void setUserName(String name) {
@@ -127,6 +126,18 @@ public boolean isDeleted() {
127126
return isDeleted;
128127
}
129128

129+
public void setQuoteEnabled(boolean isEnabled) {
130+
quoteLinkButton.setEnabled(isEnabled);
131+
}
132+
133+
public void setEditEnabled(boolean isEnabled) {
134+
editLinkButton.setEnabled(isEnabled);
135+
}
136+
137+
public void setDeleteEnabled(boolean isEnabled) {
138+
deleteLinkButton.setEnabled(isEnabled);
139+
}
140+
130141
void resetProperties() {
131142
isQuote = false;
132143
isEdited = false;

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ public void setText(String text) {
6868
commentWriteTextArea.setText(text);
6969
}
7070

71+
public void appendText(String text) {
72+
StringBuilder sb = new StringBuilder();
73+
String comment = commentWriteTextArea.getText();
74+
sb.append(comment);
75+
sb.append(text);
76+
commentWriteTextArea.setText(sb.toString());
77+
}
78+
7179
public void setEditable(boolean isEditable) {
7280
commentWriteTextArea.setEditable(isEditable);
7381
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public String getQuoteComment() {
121121
}
122122
return selectedText;
123123
}
124-
return null;
124+
return ""; // NOI18N
125125
}
126126

127127
public Comment getDeletedComment() {

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.junichi11.netbeans.modules.github.issues.ui.AttributesListCellRenderer;
5656
import java.awt.Color;
5757
import java.awt.Font;
58+
import java.beans.PropertyChangeListener;
5859
import java.text.DateFormat;
5960
import java.text.SimpleDateFormat;
6061
import java.util.ArrayList;
@@ -395,6 +396,25 @@ public void setNewComment(String comment) {
395396
newCommentTabbedPanel.setText(comment);
396397
}
397398

399+
public void appendNewComment(String comment) {
400+
if (comment == null) {
401+
return;
402+
}
403+
newCommentTabbedPanel.appendText(comment);
404+
}
405+
406+
public String getQuoteComment() {
407+
return commentsPanel.getQuoteComment();
408+
}
409+
410+
public void addCommentsChangeListener(PropertyChangeListener listener) {
411+
commentsPanel.addPropertyChangeListener(listener);
412+
}
413+
414+
public void removeCommentsChangeListener(PropertyChangeListener listener) {
415+
commentsPanel.removePropertyChangeListener(listener);
416+
}
417+
398418
public void setErrorMessage(String errorMessage) {
399419
if (errorMessage == null || errorMessage.trim().isEmpty()) {
400420
errorMessage = ""; // NOI18N

0 commit comments

Comments
 (0)