add "Allow unsigned requests"
[idea/community.git] / platform / built-in-server / src / org / jetbrains / builtInWebServer / BuiltInServerConfigurableUi.java
1 package org.jetbrains.builtInWebServer;
2
3 import com.intellij.openapi.options.ConfigurableUi;
4 import com.intellij.ui.PortField;
5 import org.jetbrains.annotations.NotNull;
6
7 import javax.swing.*;
8
9 class BuiltInServerConfigurableUi implements ConfigurableUi<BuiltInServerOptions> {
10   private JPanel mainPanel;
11
12   private PortField builtInServerPort;
13   private JCheckBox builtInServerAvailableExternallyCheckBox;
14   private JCheckBox allowUnsignedRequestsCheckBox;
15
16   public BuiltInServerConfigurableUi() {
17     builtInServerPort.setMin(1024);
18   }
19
20   @Override
21   @NotNull
22   public JComponent getComponent() {
23     return mainPanel;
24   }
25
26   @Override
27   public boolean isModified(@NotNull BuiltInServerOptions settings) {
28     return builtInServerPort.getNumber() != settings.builtInServerPort ||
29            builtInServerAvailableExternallyCheckBox.isSelected() != settings.builtInServerAvailableExternally ||
30            allowUnsignedRequestsCheckBox.isSelected() != settings.allowUnsignedRequests;
31   }
32
33   @Override
34   public void apply(@NotNull BuiltInServerOptions settings) {
35     boolean builtInServerPortChanged = settings.builtInServerPort != builtInServerPort.getNumber() || settings.builtInServerAvailableExternally != builtInServerAvailableExternallyCheckBox.isSelected();
36     settings.allowUnsignedRequests = allowUnsignedRequestsCheckBox.isSelected();
37     if (builtInServerPortChanged) {
38       settings.builtInServerPort = builtInServerPort.getNumber();
39       settings.builtInServerAvailableExternally = builtInServerAvailableExternallyCheckBox.isSelected();
40
41       BuiltInServerOptions.onBuiltInServerPortChanged();
42     }
43   }
44
45   @Override
46   public void reset(@NotNull BuiltInServerOptions settings) {
47     builtInServerPort.setNumber(settings.builtInServerPort);
48     builtInServerAvailableExternallyCheckBox.setSelected(settings.builtInServerAvailableExternally);
49   }
50 }