package org.geogebra.keyboard.base.model.impl.factory; import static org.geogebra.keyboard.base.model.impl.factory.Characters.AMPERSAND; import static org.geogebra.keyboard.base.model.impl.factory.Characters.ANGLE; import static org.geogebra.keyboard.base.model.impl.factory.Characters.AT; import static org.geogebra.keyboard.base.model.impl.factory.Characters.CIRCLED_TIMES; import static org.geogebra.keyboard.base.model.impl.factory.Characters.COLON; import static org.geogebra.keyboard.base.model.impl.factory.Characters.ELEMENT_OF; import static org.geogebra.keyboard.base.model.impl.factory.Characters.HASHTAG; import static org.geogebra.keyboard.base.model.impl.factory.Characters.INFINITY; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LEFT_CEILING; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LEFT_FLOOR; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LEFT_GUILLEMET; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LEFT_SQUARE_BRACKET; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LOGICAL_AND; import static org.geogebra.keyboard.base.model.impl.factory.Characters.LOGICAL_OR; import static org.geogebra.keyboard.base.model.impl.factory.Characters.NOT_EQUAL_TO; import static org.geogebra.keyboard.base.model.impl.factory.Characters.NOT_SIGN; import static org.geogebra.keyboard.base.model.impl.factory.Characters.PARALLEL_TO; import static org.geogebra.keyboard.base.model.impl.factory.Characters.QUESTIONED_EQUAL_TO; import static org.geogebra.keyboard.base.model.impl.factory.Characters.QUOTATION_MARK; import static org.geogebra.keyboard.base.model.impl.factory.Characters.RIGHTWARDS_ARROW; import static org.geogebra.keyboard.base.model.impl.factory.Characters.RIGHT_CEILING; import static org.geogebra.keyboard.base.model.impl.factory.Characters.RIGHT_FLOOR; import static org.geogebra.keyboard.base.model.impl.factory.Characters.RIGHT_GUILLEMET; import static org.geogebra.keyboard.base.model.impl.factory.Characters.RIGHT_SQUARE_BRACKET; import static org.geogebra.keyboard.base.model.impl.factory.Characters.SUBSET_OF; import static org.geogebra.keyboard.base.model.impl.factory.Characters.SUBSET_OF_OR_EQUAL_TO; import static org.geogebra.keyboard.base.model.impl.factory.Characters.UP_TACK; 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.addCustomButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addInputButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addInputCommandButton; import static org.geogebra.keyboard.base.model.impl.factory.Util.addTranslateInputCommandButton; 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; class SpecialSymbolsKeyboardFactory { KeyboardModel createSpecialSymbolsKeyboard(ButtonFactory buttonFactory) { KeyboardModelImpl mathKeyboard = new KeyboardModelImpl(); StringBuilder name = new StringBuilder(); RowImpl row = mathKeyboard.nextRow(10.0f); addInputButton(row, buttonFactory, INFINITY); addInputButton(row, buttonFactory, QUESTIONED_EQUAL_TO); addInputButton(row, buttonFactory, NOT_EQUAL_TO); addInputButton(row, buttonFactory, LOGICAL_AND); addInputButton(row, buttonFactory, LOGICAL_OR); addInputButton(row, buttonFactory, RIGHTWARDS_ARROW); addInputButton(row, buttonFactory, NOT_SIGN); addInputButton(row, buttonFactory, CIRCLED_TIMES); addInputButton(row, buttonFactory, PARALLEL_TO); addInputButton(row, buttonFactory, UP_TACK); row = mathKeyboard.nextRow(10.0f); addButton(row, buttonFactory.createEmptySpace(0.5f)); addInputButton(row, buttonFactory, ELEMENT_OF); addInputButton(row, buttonFactory, SUBSET_OF); addInputButton(row, buttonFactory, SUBSET_OF_OR_EQUAL_TO); addInputButton(row, buttonFactory, ANGLE); name.append(LEFT_FLOOR); name.append("x"); name.append(RIGHT_FLOOR); addInputCommandButton(row, buttonFactory, name.toString(), LEFT_FLOOR + "", 1.0f); name.setLength(0); name.append(LEFT_CEILING); name.append("x"); name.append(RIGHT_CEILING); addInputCommandButton(row, buttonFactory, name.toString(), LEFT_CEILING + "", 1.0f); addInputButton(row, buttonFactory, AMPERSAND); addInputButton(row, buttonFactory, AT); addInputButton(row, buttonFactory, HASHTAG); addButton(row, buttonFactory.createEmptySpace(0.5f)); row = mathKeyboard.nextRow(10.0f); addButton(row, buttonFactory.createEmptySpace(1.5f)); addInputButton(row, buttonFactory, LEFT_SQUARE_BRACKET); addInputButton(row, buttonFactory, RIGHT_SQUARE_BRACKET); addInputButton(row, buttonFactory, COLON); addInputButton(row, buttonFactory, QUOTATION_MARK); addTranslateInputCommandButton(row, buttonFactory, "Translate.currency", "Translate.currency", 1.0f); addInputButton(row, buttonFactory, LEFT_GUILLEMET); addInputButton(row, buttonFactory, RIGHT_GUILLEMET); addButton(row, buttonFactory.createEmptySpace(0.3f)); addConstantCustomButton(row, buttonFactory, Resource.BACKSPACE_DELETE, Action.BACKSPACE_DELETE, 1.2f); row = mathKeyboard.nextRow(10.0f); addCustomButton(row, buttonFactory, "ABC", Action.SWITCH_TO_ABC); addInputButton(row, buttonFactory, ","); addInputButton(row, buttonFactory, "'"); addInputButton(row, buttonFactory, " ", 4.0f); 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; } }