private void addButtonsAvailabilityListeners(JButton backButton, JButton forwardButton) { Platform.runLater( () -> myEngine .getLoadWorker() .stateProperty() .addListener( (ov, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED) { final WebHistory history = myEngine.getHistory(); boolean isGoBackAvailable = history.getCurrentIndex() > 0; boolean isGoForwardAvailable = history.getCurrentIndex() < history.getEntries().size() - 1; ApplicationManager.getApplication() .invokeLater( () -> { backButton.setEnabled(isGoBackAvailable); forwardButton.setEnabled(isGoForwardAvailable); }); } })); }
private JButton makeGoButton( @NotNull final String toolTipText, @NotNull final Icon icon, final int direction) { final JButton button = new JButton(icon); button.setEnabled(false); button.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) { Platform.runLater(() -> myEngine.getHistory().go(direction)); } } }); button.setToolTipText(toolTipText); return button; }