CodeAreaBuilder.java 文件源码

java
阅读 19 收藏 0 点赞 0 评论 0

项目:mongofx 作者:
public CodeAreaBuilder setupAutocomplete(AutocompletionEngine service, String collectionName) {
  this.suggestContext = new SuggestContext(collectionName, codeArea);
  Popup popup = new Popup();
  popup.setAutoHide(true);
  popup.setHideOnEscape(true);

  ListView<Suggest> listView = createAutocompleteListView(popup);
  popup.getContent().add(listView);
  codeArea.setPopupWindow(popup);
  codeArea.setPopupAlignment(PopupAlignment.CARET_BOTTOM);
  codeArea.setPopupAnchorOffset(new Point2D(1, 1));

  Builder<KeyEvent> onKey =
      EventHandlerHelper.on(keyPressed(KeyCode.SPACE, KeyCombination.CONTROL_DOWN)).act(ae -> {
        if (popup.isShowing()) {
          popup.hide();
        }
        else {
          showPopup(service, popup, listView);
        }
      }) //
      .on(EventPattern.keyReleased(KeyCode.PERIOD)).act(ae -> showPopup(service, popup, listView));

  codeArea.textProperty().addListener(text -> {
    if (popup.isShowing()) {
      updateSuggestion(service, popup, listView);
    }
  });
  EventHandler<KeyEvent> onKeyHandler = onKey.create();
  EventHandlerHelper.install(codeArea.onKeyPressedProperty(), onKeyHandler);
  EventHandlerHelper.install(codeArea.onKeyReleasedProperty(), onKeyHandler);
  return this;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号