package ${package}; import com.vaadin.ui.VerticalLayout; import edu.vserver.exercises.math.essentials.level.DiffLevel; import edu.vserver.exercises.math.essentials.level.LevelMathDataWrapper; import edu.vserver.exercises.math.essentials.level.LevelMathExecutorWrapper; import edu.vserver.math.MathEditorHelp; import edu.vserver.math.MathTabbedEditor; import edu.vserver.math.MathTabbedEditorWrap; import fi.utu.ville.standardutils.Localizer; import fi.utu.ville.standardutils.UIConstants; public class ${VilleJavaClassPrefix}TabbedEditor extends MathTabbedEditor<${VilleJavaClassPrefix}Data> { private static final long serialVersionUID = 2841920972594896399L; private ${VilleJavaClassPrefix}Editor easyEditor; private ${VilleJavaClassPrefix}Editor normalEditor; private ${VilleJavaClassPrefix}Editor hardEditor; private Localizer localizer; private static String help; public ${VilleJavaClassPrefix}TabbedEditor() { } @Override protected VerticalLayout getHelper() { String left = localizer.getUIText(UIConstants.HELP_CALCROW_LEFT); String center = localizer.getUIText(UIConstants.HELP_CALCROW_CENTER); String right = localizer.getUIText(UIConstants.HELP_CALCROW_RIGHT); return new MathEditorHelp(localizer.getUIText(UIConstants.CALC_ROW), help, left, center, right); } @Override protected MathTabbedEditorWrap<${VilleJavaClassPrefix}Data> getEasyEditor() { return easyEditor; } @Override protected MathTabbedEditorWrap<${VilleJavaClassPrefix}Data> getNormalEditor() { return normalEditor; } @Override protected MathTabbedEditorWrap<${VilleJavaClassPrefix}Data> getHardEditor() { return hardEditor; } @Override protected LevelMathExecutorWrapper<${VilleJavaClassPrefix}Data, ${VilleJavaClassPrefix}SubmissionInfo> getExecutor() { return new LevelMathExecutorWrapper<${VilleJavaClassPrefix}Data, ${VilleJavaClassPrefix}SubmissionInfo>( new ${VilleJavaClassPrefix}Executor()); } @Override protected void typeInitialize( LevelMathDataWrapper<${VilleJavaClassPrefix}Data> oldData) { this.localizer = getLocalizer(); if (oldData == null) { ${VilleJavaClassPrefix}Data easy = new ${VilleJavaClassPrefix}Data(5, new int[]{5,5}); ${VilleJavaClassPrefix}Data normal = new ${VilleJavaClassPrefix}Data(10, new int[]{10,10}); ${VilleJavaClassPrefix}Data hard = new ${VilleJavaClassPrefix}Data(15, new int[]{15,15}); this.easyEditor = new ${VilleJavaClassPrefix}Editor(easy, getLocalizer()); this.normalEditor = new ${VilleJavaClassPrefix}Editor(normal, getLocalizer()); this.hardEditor = new ${VilleJavaClassPrefix}Editor(hard, getLocalizer()); } else { this.easyEditor = new ${VilleJavaClassPrefix}Editor( oldData.getForLevel(DiffLevel.EASY), getLocalizer()); this.normalEditor = new ${VilleJavaClassPrefix}Editor( oldData.getForLevel(DiffLevel.NORMAL), getLocalizer()); this.hardEditor = new ${VilleJavaClassPrefix}Editor( oldData.getForLevel(DiffLevel.HARD), getLocalizer()); } help = localizer.getUIText(UIConstants.HELP_CALCROW); drawEditor(); } @Override public void doLayout() { drawEditor(); } @Override public boolean isOkToExit() { return true; } @Override public String getViewName() { return "${VilleJavaClassPrefix}Editor"; } }