| package org.jetbrains.builtInWebServer; |
| |
| import com.intellij.openapi.options.ConfigurableUi; |
| import com.intellij.ui.PortField; |
| import org.jetbrains.annotations.NotNull; |
| |
| import javax.swing.*; |
| |
| class BuiltInServerConfigurableUi implements ConfigurableUi<BuiltInServerOptions> { |
| private JPanel mainPanel; |
| |
| private PortField builtInServerPort; |
| private JCheckBox builtInServerAvailableExternallyCheckBox; |
| |
| public BuiltInServerConfigurableUi() { |
| builtInServerPort.setMin(1024); |
| } |
| |
| @Override |
| @NotNull |
| public JComponent getComponent() { |
| return mainPanel; |
| } |
| |
| @Override |
| public boolean isModified(@NotNull BuiltInServerOptions settings) { |
| return builtInServerPort.getNumber() != settings.builtInServerPort || |
| builtInServerAvailableExternallyCheckBox.isSelected() != settings.builtInServerAvailableExternally; |
| } |
| |
| @Override |
| public void apply(@NotNull BuiltInServerOptions settings) { |
| boolean builtInServerPortChanged = settings.builtInServerPort != builtInServerPort.getNumber() || settings.builtInServerAvailableExternally != builtInServerAvailableExternallyCheckBox.isSelected(); |
| if (builtInServerPortChanged) { |
| settings.builtInServerPort = builtInServerPort.getNumber(); |
| settings.builtInServerAvailableExternally = builtInServerAvailableExternallyCheckBox.isSelected(); |
| |
| BuiltInServerOptions.onBuiltInServerPortChanged(); |
| } |
| } |
| |
| @Override |
| public void reset(@NotNull BuiltInServerOptions settings) { |
| builtInServerPort.setNumber(settings.builtInServerPort); |
| builtInServerAvailableExternallyCheckBox.setSelected(settings.builtInServerAvailableExternally); |
| } |
| } |