Wednesday, July 4, 2012

Java: Javafx tracking variable status using addListener

    public enum PlayState {
        STOPPED, PAUSED, PLAYING, RECORDING, PREVIEWING
    };
...

    private final ObjectProperty<PlayState> statusProperty;
...
    public ObjectProperty<PlayState> statusProperty() {
        return statusProperty;
    }
...



        media.statusProperty().addListener(new javafx.beans.value.ChangeListener<PlayState>(){

            @Override
            public void changed(ObservableValue<? extends PlayState> ov, PlayState oldValue, PlayState newValue) {
                switch(newValue) {
                    case PLAYING:
                        playButton.setIcon(iconPause);
                        stopButton.setEnabled(true);
                        playButton.setEnabled(true);
                        recordButton.setEnabled(false);
                        slider.setEnabled(true);
                        previewCheckBox.setEnabled(false);
                        previewCheckBox.setSelected(false);
                        break;
                    case RECORDING:
                        playButton.setIcon(iconPlay);
                        stopButton.setEnabled(true);
                        playButton.setEnabled(false);
                        recordButton.setEnabled(false);
                        slider.setEnabled(false);
                        previewCheckBox.setEnabled(false);
                        break;
                    case PAUSED:
                        playButton.setIcon(iconPlay);
                        stopButton.setEnabled(true);
                        playButton.setEnabled(true);
                        recordButton.setEnabled(false);
                        slider.setEnabled(true);
                        break;
                    case STOPPED:
                        playButton.setIcon(iconPlay);
                        stopButton.setEnabled(false);
                        playButton.setEnabled(true);
                        recordButton.setEnabled(true);
                        slider.setEnabled(false);
                        slider.setValue(0);
                        previewCheckBox.setEnabled(true);
                        lStartRecordTime = -1;
                        break;
                    default:    // should never happened
                        break;
                }

            }
           
        });

No comments:

Post a Comment