package org.wiztools.restclient.ui.reqetc;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.annotation.PostConstruct;
import javax.swing.*;
import org.wiztools.restclient.bean.CookieVersion;
import org.wiztools.restclient.bean.HTTPVersion;
/**
*
* @author subwiz
*/
public class ReqEtcPanelImpl extends JPanel implements ReqEtcPanel {
// HTTP Version Combo box
private final JComboBox<HTTPVersion> jcb_http_version =
new JComboBox<>(HTTPVersion.values());
// Cookie versions
private final JComboBox<CookieVersion> jcb_cookie_version =
new JComboBox<>(CookieVersion.values());
// Follow redirect
private final JCheckBox jcb_followRedirects = new JCheckBox("Follow HTTP Redirects? ");
// Ignore body
private final JCheckBox jcb_ignoreResponseBody = new JCheckBox("Ignore Response Body? ");
@PostConstruct
protected void init() {
JPanel jp_etc = new JPanel(new GridLayout(3, 1));
{ // Http Version
JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
jp.add(new JLabel("Version: "));
jp.add(jcb_http_version);
jp.add(jcb_cookie_version);
jp_etc.add(jp);
}
{ // Follow Redirect
JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
// Previous version of RESTClient had follow redirects as true.
// To maintain backward compatibility in default behavior:
jcb_followRedirects.setSelected(true);
jcb_followRedirects.setBorder(null);
jp.add(jcb_followRedirects);
jp_etc.add(jp);
}
{ // Ignore response body
JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
jcb_ignoreResponseBody.setBorder(null);
jp.add(jcb_ignoreResponseBody);
jp_etc.add(jp);
}
setLayout(new FlowLayout(FlowLayout.LEFT));
add(jp_etc);
}
@Override
public void clear() {
jcb_http_version.setSelectedItem(HTTPVersion.HTTP_1_1);
jcb_cookie_version.setSelectedItem(CookieVersion.V_1);
jcb_followRedirects.setSelected(true);
jcb_ignoreResponseBody.setSelected(false);
}
@Override
public Component getComponent() {
return this;
}
@Override
public CookieVersion getCookieVersion() {
return (CookieVersion) jcb_cookie_version.getSelectedItem();
}
@Override
public void setCookieVersion(CookieVersion version) {
if(version != null) {
jcb_cookie_version.setSelectedItem(version);
}
}
@Override
public HTTPVersion getHttpVersion() {
return (HTTPVersion) jcb_http_version.getSelectedItem();
}
@Override
public void setHttpVersion(HTTPVersion version) {
jcb_http_version.setSelectedItem(version);
}
@Override
public boolean isFollowRedirects() {
return jcb_followRedirects.isSelected();
}
@Override
public void setFollowRedirects(boolean b) {
jcb_followRedirects.setSelected(b);
}
@Override
public boolean isIgnoreResponseBody() {
return jcb_ignoreResponseBody.isSelected();
}
@Override
public void setIgnoreResponseBody(boolean b) {
jcb_ignoreResponseBody.setSelected(b);
}
}