package ${package}; import com.vaadin.server.Resource; import fi.utu.ville.exercises.helpers.GsonPersistenceHandler; import fi.utu.ville.exercises.model.ExerciseTypeDescriptor; import fi.utu.ville.exercises.model.PersistenceHandler; import fi.utu.ville.exercises.model.SubmissionStatisticsGiver; import fi.utu.ville.exercises.model.SubmissionVisualizer; import fi.utu.ville.standardutils.Localizer; import fi.utu.ville.standardutils.StandardIcon; import fi.utu.ville.standardutils.StandardIcon.IconVariant; public class ${VilleJavaClassPrefix}Descriptor implements ExerciseTypeDescriptor<${VilleJavaClassPrefix}ExerciseData, ${VilleJavaClassPrefix}SubmissionInfo> { /** * */ private static final long serialVersionUID = 5743225101617556960L; public static final ${VilleJavaClassPrefix}Descriptor INSTANCE = new ${VilleJavaClassPrefix}Descriptor(); private ${VilleJavaClassPrefix}Descriptor() { } @Override public PersistenceHandler<${VilleJavaClassPrefix}ExerciseData, ${VilleJavaClassPrefix}SubmissionInfo> newExerciseXML() { // You can also implement your own PersistenceHandler if you want (see JavaDoc for more info) return new GsonPersistenceHandler<${VilleJavaClassPrefix}ExerciseData, ${VilleJavaClassPrefix}SubmissionInfo>( getTypeDataClass(), getSubDataClass()); } @Override public ${VilleJavaClassPrefix}Executor newExerciseExecutor() { return new ${VilleJavaClassPrefix}Executor(); } @Override public ${VilleJavaClassPrefix}Editor newExerciseEditor() { return new ${VilleJavaClassPrefix}Editor(); } @Override public Class<${VilleJavaClassPrefix}ExerciseData> getTypeDataClass() { return ${VilleJavaClassPrefix}ExerciseData.class; } @Override public Class<${VilleJavaClassPrefix}SubmissionInfo> getSubDataClass() { return ${VilleJavaClassPrefix}SubmissionInfo.class; } @Override public SubmissionStatisticsGiver<${VilleJavaClassPrefix}ExerciseData, ${VilleJavaClassPrefix}SubmissionInfo> newStatisticsGiver() { return new ${VilleJavaClassPrefix}StatisticsGiver(); } @Override public SubmissionVisualizer<${VilleJavaClassPrefix}ExerciseData, ${VilleJavaClassPrefix}SubmissionInfo> newSubmissionVisualizer() { return new ${VilleJavaClassPrefix}SubmissionViewer(); } @Override public String getTypeName(Localizer localizer) { return localizer.getUIText(${VilleJavaClassPrefix}UiConstants.NAME); } @Override public String getTypeDescription(Localizer localizer) { return localizer.getUIText(${VilleJavaClassPrefix}UiConstants.DESC); } @Override public Resource getSmallTypeIcon() { return ${VilleJavaClassPrefix}Icon.SMALL_TYPE_ICON.getIcon(); } @Override public Resource getMediumTypeIcon() { return ${VilleJavaClassPrefix}Icon.SMALL_TYPE_ICON.getIcon(); } @Override public Resource getLargeTypeIcon() { return ${VilleJavaClassPrefix}Icon.SMALL_TYPE_ICON.getIcon(); } @Override public String getHTMLIcon(){ return StandardIcon.RawIcon.dribbble.variant(IconVariant.ORANGE); } @Override public boolean isManuallyGraded() { return false; } }