public SearchDialogPanel(OWLEditorKit editorKit) {
    this.editorKit = editorKit;
    setLayout(new BorderLayout());
    searchField = new AugmentedJTextField("Enter search string");
    searchPanel = new SearchPanel(editorKit);
    add(searchField, BorderLayout.NORTH);
    add(searchPanel, BorderLayout.CENTER);

    searchField.addKeyListener(
        new KeyAdapter() {
          public void keyReleased(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
              selectEntity();
            }
          }

          public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_UP) {
              searchPanel.moveSelectionUp();
              e.consume();
            }
            if (e.getKeyCode() == KeyEvent.VK_DOWN) {
              searchPanel.moveSelectionDown();
              e.consume();
            }
          }
        });
    searchField
        .getDocument()
        .addDocumentListener(
            new DocumentListener() {
              public void changedUpdate(DocumentEvent e) {}

              public void insertUpdate(DocumentEvent e) {
                performSearch();
              }

              public void removeUpdate(DocumentEvent e) {
                performSearch();
              }
            });
    searchPanel.setSearchResultClickedListener(
        new SearchResultClickedListener() {
          @Override
          public void handleSearchResultClicked(SearchResult searchResult, MouseEvent e) {
            if (e.getClickCount() == 2) {
              selectEntity();
            }
          }
        });
  }