package org.orienteer.core.component.visualizer;
import com.orientechnologies.orient.core.metadata.schema.OProperty;
import com.orientechnologies.orient.core.metadata.schema.OType;
import com.orientechnologies.orient.core.record.impl.ODocument;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.orienteer.core.component.property.DisplayMode;
import org.orienteer.core.model.MarkDownModel;
/**
* {@link IVisualizer} to display and modify markdown in Orienteer
*/
public class MarkDownVisualizer extends AbstractSimpleVisualizer
{
private static final String NAME = "markdown";
public MarkDownVisualizer()
{
super(NAME, false, OType.STRING);
}
@Override
public <V> Component createComponent(String id, DisplayMode mode, IModel<ODocument> documentModel, IModel<OProperty> propertyModel, IModel<V> valueModel)
{
switch (mode)
{
case VIEW:
return new Label(id,new MarkDownModel((IModel<String>) valueModel)).setEscapeModelStrings(false);
case EDIT:
return new TextArea<String>(id, (IModel<String>) valueModel);
default:
return null;
}
}
}