package com.griddynamics.jagger.webclient.client.components;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.sencha.gxt.widget.core.client.Slider;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
/**
* Class that holds menu bar for PlotPanel
*/
public class PlotButtonsPanel extends HorizontalPanel {
private PlotsPanel plotsPanel;
private TextButton changeLayout = new TextButton("Change layout");
private Slider heightSlider = new Slider();
public void setupButtonPanel(PlotsPanel plotsPanel) {
final int DEFAULT_PLOT_HEIGHT = 150;
final int MIN_PLOT_HEIGHT = 100;
final int MAX_PLOT_HEIGHT = 500;
if (this.plotsPanel == null) {
this.plotsPanel = plotsPanel;
this.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
this.setVerticalAlignment(ALIGN_MIDDLE);
changeLayout.addSelectHandler(new ChangeLayoutHandler());
heightSlider.setValue(DEFAULT_PLOT_HEIGHT);
heightSlider.setMaxValue(MAX_PLOT_HEIGHT);
heightSlider.setMinValue(MIN_PLOT_HEIGHT);
heightSlider.addValueChangeHandler(new HeightSliderValueChangeHandler());
this.add(changeLayout);
this.add(heightSlider);
}
}
public Integer getPlotHeight() {
return heightSlider.getValue();
}
private class ChangeLayoutHandler implements SelectEvent.SelectHandler {
@Override
public void onSelect(SelectEvent event) {
plotsPanel.changeLayout();
}
}
private class HeightSliderValueChangeHandler implements ValueChangeHandler<Integer> {
@Override
public void onValueChange(ValueChangeEvent<Integer> integerValueChangeEvent) {
plotsPanel.changeChildrenHeight(integerValueChangeEvent.getValue());
}
}
}