/** * Get more info at : www.jrebirth.org . * Copyright JRebirth.org © 2011-2013 * Contact : sebastien.bordes@jrebirth.org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jrebirth.af.showcase.analyzer.ui.controls; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import org.jrebirth.af.api.exception.CoreException; import org.jrebirth.af.core.ui.DefaultView; /** * * The class <strong>ControlsView</strong>. * * The view used to control the analyzer animation. * * @author Sébastien Bordes */ public final class ControlsView extends DefaultView<ControlsModel, HBox, ControlsController> { /** The open button. */ private Button openButton; /** The unload button. */ private Button unloadButton; /** The playPause button. */ private Button playPauseButton; /** The backward button. */ private Button backwardButton; /** The forward button. */ private Button forwardButton; /** The stop button. */ private Button stopButton; /** * Default Constructor. * * @param model the controls view model * * @throws CoreException if build fails */ public ControlsView(final ControlsModel model) throws CoreException { super(model); } /** * {@inheritDoc} */ @Override protected void initView() { this.openButton = new Button("Open"); HBox.setHgrow(this.openButton, Priority.ALWAYS); this.openButton.setMaxWidth(Double.MAX_VALUE); this.unloadButton = new Button("Unload"); this.unloadButton.setDisable(true); HBox.setHgrow(this.unloadButton, Priority.ALWAYS); this.unloadButton.setMaxWidth(Double.MAX_VALUE); this.playPauseButton = new Button("Play"); this.playPauseButton.setDisable(true); HBox.setHgrow(this.playPauseButton, Priority.ALWAYS); this.playPauseButton.setMaxWidth(Double.MAX_VALUE); this.backwardButton = new Button("<<"); this.backwardButton.setDisable(true); HBox.setHgrow(this.backwardButton, Priority.ALWAYS); this.backwardButton.setMaxWidth(Double.MAX_VALUE); this.forwardButton = new Button(">>"); this.forwardButton.setDisable(true); HBox.setHgrow(this.forwardButton, Priority.ALWAYS); this.forwardButton.setMaxWidth(Double.MAX_VALUE); this.stopButton = new Button("Stop"); this.stopButton.setDisable(true); HBox.setHgrow(this.stopButton, Priority.ALWAYS); this.stopButton.setMaxWidth(Double.MAX_VALUE); getRootNode().getChildren().addAll( this.openButton, this.unloadButton, this.playPauseButton, this.backwardButton, this.forwardButton, this.stopButton); } /** * Change activation of all buttons. * * @param enable true to enable all buttons false otherwise */ void activateButtons(final boolean enable) { this.unloadButton.setDisable(!enable); this.playPauseButton.setDisable(!enable); this.backwardButton.setDisable(!enable); this.forwardButton.setDisable(!enable); this.stopButton.setDisable(!enable); } /** * @return Returns the openButton. */ Button getOpenButton() { return this.openButton; } /** * @return Returns the unloadButton. */ Button getUnloadButton() { return this.unloadButton; } /** * @return Returns the playPauseButton. */ Button getPlayPauseButton() { return this.playPauseButton; } /** * @return Returns the backwardButton. */ Button getBackwardButton() { return this.backwardButton; } /** * @return Returns the forwardButton. */ Button getForwardButton() { return this.forwardButton; } /** * @return Returns the stopButton. */ Button getStopButton() { return this.stopButton; } }