Skip to content

Commit

Permalink
Change default search input mode to contains
Browse files Browse the repository at this point in the history
  • Loading branch information
Col-E committed Jul 6, 2024
1 parent 10537bc commit 5d5ea6f
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,68 @@
*/
@ApplicationScoped
public class NumberPredicateProvider {
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for equality matching.
*/
public static String KEY_EQUAL = "equal";
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for inequality matching.
*/
public static String KEY_NOT = "not";
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for greater-than matching.
*/
public static String KEY_GREATER_THAN = "gt";
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for greater-than or equal matching.
*/
public static String KEY_GREATER_EQUAL_THAN = "gte";
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for less-than matching.
*/
public static String KEY_LESS_THAN = "lt";
/**
* Key in {@link #newBiNumberPredicate(String, Number)} for less-than or equal matching.
*/
public static String KEY_LESS_EQUAL_THAN = "lte";
/**
* Key in {@link #newRangePredicate(Number, Number, boolean, boolean)} for {@code (min, max)} matching.
*/
public static String KEY_RANGE_GT_LT = "gt-lt";
/**
* Key in {@link #newRangePredicate(Number, Number, boolean, boolean)} for {@code [min, max)} matching.
*/
public static String KEY_RANGE_GTE_LT = "gte-lt";
/**
* Key in {@link #newRangePredicate(Number, Number, boolean, boolean)} for {@code (min, max]} matching.
*/
public static String KEY_RANGE_GT_LTE = "gt-lte";
/**
* Key in {@link #newRangePredicate(Number, Number, boolean, boolean)} for {@code [min, max]} matching.
*/
public static String KEY_RANGE_GTE_LTE = "gte-lte";
/**
* Key in {@link #newMultiNumberPredicate(String, Collection)} for any-single item matching.
*/
public static String KEY_ANY_OF = "any-of";

private final Map<String, BiNumberMatcher> biNumberMatchers = new ConcurrentHashMap<>();
private final Map<String, RangeNumberMatcher> rangeNumberMatchers = new ConcurrentHashMap<>();
private final Map<String, MultiNumberMatcher> multiNumberMatchers = new ConcurrentHashMap<>();

@Inject
public NumberPredicateProvider() {
registerBiMatcher("equal", (key, value) -> cmp(key, value) == 0);
registerBiMatcher("not", (key, value) -> cmp(key, value) != 0);
registerBiMatcher("gt", (key, value) -> cmp(key, value) < 0);
registerBiMatcher("gte", (key, value) -> cmp(key, value) <= 0);
registerBiMatcher("lt", (key, value) -> cmp(key, value) > 0);
registerBiMatcher("lte", (key, value) -> cmp(key, value) >= 0);
registerRangeMatcher("gt-lt", (lower, upper, value) -> cmp(lower, value) < 0 && cmp(upper, value) > 0);
registerRangeMatcher("gte-lt", (lower, upper, value) -> cmp(lower, value) <= 0 && cmp(upper, value) > 0);
registerRangeMatcher("gt-lte", (lower, upper, value) -> cmp(lower, value) < 0 && cmp(upper, value) >= 0);
registerRangeMatcher("gte-lte", (lower, upper, value) -> cmp(lower, value) <= 0 && cmp(upper, value) >= 0);
registerMultiMatcher("any-of", (keys, value) -> {
registerBiMatcher(KEY_EQUAL, (key, value) -> cmp(key, value) == 0);
registerBiMatcher(KEY_NOT, (key, value) -> cmp(key, value) != 0);
registerBiMatcher(KEY_GREATER_THAN, (key, value) -> cmp(key, value) < 0);
registerBiMatcher(KEY_GREATER_EQUAL_THAN, (key, value) -> cmp(key, value) <= 0);
registerBiMatcher(KEY_LESS_THAN, (key, value) -> cmp(key, value) > 0);
registerBiMatcher(KEY_LESS_EQUAL_THAN, (key, value) -> cmp(key, value) >= 0);
registerRangeMatcher(KEY_RANGE_GT_LT, (lower, upper, value) -> cmp(lower, value) < 0 && cmp(upper, value) > 0);
registerRangeMatcher(KEY_RANGE_GTE_LT, (lower, upper, value) -> cmp(lower, value) <= 0 && cmp(upper, value) > 0);
registerRangeMatcher(KEY_RANGE_GT_LTE, (lower, upper, value) -> cmp(lower, value) < 0 && cmp(upper, value) >= 0);
registerRangeMatcher(KEY_RANGE_GTE_LTE, (lower, upper, value) -> cmp(lower, value) <= 0 && cmp(upper, value) >= 0);
registerMultiMatcher(KEY_ANY_OF, (keys, value) -> {
for (Number key : keys)
if (cmp(key, value) == 0)
return true;
Expand Down Expand Up @@ -127,7 +172,7 @@ public NumberPredicate newRangePredicate(@Nonnull Number lower, @Nonnull Number
*/
@Nonnull
public NumberPredicate newRangePredicate(@Nonnull Number lower, @Nonnull Number upper,
boolean inclusiveLower, boolean inclusiveUpper) {
boolean inclusiveLower, boolean inclusiveUpper) {
String id = (inclusiveLower ? "gte" : "gt") + "-" + (inclusiveUpper ? "lte" : "lt");
return Objects.requireNonNull(newRangeNumberPredicate(id, lower, upper));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public ClassReferenceSearchPane(@Nonnull WorkspaceManager workspaceManager,
TextField textField = new TextField();
ComboBox<String> modeCombo = new BoundBiDiComboBox<>(typePredicateId, stringPredicates,
ToStringConverter.from(s -> Lang.get(StringPredicate.TRANSLATION_PREFIX + s)));
modeCombo.getSelectionModel().select(0);
modeCombo.getSelectionModel().select(StringPredicateProvider.KEY_CONTAINS);

GridPane input = new GridPane();
ColumnConstraints colTexts = new ColumnConstraints();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ public MemberReferenceSearchPane(@Nonnull WorkspaceManager workspaceManager,
TextField textDesc = new TextField();
ComboBox<String> modeComboOwner = new BoundBiDiComboBox<>(ownerPredicateId, stringPredicates,
ToStringConverter.from(s -> Lang.get(StringPredicate.TRANSLATION_PREFIX + s)));
modeComboOwner.getSelectionModel().select(0);
modeComboOwner.getSelectionModel().select(StringPredicateProvider.KEY_CONTAINS);
ComboBox<String> modeComboName = new BoundBiDiComboBox<>(namePredicateId, stringPredicates,
ToStringConverter.from(s -> Lang.get(StringPredicate.TRANSLATION_PREFIX + s)));
modeComboName.getSelectionModel().select(0);
modeComboName.getSelectionModel().select(StringPredicateProvider.KEY_CONTAINS);
ComboBox<String> modeComboDesc = new BoundBiDiComboBox<>(descPredicateId, stringPredicates,
ToStringConverter.from(s -> Lang.get(StringPredicate.TRANSLATION_PREFIX + s)));
modeComboDesc.getSelectionModel().select(0);
modeComboDesc.getSelectionModel().select(StringPredicateProvider.KEY_CONTAINS);

GridPane input = new GridPane();
ColumnConstraints colTexts = new ColumnConstraints();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public NumberSearchPane(@Nonnull WorkspaceManager workspaceManager,
DynamicNumericTextField textField = new DynamicNumericTextField(numericValueProperty, numericTypeProperty);
ComboBox<String> modeCombo = new BoundBiDiComboBox<>(numericPredicateId, biPredicates,
ToStringConverter.from(s -> Lang.get(NumberPredicate.TRANSLATION_PREFIX + s)));
modeCombo.getSelectionModel().select(0);
modeCombo.getSelectionModel().select(NumberPredicateProvider.KEY_EQUAL);
isBlank = textField.textProperty().isEmpty();

GridPane input = new GridPane();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public StringSearchPane(@Nonnull WorkspaceManager workspaceManager,
TextField textField = new TextField();
ComboBox<String> modeCombo = new BoundBiDiComboBox<>(stringPredicateId, stringPredicates,
ToStringConverter.from(s -> Lang.get(StringPredicate.TRANSLATION_PREFIX + s)));
modeCombo.getSelectionModel().select(0);
modeCombo.getSelectionModel().select(StringPredicateProvider.KEY_CONTAINS);

GridPane input = new GridPane();
ColumnConstraints colTexts = new ColumnConstraints();
Expand Down

0 comments on commit 5d5ea6f

Please sign in to comment.