コード例 #1
0
ファイル: EditorPane.java プロジェクト: hencjo/jOOQ
 private CompletionCandidate[] getFilteredWords(int wordStart, String word) {
   List<CompletionCandidate> candidateList = new ArrayList<CompletionCandidate>();
   // Here can add more candidates depending on magic word start.
   if (candidateList.isEmpty()) {
     QueryExecutor queryExecutor = queryExecutorCreator.createQueryExecutor(executionContextName);
     for (String s : queryExecutor.getTableNames()) {
       candidateList.add(new CompletionCandidate(KeyWordType.TABLE, s));
     }
     for (String s : queryExecutor.getTableColumnNames()) {
       candidateList.add(new CompletionCandidate(KeyWordType.TABLE_COlUMN, s));
     }
     queryExecutor.stopExecution();
     for (String s :
         new String[] {
           "ALTER", "ASC", "BY", "DESC", "DROP", "FROM", "IN", "INNER", "INSERT", "INTO", "JOIN",
           "LEFT", "NOT", "ORDER", "SELECT", "UPDATE", "WHERE", "AND", "OR", "EXISTS", "HAVING",
           "TOP", "GROUP", "SET",
         }) {
       candidateList.add(new CompletionCandidate(KeyWordType.KEYWORD, s));
     }
   }
   word = word.toUpperCase(Locale.ENGLISH);
   List<CompletionCandidate> filteredCompletionCandidateList =
       new ArrayList<CompletionCandidate>();
   for (CompletionCandidate completionCandidate : candidateList) {
     if (completionCandidate
         .toString()
         .toLowerCase(Locale.ENGLISH)
         .startsWith(word.toLowerCase(Locale.ENGLISH))) {
       filteredCompletionCandidateList.add(completionCandidate);
     }
   }
   Collections.sort(
       filteredCompletionCandidateList,
       new Comparator<CompletionCandidate>() {
         @Override
         public int compare(CompletionCandidate o1, CompletionCandidate o2) {
           return String.CASE_INSENSITIVE_ORDER.compare(o1.toString(), o2.toString());
         }
       });
   return filteredCompletionCandidateList.toArray(new CompletionCandidate[0]);
 }