Skip to content

Commit fcdc231

Browse files
committed
fix: isModified returning true when not modified
1 parent 2331818 commit fcdc231

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

plugin/src/main/java/spp/jetbrains/sourcemarker/settings/PluginConfigurationPanel.java

+13-15
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@
2828
import com.intellij.ui.components.JBScrollPane;
2929
import com.intellij.util.ui.JBUI;
3030
import org.jetbrains.annotations.Nullable;
31+
import spp.protocol.platform.general.Service;
3132

3233
import javax.swing.*;
3334
import java.awt.*;
3435
import java.util.*;
36+
import java.util.List;
3537
import java.util.stream.Collectors;
3638

3739
import static spp.jetbrains.sourcemarker.PluginBundle.message;
38-
import static spp.protocol.SourceServices.Instance.INSTANCE;
3940

4041
public class PluginConfigurationPanel {
4142
private JPanel myWholePanel;
@@ -60,25 +61,19 @@ public class PluginConfigurationPanel {
6061
private SourceMarkerConfig config;
6162
private CertificatePinPanel myCertificatePins;
6263

63-
public PluginConfigurationPanel(SourceMarkerConfig config) {
64+
public PluginConfigurationPanel(SourceMarkerConfig config, List<Service> availableServices) {
6465
this.config = config;
6566
myServiceSettingsPanel.setBorder(IdeBorderFactory.createTitledBorder(message("service_settings")));
6667
myGlobalSettingsPanel.setBorder(IdeBorderFactory.createTitledBorder(message("plugin_settings")));
6768
myPortalSettingsPanel.setBorder(IdeBorderFactory.createTitledBorder(message("portal_settings")));
6869
portalZoomSpinner.setModel(new SpinnerNumberModel(1.0, 0.5, 2.0, 0.1));
6970

70-
if (INSTANCE.getLiveService() != null) {
71-
INSTANCE.getLiveService().getServices().onComplete(it -> {
72-
if (it.succeeded()) {
73-
it.result().forEach(service -> serviceComboBox.addItem(service.getName()));
74-
75-
if (config.getServiceName() != null) {
76-
serviceComboBox.setSelectedItem(config.getServiceName());
77-
}
78-
} else {
79-
it.cause().printStackTrace();
80-
}
81-
});
71+
availableServices.forEach(service -> serviceComboBox.addItem(service.getName()));
72+
if (config.getServiceName() != null) {
73+
if (availableServices.stream().noneMatch(service -> service.getName().equals(config.getServiceName()))) {
74+
serviceComboBox.addItem(config.getServiceName());
75+
}
76+
serviceComboBox.setSelectedItem(config.getServiceName());
8277
}
8378

8479
//todo: shouldn't need to manually update locale text
@@ -110,7 +105,10 @@ public JComponent getContentPane() {
110105
boolean isModified() {
111106
if (config.getOverride()) return false;
112107

113-
if (!Arrays.equals(Arrays.stream(rootSourcePackageTextField.getText().split(",")).filter(s -> !s.isEmpty()).toArray(), config.getRootSourcePackages().toArray())) {
108+
if (!Arrays.equals(
109+
Arrays.stream(rootSourcePackageTextField.getText().split(",")).filter(s -> !s.isEmpty()).toArray(),
110+
config.getRootSourcePackages().stream().filter(s -> !s.isEmpty()).toArray())
111+
) {
114112
return true;
115113
}
116114
if (!Objects.equals(autoResolveEndpointNamesCheckBox.isSelected(), config.getAutoResolveEndpointNames())) {

plugin/src/main/kotlin/spp/jetbrains/sourcemarker/settings/SourceMarkerConfigurable.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ import com.intellij.openapi.options.Configurable
2121
import com.intellij.openapi.project.DumbService
2222
import com.intellij.openapi.project.ProjectManager
2323
import io.vertx.core.json.Json
24+
import io.vertx.kotlin.coroutines.await
2425
import kotlinx.coroutines.runBlocking
2526
import spp.jetbrains.sourcemarker.PluginBundle.message
2627
import spp.jetbrains.sourcemarker.SourceMarkerPlugin
28+
import spp.protocol.SourceServices
2729
import javax.swing.JComponent
2830

2931
/**
@@ -56,7 +58,10 @@ class SourceMarkerConfigurable : Configurable {
5658
override fun createComponent(): JComponent {
5759
if (form == null) {
5860
val config = SourceMarkerPlugin.getConfig(ProjectManager.getInstance().openProjects[0])
59-
form = PluginConfigurationPanel(config)
61+
val availServices = runBlocking {
62+
SourceServices.Instance.liveService?.getServices()?.let { it.await() } ?: emptyList()
63+
}
64+
form = PluginConfigurationPanel(config, availServices)
6065
form!!.applySourceMarkerConfig(config)
6166
}
6267
return form!!.contentPane as JComponent

0 commit comments

Comments
 (0)