Skip to content

Commit

Permalink
Attempt an (unsuccessful) fix for #233.
Browse files Browse the repository at this point in the history
  • Loading branch information
groboclown committed Mar 22, 2022
1 parent e3afa28 commit 746b41a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,15 @@
import com.intellij.openapi.ui.popup.util.BaseListPopupStep;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.Consumer;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import net.groboclown.p4.server.api.config.part.ConfigPart;
import net.groboclown.p4plugin.P4Bundle;
import net.groboclown.p4plugin.ui.SwingUtil;
import net.groboclown.p4plugin.modules.clientconfig.view.part.ClientNamePartUI;
import net.groboclown.p4plugin.modules.clientconfig.view.part.EnvPartUI;
import net.groboclown.p4plugin.modules.clientconfig.view.part.FilePartUI;
import net.groboclown.p4plugin.modules.clientconfig.view.part.PropertiesPartUI;
import net.groboclown.p4plugin.modules.clientconfig.view.part.RequirePasswordPartUI;
import net.groboclown.p4plugin.modules.clientconfig.view.part.ServerFingerprintPartUI;
import net.groboclown.p4plugin.ui.SwingUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

Expand Down Expand Up @@ -109,7 +107,8 @@ List<ConfigPart> getParts() {

boolean isModified(@Nullable List<ConfigPart> configParts) {
if (configParts == null) {
configParts = List.of();
// Not registered, which means it's different.
return true;
}
List<ConfigPart> pendingParts = getParts();
if (pendingParts.size() != configParts.size()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
import com.intellij.ui.components.JBList;
import com.intellij.util.ui.AsyncProcessIcon;
import com.intellij.util.ui.UIUtil;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import net.groboclown.p4.server.api.config.ClientConfig;
import net.groboclown.p4.server.api.config.ConfigProblem;
import net.groboclown.p4.server.api.config.ConfigPropertiesUtil;
Expand Down Expand Up @@ -106,7 +104,7 @@ void setConfigParts(@Nullable List<ConfigPart> parts) {
myConfigPartStack.setParts(parts);
}

boolean isModified(List<ConfigPart> configParts) {
boolean isModified(@Nullable List<ConfigPart> configParts) {
return myConfigPartStack.isModified(configParts);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ public boolean isModified() {
@Override
public void apply()
throws ConfigurationException {
// Bug #233
// There's something going on, either on the isModified call, or
// that something else isn't being handled here, where the first time the
// root is created, the settings list isn't persisted.

if (panel == null || controller == null) {
return;
}

Collection<ConfigProblem> problems = null;
if (isModified()) {
LOG.info("Updating root configuration for " + vcsRoot);
Expand Down Expand Up @@ -118,6 +127,9 @@ public void apply()

@Override
public void reset() {
if (panel == null || controller == null) {
return;
}
List<ConfigPart> parts = loadPartsFromSettings();
panel.setConfigParts(parts);
controller.refreshConfigConnection();
Expand All @@ -132,6 +144,12 @@ public void disposeUIResources() {
controller = null;
}

@Override
public void cancel() {
// No message is sent.
}

@Nullable
private List<ConfigPart> loadPartsFromSettings() {
return VcsRootConfigController.getInstance().getConfigPartsForRoot(project, vcsRoot);
}
Expand All @@ -140,7 +158,7 @@ private ConfigPart loadParentPartFromSettings() {
List<ConfigPart> parts = loadPartsFromSettings();
return new MultipleConfigPart(
P4Bundle.getString("configuration.connection-choice.wrapped-container"),
parts
parts == null ? List.of() : parts
);
}

Expand Down

0 comments on commit 746b41a

Please sign in to comment.