package org.geogebra.keyboard.web;
import java.util.ArrayList;
import org.geogebra.keyboard.base.Keyboard;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
*
*/
public class KeyPanelBase extends VerticalPanel {
private ArrayList<HorizontalPanel> rows;
private ArrayList<KeyBoardButtonBase> buttons;
private Keyboard layout;
/**
*/
public KeyPanelBase(Keyboard layout) {
rows = new ArrayList<HorizontalPanel>();
buttons = new ArrayList<KeyBoardButtonBase>();
this.layout = layout;
}
public KeyPanelBase() {
this(null);
}
/**
* adds the given button to the row with given index.
*
* @param index
* int
* @param button
* {@link KeyBoardButtonBase}
*/
public void addToRow(int index, KeyBoardButtonBase button) {
if (rows.size() <= index) {
HorizontalPanel newRow = new HorizontalPanel();
newRow.addStyleName("KeyPanelRow");
rows.add(newRow);
this.add(newRow);
}
rows.get(index).add(button);
buttons.add(button);
}
public void reset(Keyboard layout) {
clear();
this.layout = layout;
rows.clear();
buttons.clear();
}
/**
* @return all {@link KeyBoardButtonBase buttons} of this keyPanel
*/
public ArrayList<KeyBoardButtonBase> getButtons() {
return this.buttons;
}
/**
* @return all {@link HorizontalPanel rows} of this keyPanel
*/
public ArrayList<HorizontalPanel> getRows() {
return this.rows;
}
public Keyboard getLayout() {
return layout;
}
}