Skip to content

Commit 94c6e9d

Browse files
committed
Validate all options.
1 parent 6a89a23 commit 94c6e9d

File tree

8 files changed

+52
-42
lines changed

8 files changed

+52
-42
lines changed

binding/src/main/java/ch/cyberduck/binding/SheetController.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,10 @@ public void closeSheet(final NSButton sender) {
7575
public void closeSheetWithOption(int option) {
7676
log.debug("Close sheet with option {}", option);
7777
window.endEditingFor(null);
78-
if(option == SheetCallback.DEFAULT_OPTION || option == SheetCallback.ALTERNATE_OPTION) {
79-
if(!this.validate(option)) {
80-
log.warn("Failed validation with option {}", option);
81-
AppKitFunctionsLibrary.beep();
82-
return;
83-
}
78+
if(!this.validate(option)) {
79+
log.warn("Failed validation with option {}", option);
80+
AppKitFunctionsLibrary.beep();
81+
return;
8482
}
8583
handlers.forEach(h -> h.closed(window, option));
8684
}

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/DownloadController.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void callback(final int returncode) {
9191
try {
9292
final Host host = HostParser.parse(urlField.stringValue());
9393
final Path file = new Path(PathNormalizer.normalize(host.getDefaultPath()),
94-
EnumSet.of(detector.detect(host.getDefaultPath())));
94+
EnumSet.of(detector.detect(host.getDefaultPath())));
9595
host.setDefaultPath(file.getParent().getAbsolute());
9696
final Transfer transfer = new DownloadTransfer(host, file,
9797
LocalFactory.get(LocalFactory.get(PreferencesFactory.get().getProperty("queue.download.folder")).setBookmark(
@@ -107,13 +107,16 @@ public void callback(final int returncode) {
107107

108108
@Override
109109
public boolean validate(final int option) {
110-
final Host host;
111-
try {
112-
host = HostParser.parse(urlField.stringValue());
110+
if(option == DEFAULT_OPTION) {
111+
final Host host;
112+
try {
113+
host = HostParser.parse(urlField.stringValue());
114+
}
115+
catch(HostParserException e) {
116+
return false;
117+
}
118+
return StringUtils.isNotBlank(host.getDefaultPath());
113119
}
114-
catch(HostParserException e) {
115-
return false;
116-
}
117-
return StringUtils.isNotBlank(host.getDefaultPath());
120+
return true;
118121
}
119122
}

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/FileController.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import ch.cyberduck.binding.application.NSAlert;
2121
import ch.cyberduck.binding.application.NSTextField;
2222
import ch.cyberduck.binding.application.NSView;
23+
import ch.cyberduck.core.AbstractPath;
2324
import ch.cyberduck.core.Cache;
2425
import ch.cyberduck.core.Path;
2526
import ch.cyberduck.core.SimplePathPredicate;
@@ -61,20 +62,23 @@ protected void focus(final NSAlert alert) {
6162

6263
@Override
6364
public boolean validate(final int option) {
64-
final String input = StringUtils.trim(inputField.stringValue());
65-
if(PreferencesFactory.get().getList("browser.filter.regex").stream().anyMatch(input::matches)) {
66-
return false;
67-
}
68-
if(StringUtils.isNotBlank(input)) {
69-
if(cache.get(workdir).toStream().filter(new SimplePathPredicate(new Path(workdir, input, EnumSet.of(Path.Type.file)))).findAny().isPresent()) {
65+
if(option == DEFAULT_OPTION) {
66+
final String input = StringUtils.trim(inputField.stringValue());
67+
if(PreferencesFactory.get().getList("browser.filter.regex").stream().anyMatch(input::matches)) {
7068
return false;
7169
}
72-
if(cache.get(workdir).toStream().filter(new SimplePathPredicate(new Path(workdir, input, EnumSet.of(Path.Type.directory)))).findAny().isPresent()) {
73-
return false;
70+
if(StringUtils.isNotBlank(input)) {
71+
if(cache.get(workdir).toStream().filter(new SimplePathPredicate(new Path(workdir, input, EnumSet.of(Path.Type.file)))).findAny().isPresent()) {
72+
return false;
73+
}
74+
if(cache.get(workdir).toStream().filter(new SimplePathPredicate(new Path(workdir, input, EnumSet.of(Path.Type.directory)))).findAny().isPresent()) {
75+
return false;
76+
}
77+
return true;
7478
}
75-
return true;
79+
return false;
7680
}
77-
return false;
81+
return true;
7882
}
7983

8084
@Override

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/GotoController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ public void callback(final int returncode) {
110110

111111
@Override
112112
public boolean validate(final int option) {
113-
return StringUtils.isNotBlank(folderCombobox.stringValue());
113+
if(option == DEFAULT_OPTION) {
114+
return StringUtils.isNotBlank(folderCombobox.stringValue());
115+
}
116+
return true;
114117
}
115118

116119
private final class FolderComboboxModel extends ProxyController implements NSComboBox.DataSource {

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/LoginController.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,8 @@ public void callback(final int returncode) {
178178

179179
@Override
180180
public boolean validate(final int option) {
181-
switch(option) {
182-
case DEFAULT_OPTION:
183-
return super.validate(option);
181+
if(option == DEFAULT_OPTION) {
182+
return super.validate(option);
184183
}
185184
return true;
186185
}

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/MainController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,10 @@ public void callback(int returncode) {
781781

782782
@Override
783783
public boolean validate(final int option) {
784-
return StringUtils.isNotEmpty(bookmarksPopup.selectedItem().representedObject());
784+
if(option == DEFAULT_OPTION) {
785+
return StringUtils.isNotEmpty(bookmarksPopup.selectedItem().representedObject());
786+
}
787+
return true;
785788
}
786789
};
787790
TransferControllerFactory.get().alert(controller);

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/PasswordController.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,10 @@ protected void focus(final NSAlert alert) {
129129

130130
@Override
131131
public boolean validate(final int option) {
132-
if(option == SheetCallback.ALTERNATE_OPTION) {
133-
if(options.anonymous) {
134-
return true;
135-
}
132+
if(option == DEFAULT_OPTION) {
133+
return StringUtils.isNotBlank(inputField.stringValue());
136134
}
137-
return StringUtils.isNotBlank(inputField.stringValue());
135+
return true;
138136
}
139137

140138
@Override

osx/src/main/java/ch/cyberduck/ui/cocoa/controller/VaultController.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,16 @@ public NSView getAccessoryView(final NSAlert alert) {
112112
@Override
113113
public boolean validate(final int option) {
114114
if(super.validate(option)) {
115-
if(StringUtils.isBlank(passwordField.stringValue())) {
116-
return false;
117-
}
118-
if(StringUtils.isBlank(confirmField.stringValue())) {
119-
return false;
120-
}
121-
if(!StringUtils.equals(passwordField.stringValue(), confirmField.stringValue())) {
122-
return false;
115+
if(option == DEFAULT_OPTION) {
116+
if(StringUtils.isBlank(passwordField.stringValue())) {
117+
return false;
118+
}
119+
if(StringUtils.isBlank(confirmField.stringValue())) {
120+
return false;
121+
}
122+
if(!StringUtils.equals(passwordField.stringValue(), confirmField.stringValue())) {
123+
return false;
124+
}
123125
}
124126
return true;
125127
}

0 commit comments

Comments
 (0)