void (IFilterEditor editor) { MouseHandler mouseHandler = new MouseHandler(); choicesList = new JList(choicesModel); choicesList.addMouseMotionListener(mouseHandler); choicesList.addMouseListener(mouseHandler); choicesScrollPane = createScrollPane(choicesList); historyList = new JList(historyModel); historyList.addMouseMotionListener(mouseHandler); historyList.addMouseListener(mouseHandler); choicesList.setBorder(null); choicesList.setFocusable(false); choicesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); historyList.setBorder(null); historyList.setFocusable(false); historyList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ensureListRowsHeight(); separator = new JSeparator(); popup = new JPopupMenu(); popup.setLayout(new BorderLayout()); popup.setBorderPainted(true); popup.setOpaque(false); popup.addPopupMenuListener(this); historyScrollPane = createScrollPane(historyList); popup.add(historyScrollPane, BorderLayout.NORTH); popup.add(separator, BorderLayout.CENTER); popup.add(choicesScrollPane, BorderLayout.SOUTH); popup.setDoubleBuffered(true); popup.setFocusable(false); listRenderer = new FilterListCellRenderer(editor, choicesList); choicesList.setCellRenderer(listRenderer); historyList.setCellRenderer(listRenderer); }