package ${package};
import java.io.File;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import fi.utu.ville.exercises.model.Editor;
import fi.utu.ville.exercises.model.EditorHelper;
import fi.utu.ville.exercises.model.EditorHelper.EditedExerciseGiver;
import fi.utu.ville.standardutils.AFFile;
import fi.utu.ville.standardutils.AbstractFile;
import fi.utu.ville.standardutils.Localizer;
import fi.utu.ville.standardutils.SimpleFileUploader;
import fi.utu.ville.standardutils.StandardUIFactory;
import fi.utu.ville.standardutils.SimpleFileUploader.UploaderListener;
import fi.utu.ville.standardutils.ui.AbstractEditorLayout;
import fi.utu.ville.exercises.model.VilleContent;
import fi.utu.ville.exercises.model.VilleUI;
public class ${VilleJavaClassPrefix}Editor extends VilleContent implements
Editor<${VilleJavaClassPrefix}ExerciseData> {
/**
*
*/
private static final long serialVersionUID = -4600841604409240872L;
private static final int MAX_FILE_SIZE_KB = 1024;
private static final String MIME_FILTER = "^image/.*$";
private EditorHelper<${VilleJavaClassPrefix}ExerciseData> editorHelper;
private TextField questionText;
private AbstractFile currImgFile;
private Localizer localizer;
private AbstractEditorLayout layout;
public ${VilleJavaClassPrefix}Editor() {
super(null);
}
@Override
public VilleContent getView() {
return this;
}
@Override
public void initialize(VilleUI ui, Localizer localizer, ${VilleJavaClassPrefix}ExerciseData oldData,
EditorHelper<${VilleJavaClassPrefix}ExerciseData> editorHelper) {
this.init(ui);
this.localizer = localizer;
this.editorHelper = editorHelper;
editorHelper.getTempManager().initialize();
doLayout(oldData);
}
private ${VilleJavaClassPrefix}ExerciseData getCurrentExercise() {
return new ${VilleJavaClassPrefix}ExerciseData(questionText.getValue(), currImgFile);
}
@Override
public boolean isOkToExit() {
// TODO Auto-generated method stub
return true;
}
@Override
public void doLayout() {
}
public void doLayout(${VilleJavaClassPrefix}ExerciseData oldData) {
this.setMargin(false);
this.setSpacing(false);
this.setWidth("100%");
layout = StandardUIFactory.getTwoColumnView();
addComponent(layout);
layout.setTitle("${VilleJavaClassPrefix}");
String oldQuestion;
if (oldData != null) {
oldQuestion = oldData.getQuestion();
currImgFile = oldData.getImgFile();
} else {
oldQuestion = "";
currImgFile = null;
}
layout.addToLeft(editorHelper.getInfoEditorView());
layout.addToTop(editorHelper
.getControlbar(new EditedExerciseGiver<${VilleJavaClassPrefix}ExerciseData>() {
@Override
public ${VilleJavaClassPrefix}ExerciseData getCurrExerData(
boolean forSaving) {
return getCurrentExercise();
}
}));
VerticalLayout editlayout = new VerticalLayout();
Label questionTextCapt = new Label(
localizer.getUIText(${VilleJavaClassPrefix}UiConstants.QUESTION));
questionTextCapt.addStyleName(${VilleJavaClassPrefix}ThemeConsts.TITLE_STYLE);
questionText = new TextField(null, oldQuestion);
SimpleFileUploader uploader = new SimpleFileUploader(localizer,
editorHelper.getTempManager(), MAX_FILE_SIZE_KB,
MIME_FILTER);
uploader.registerUploaderListener(new UploaderListener() {
/**
*
*/
private static final long serialVersionUID = 8266397773350713952L;
@Override
public void fileUploadSucceeded(File tempFile, String fileName,
String mimeType) {
currImgFile = new AFFile(tempFile);
}
@Override
public void uploadedFileDeleted(File tempFile) {
currImgFile = null;
}
});
if (currImgFile != null) {
uploader.setAbstractUploadedFile(currImgFile);
}
editlayout.addComponent(questionTextCapt);
editlayout.addComponent(questionText);
editlayout.addComponent(uploader);
layout.addToRight(editlayout);
}
@Override
public String getViewName(){
return "${VilleJavaClassPrefix}";
}
}