package fi.utu.ville.exercises.template; 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.IconVariant; public class TemplateTypeDescriptor implements ExerciseTypeDescriptor<TemplateExerciseData, TemplateSubmissionInfo> { /** * */ private static final long serialVersionUID = 5743225101617556960L; public static final TemplateTypeDescriptor INSTANCE = new TemplateTypeDescriptor(); private TemplateTypeDescriptor() { } @Override public PersistenceHandler<TemplateExerciseData, TemplateSubmissionInfo> newExerciseXML() { // return TemplateXMLHandler.INSTANCE; return new GsonPersistenceHandler<TemplateExerciseData, TemplateSubmissionInfo>( getTypeDataClass(), getSubDataClass()); } @Override public TemplateExecutor newExerciseExecutor() { return new TemplateExecutor(); } @Override public TemplateEditor newExerciseEditor() { return new TemplateEditor(); } @Override public Class<TemplateExerciseData> getTypeDataClass() { return TemplateExerciseData.class; } @Override public Class<TemplateSubmissionInfo> getSubDataClass() { return TemplateSubmissionInfo.class; } @Override public SubmissionStatisticsGiver<TemplateExerciseData, TemplateSubmissionInfo> newStatisticsGiver() { return new TemplateSubmissionStatisticsGiver(); } @Override public SubmissionVisualizer<TemplateExerciseData, TemplateSubmissionInfo> newSubmissionVisualizer(String assignmentName, Localizer localizer) { return new TemplateSubmissionViewer(); } @Override public String getTypeName(Localizer localizer) { return localizer.getUIText(TemplateUiConstants.NAME); } @Override public String getTypeDescription(Localizer localizer) { return "Template-desciption"; } @Override public Resource getSmallTypeIcon() { return null; // return StandardIcon.EDIT_ICON_SMALL.getIcon(); } @Override public Resource getMediumTypeIcon() { return null; // return StandardIcon.EDIT_ICON_SMALL.getIcon(); } @Override public Resource getLargeTypeIcon() { return null; // return StandardIcon.EDIT_ICON_SMALL.getIcon(); } @Override public boolean isManuallyGraded() { return false; } @Override public String getHTMLIcon() { return TemplateFontIcons.COGS.getIcon().variant(IconVariant.BLACK); } }