1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package cz.zcu.mre.sparkle.gui.query.autoComplete;
21
22 import cz.zcu.mre.sparkle.data.PrefixesStorage;
23 import cz.zcu.mre.sparkle.gui.query.QueryFormPane;
24 import cz.zcu.mre.sparkle.gui.query.other.TypedTextField;
25 import cz.zcu.mre.sparkle.tools.Utils;
26 import javafx.collections.ObservableList;
27 import javafx.scene.control.TextField;
28
29
30
31
32
33
34
35
36
37 public class VariablesAutoCompleteListHandler
38 implements AutoCompleteListHandler {
39
40 private final QueryFormPane<?> queryFormPane;
41
42 public VariablesAutoCompleteListHandler(final QueryFormPane<?> queryFormPane) {
43 this.queryFormPane = queryFormPane;
44 }
45
46 @Override
47 public PrefixesStorage getPrefixesStorage() {
48 return queryFormPane.getQueryPrefixesStorage();
49 }
50
51 @Override
52 public ObservableList<Object> getAutoCompleteList(final TextField textField) {
53 final String textFieldContent = textField.getText(0, textField.getCaretPosition());
54 if ((textFieldContent == null) || (textFieldContent.isEmpty())) {
55 return Utils.getObjectList(queryFormPane.getSortedVariables());
56 }
57 return Utils.getObjectList(queryFormPane.getSortedVariables()
58 .filtered((t) -> Utils.stringStartsWithIgnoreCase(t, textFieldContent)));
59 }
60
61 }