package floobits.dialogs;
import com.intellij.openapi.project.Project;
import floobits.common.API;
import floobits.common.FlooUrl;
import floobits.common.interfaces.IContext;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import java.awt.*;
public class RequestCodeReviewDialog extends CustomButtonDialogWrapper {
protected JPanel container;
public RequestCodeReviewDialog(final FlooUrl flooUrl, final IContext context, Project project) {
super(project, true);
this.setTitle("Request Code Review");
container = new JPanel();
container.setLayout(new BorderLayout());
JLabel infoLabel = new JLabel("Please describe the problem. A human will send you an email.");
final JTextArea description = new JTextArea();
description.setRows(10);
JScrollPane scrollPane = new JScrollPane(description);
container.add(infoLabel, BorderLayout.NORTH);
container.add(scrollPane, BorderLayout.SOUTH);
CustomButtonAction cancel = new CustomButtonAction("Cancel", new Runnable() {
@Override
public void run() {
container.setVisible(false);
}
});
CustomButtonAction requestReviewAction = new CustomButtonAction("Request Review", new Runnable() {
@Override
public void run() {
container.setVisible(false);
String text = description.getText();
String s = API.requestReview(flooUrl, text, context);
context.flashMessage(s);
}
});
actions = new Action[]{requestReviewAction, cancel};
description.addAncestorListener(new AncestorListener() {
@Override
public void ancestorAdded(AncestorEvent ancestorEvent) {
JComponent component = ancestorEvent.getComponent();
component.requestFocusInWindow();
}
@Override
public void ancestorRemoved(AncestorEvent ancestorEvent) {
}
@Override
public void ancestorMoved(AncestorEvent ancestorEvent) {
}
});
init();
}
@Nullable
@Override
public JComponent createCenterPanel() {
return container;
}
}