package org.geogebra.keyboard.base.model.impl.factory; import org.geogebra.keyboard.base.Action; import org.geogebra.keyboard.base.Resource; import org.geogebra.keyboard.base.model.KeyboardModel; import org.geogebra.keyboard.base.model.impl.KeyboardModelImpl; import org.geogebra.keyboard.base.model.impl.RowImpl; import static org.geogebra.keyboard.base.model.impl.factory.Characters.DIVISION; import static org.geogebra.keyboard.base.model.impl.factory.Characters.EULER; import static org.geogebra.keyboard.base.model.impl.factory.Characters.GEQ; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LEQ; import static org.geogebra.keyboard.base.model.impl.factory.Characters.MULTIPLICATION; import static org.geogebra.keyboard.base.model.impl.factory.Characters.PI; import static org.geogebra.keyboard.base.model.impl.factory.Characters.ROOT; import static org.geogebra.keyboard.base.model.impl.factory.Characters.SUP2; import static org.geogebra.keyboard.base.model.impl.factory.Util.addButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addConstantCustomButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addConstantInputButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addInputButton; class MathKeyboardFactory { KeyboardModel createMathKeyboard(ButtonFactory buttonFactory) { KeyboardModelImpl mathKeyboard = new KeyboardModelImpl(); RowImpl row = mathKeyboard.nextRow(9.2f); addInputButton(row, buttonFactory, "x"); addInputButton(row, buttonFactory, "y"); addInputButton(row, buttonFactory, "z"); addInputButton(row, buttonFactory, PI); addButton(row, buttonFactory.createEmptySpace(0.2f)); addInputButton(row, buttonFactory, "7"); addInputButton(row, buttonFactory, "8"); addInputButton(row, buttonFactory, "9"); addInputButton(row, buttonFactory, MULTIPLICATION, "*"); addInputButton(row, buttonFactory, DIVISION, "/"); row = mathKeyboard.nextRow(9.2f); addConstantInputButton(row, buttonFactory, Resource.POWA2, SUP2); addConstantInputButton(row, buttonFactory, Resource.POWAB, "^"); addConstantInputButton(row, buttonFactory, Resource.ROOT, ROOT); addInputButton(row, buttonFactory, "e", EULER); addButton(row, buttonFactory.createEmptySpace(0.2f)); addInputButton(row, buttonFactory, "4"); addInputButton(row, buttonFactory, "5"); addInputButton(row, buttonFactory, "6"); addInputButton(row, buttonFactory, "+"); addInputButton(row, buttonFactory, "-"); row = mathKeyboard.nextRow(9.2f); addInputButton(row, buttonFactory, "<"); addInputButton(row, buttonFactory, ">"); addInputButton(row, buttonFactory, LEQ); addInputButton(row, buttonFactory, GEQ); addButton(row, buttonFactory.createEmptySpace(0.2f)); addInputButton(row, buttonFactory, "1"); addInputButton(row, buttonFactory, "2"); addInputButton(row, buttonFactory, "3"); addInputButton(row, buttonFactory, "="); addConstantCustomButton(row, buttonFactory, Resource.BACKSPACE_DELETE, Action.BACKSPACE_DELETE); row = mathKeyboard.nextRow(9.2f); addInputButton(row, buttonFactory, "("); addInputButton(row, buttonFactory, ")"); addInputButton(row, buttonFactory, "|a|", "|"); addInputButton(row, buttonFactory, ","); addButton(row, buttonFactory.createEmptySpace(0.2f)); addInputButton(row, buttonFactory, "0"); addInputButton(row, buttonFactory, "."); addConstantCustomButton(row, buttonFactory, Resource.LEFT_ARROW, Action.LEFT_CURSOR); addConstantCustomButton(row, buttonFactory, Resource.RIGHT_ARROW, Action.RIGHT_CURSOR); addConstantCustomButton(row, buttonFactory, Resource.RETURN_ENTER, Action.RETURN_ENTER); return mathKeyboard; } }