package org.geogebra.web.web.gui.dialog.options;
import org.geogebra.common.main.Feature;
import org.geogebra.common.main.settings.AlgebraSettings;
import org.geogebra.web.html5.main.AppW;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.user.client.ui.ListBox;
public class AlgebraStyleListBox extends ListBox {
private AppW app;
/**
* Creates a ListBox for choosing algebra style.
*
* @param appW
* the application.
*/
public AlgebraStyleListBox(AppW appW) {
this.app = appW;
addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
int idx = getSelectedIndex();
if (app.has(Feature.AV_DEFINITION_AND_VALUE)) {
app.getKernel().setAlgebraStyle(
AlgebraSettings.getStyleModeAt(idx));
} else {
app.getKernel().setAlgebraStyle(idx);
}
app.getKernel().updateConstruction();
}
});
}
/**
* Updates listBox selection and texts (at language change)
*/
public void update() {
String[] modes = AlgebraSettings.getDescriptionModes(app);
clear();
for (int i = 0; i < modes.length; i++) {
addItem(app.getLocalization().getMenu(modes[i]));
}
int descMode = app.getKernel().getAlgebraStyle();
if (app.has(Feature.AV_DEFINITION_AND_VALUE)) {
setSelectedIndex(AlgebraSettings.indexOfStyleMode(descMode));
} else {
setSelectedIndex(descMode);
}
}
}