IDEA-131201 github tasks: allow to specify, whether to load all issues or assigned...
[idea/community.git] / plugins / github / src / org / jetbrains / plugins / github / tasks / GithubRepositoryEditor.java
index d826763e1667277241fd67869b5f3aa49f8c61ba..e3b9c6c7d40e1242406d9589b649659174643ea6 100644 (file)
@@ -5,6 +5,7 @@ import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.tasks.config.BaseRepositoryEditor;
 import com.intellij.ui.DocumentAdapter;
+import com.intellij.ui.components.JBCheckBox;
 import com.intellij.ui.components.JBLabel;
 import com.intellij.ui.components.JBTextField;
 import com.intellij.util.Consumer;
@@ -34,6 +35,7 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
   private MyTextField myRepoAuthor;
   private MyTextField myRepoName;
   private MyTextField myToken;
+  private JBCheckBox myAssignedIssuesOnly;
   private JButton myTokenButton;
   private JBLabel myHostLabel;
   private JBLabel myRepositoryLabel;
@@ -51,6 +53,8 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
     myRepoAuthor.setText(repository.getRepoAuthor());
     myRepoName.setText(repository.getRepoName());
     myToken.setText(repository.getToken());
+    myToken.setText(repository.getToken());
+    myAssignedIssuesOnly.setSelected(repository.isAssignedIssuesOnly());
 
     DocumentListener buttonUpdater = new DocumentAdapter() {
       @Override
@@ -100,12 +104,20 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
     myTokenPanel.add(myToken, BorderLayout.CENTER);
     myTokenPanel.add(myTokenButton, BorderLayout.EAST);
 
+    myAssignedIssuesOnly = new JBCheckBox("Assigned Issues Only");
+
     installListener(myRepoAuthor);
     installListener(myRepoName);
     installListener(myToken);
-
-    return FormBuilder.createFormBuilder().setAlignLabelOnRight(true).addLabeledComponent(myHostLabel, myHostPanel)
-      .addLabeledComponent(myRepositoryLabel, myRepoPanel).addLabeledComponent(myTokenLabel, myTokenPanel).getPanel();
+    installListener(myAssignedIssuesOnly);
+
+    return FormBuilder.createFormBuilder()
+      .setAlignLabelOnRight(true)
+      .addLabeledComponent(myHostLabel, myHostPanel)
+      .addLabeledComponent(myRepositoryLabel, myRepoPanel)
+      .addLabeledComponent(myTokenLabel, myTokenPanel)
+      .addComponent(myAssignedIssuesOnly)
+      .getPanel();
   }
 
   @Override
@@ -113,6 +125,7 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
     myRepository.setRepoName(getRepoName());
     myRepository.setRepoAuthor(getRepoAuthor());
     myRepository.setToken(getToken());
+    myRepository.setAssignedIssuesOnly(isAssignedIssuesOnly());
     super.apply();
   }
 
@@ -149,6 +162,7 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
     myHostLabel.setAnchor(anchor);
     myRepositoryLabel.setAnchor(anchor);
     myTokenLabel.setAnchor(anchor);
+    myAssignedIssuesOnly.setAnchor(anchor);
   }
 
   private void updateTokenButton() {
@@ -182,6 +196,10 @@ public class GithubRepositoryEditor extends BaseRepositoryEditor<GithubRepositor
     return myToken.getText().trim();
   }
 
+  private boolean isAssignedIssuesOnly() {
+    return myAssignedIssuesOnly.isSelected();
+  }
+
   public static class MyTextField extends JBTextField {
     private int myWidth = -1;