Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add http timeout to config. #353

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 50 additions & 4 deletions src/main/java/com/shuzijun/leetcode/plugin/model/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,45 @@ public class Config {

private List<String> favoriteList;

/**
* 连接超时时间
*/
private Integer httpConnectionTimeout;

/**
* 读取超时时间
*/
private Integer httpReadTimeout;

/**
* 重定向个数
*/
private Integer httpRedirectLimit;

public Integer getHttpConnectionTimeout() {
return httpConnectionTimeout;
}

public void setHttpConnectionTimeout(Integer httpConnectionTimeout) {
this.httpConnectionTimeout = httpConnectionTimeout;
}

public Integer getHttpReadTimeout() {
return httpReadTimeout;
}

public void setHttpReadTimeout(Integer httpReadTimeout) {
this.httpReadTimeout = httpReadTimeout;
}

public Integer getHttpRedirectLimit() {
return httpRedirectLimit;
}

public void setHttpRedirectLimit(Integer httpRedirectLimit) {
this.httpRedirectLimit = httpRedirectLimit;
}

public String getId() {
return id;
}
Expand Down Expand Up @@ -238,6 +277,7 @@ public String getCookie(String user) {
public String getLevelColour() {
return levelColour;
}

@Transient
public Color[] getFormatLevelColour() {
Color[] formatColors = new Color[3];
Expand Down Expand Up @@ -267,9 +307,9 @@ public Color[] getFormatLevelColour() {
}

public void setLevelColour(String levelColour) {
if(levelColour ==null || levelColour.isEmpty()){
if (levelColour == null || levelColour.isEmpty()) {
this.levelColour = Constant.LEVEL_COLOUR;
}else {
} else {
this.levelColour = levelColour;
}
}
Expand Down Expand Up @@ -308,8 +348,8 @@ public void setJcef(Boolean jcef) {
this.jcef = jcef;
}

public boolean isModified(Config config){
if(config ==null){
public boolean isModified(Config config) {
if (config == null) {
return false;
}
if (version != null ? !version.equals(config.version) : config.version != null) return false;
Expand All @@ -328,6 +368,12 @@ public boolean isModified(Config config){
return false;
if (jcef != null ? !jcef.equals(config.jcef) : config.jcef != null)
return false;
if (httpConnectionTimeout != null ? !httpConnectionTimeout.equals(config.httpConnectionTimeout) : config.httpConnectionTimeout != null)
return false;
if (httpReadTimeout != null ? !httpReadTimeout.equals(config.httpReadTimeout) : config.httpReadTimeout != null)
return false;
if (httpRedirectLimit != null ? !httpRedirectLimit.equals(config.httpRedirectLimit) : config.httpRedirectLimit != null)
return false;
return levelColour != null ? levelColour.equals(config.levelColour) : config.levelColour == null;
}

Expand Down
55 changes: 53 additions & 2 deletions src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.form
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.shuzijun.leetcode.plugin.setting.SettingUI">
<grid id="27dc6" binding="mainPanel" layout-manager="GridLayoutManager" row-count="11" column-count="11" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="27dc6" binding="mainPanel" layout-manager="GridLayoutManager" row-count="12" column-count="11" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="10" left="10" bottom="10" right="10"/>
<constraints>
<xy x="20" y="20" width="972" height="750"/>
Expand All @@ -20,7 +20,7 @@
</component>
<vspacer id="75cf7">
<constraints>
<grid row="10" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
<grid row="11" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="d0e55" class="javax.swing.JLabel">
Expand Down Expand Up @@ -337,6 +337,57 @@
<toolTipText value="Version 2020.2+ is supported"/>
</properties>
</component>
<component id="5757b" class="javax.swing.JLabel">
<constraints>
<grid row="10" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="HttpConnectionTimeout:"/>
<toolTipText value="unit: ms"/>
</properties>
</component>
<component id="e5032" class="javax.swing.JFormattedTextField" binding="httpConnectionTimeout">
<constraints>
<grid row="10" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="ac9e4" class="javax.swing.JLabel">
<constraints>
<grid row="10" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="HttpReadTimeout:"/>
<toolTipText value="unit: ms"/>
</properties>
</component>
<component id="bf7ba" class="javax.swing.JFormattedTextField" binding="httpReadTimeout">
<constraints>
<grid row="10" column="4" row-span="1" col-span="3" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
<component id="55a8a" class="javax.swing.JLabel">
<constraints>
<grid row="10" column="7" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="HttpRedirectLimit"/>
<toolTipText value=""/>
</properties>
</component>
<component id="81cb0" class="javax.swing.JFormattedTextField" binding="httpRedirectLimit">
<constraints>
<grid row="10" column="8" row-span="1" col-span="3" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="150" height="-1"/>
</grid>
</constraints>
<properties/>
</component>
</children>
</grid>
</form>
41 changes: 38 additions & 3 deletions src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,18 @@
import com.shuzijun.leetcode.plugin.utils.MTAUtils;
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
import com.shuzijun.leetcode.plugin.utils.URLUtils;
import com.shuzijun.leetcode.plugin.utils.io.HttpRequests;
import com.shuzijun.leetcode.plugin.window.HttpLogin;
import org.apache.commons.lang.StringUtils;

import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.text.DecimalFormat;

/**
* @author shuzijun
Expand All @@ -56,6 +60,9 @@ public class SettingUI {
private JPanel codeTemplate;
private JPanel templateConstant;
private JCheckBox jcefCheckBox;
private JFormattedTextField httpConnectionTimeout;
private JFormattedTextField httpReadTimeout;
private JFormattedTextField httpRedirectLimit;


private Editor fileNameEditor = null;
Expand Down Expand Up @@ -84,10 +91,10 @@ public void initUI() {

customCodeBox.addActionListener(new DonateListener(customCodeBox));
proxyCheckBox.setSelected(HttpConfigurable.getInstance().USE_HTTP_PROXY || HttpConfigurable.getInstance().USE_PROXY_PAC);
proxyCheckBox.addMouseListener(new MouseAdapter(){
proxyCheckBox.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(HttpConfigurable.editConfigurable(mainPanel)){
if (HttpConfigurable.editConfigurable(mainPanel)) {
proxyCheckBox.setSelected(HttpConfigurable.getInstance().USE_HTTP_PROXY || HttpConfigurable.getInstance().USE_PROXY_PAC);
}
}
Expand Down Expand Up @@ -148,7 +155,11 @@ public void mouseClicked(MouseEvent e) {
templateHelpEditorSettings.setLineNumbersShown(false);
templateHelpEditorSettings.setVirtualSpace(false);
templateConstant.add(templateHelpEditor.getComponent(), BorderLayout.CENTER);

NumberFormatter numberFormatter = new NumberFormatter(new DecimalFormat("0"));
DefaultFormatterFactory numberFormatterFactory = new DefaultFormatterFactory(numberFormatter);
httpConnectionTimeout.setFormatterFactory(numberFormatterFactory);
httpReadTimeout.setFormatterFactory(numberFormatterFactory);
httpRedirectLimit.setFormatterFactory(numberFormatterFactory);
loadSetting();
}

Expand Down Expand Up @@ -184,6 +195,21 @@ private void loadSetting() {
hardLabel.setForeground(colors[2]);

jcefCheckBox.setSelected(config.getJcef());
if (config.getHttpConnectionTimeout() == null) {
httpConnectionTimeout.setText(String.valueOf(HttpRequests.CONNECTION_TIMEOUT));
} else {
httpConnectionTimeout.setText(String.valueOf(config.getHttpConnectionTimeout()));
}
if (config.getHttpReadTimeout() == null) {
httpReadTimeout.setText(String.valueOf(HttpRequests.READ_TIMEOUT));
} else {
httpReadTimeout.setText(String.valueOf(config.getHttpReadTimeout()));
}
if (config.getHttpRedirectLimit() == null) {
httpRedirectLimit.setText(String.valueOf(HttpRequests.REDIRECT_LIMIT));
} else {
httpRedirectLimit.setText(String.valueOf(config.getHttpRedirectLimit()));
}
} else {
Color[] colors = new Config().getFormatLevelColour();
easyLabel.setForeground(colors[0]);
Expand All @@ -193,6 +219,9 @@ private void loadSetting() {
fileNameEditor.getDocument().setText(Constant.CUSTOM_FILE_NAME);
templateEditor.getDocument().setText(Constant.CUSTOM_TEMPLATE);
});
httpConnectionTimeout.setText(String.valueOf(HttpRequests.CONNECTION_TIMEOUT));
httpReadTimeout.setText(String.valueOf(HttpRequests.READ_TIMEOUT));
httpRedirectLimit.setText(String.valueOf(HttpRequests.REDIRECT_LIMIT));
}


Expand Down Expand Up @@ -251,6 +280,12 @@ public void process(Config config) {
config.setFormatLevelColour(easyLabel.getForeground(), mediumLabel.getForeground(), hardLabel.getForeground());
config.setEnglishContent(englishContentBox.isSelected());
config.setJcef(jcefCheckBox.isSelected());
try {
config.setHttpConnectionTimeout(Integer.valueOf(httpConnectionTimeout.getText()));
config.setHttpReadTimeout(Integer.valueOf(httpReadTimeout.getText()));
config.setHttpRedirectLimit(Integer.valueOf(httpRedirectLimit.getText()));
} catch (NumberFormatException ignore) {
}
}


Expand Down
Loading