package org.molgenis.dsleditor;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.model.jaxb.Entity;
import org.molgenis.model.jaxb.Field;
import org.molgenis.util.Tuple;
public class HandleRequest_Remove
{
public static ScreenMessage handle(DSLEditorModel model, Tuple request) throws Exception
{
String action = request.getString("__action");
if (action.equals("removeModuleFromMolgenis"))
{
Integer previousIndex = model.getMolgenisModel().removeModule(request.getString("__selectName"));
if (previousIndex != null)
{
model.setSelectType("module");
model.setSelectName(model.getMolgenisModel().getModules().get(previousIndex).getName());
}
else
{
model.setSelectType("molgenis");
model.setSelectName(model.getMolgenisModel().getName());
}
return new ScreenMessage("module '" + request.getString("__selectName") + "' removed", true);
}
if (action.equals("removeEntity"))
{
String entityName = request.getString("__selectName");
if (model.getMolgenisModel().getEntity(entityName) == null)
{
model.setSelectName(model.getMolgenisModel().findModuleNameForEntity(entityName));
System.out.println("**** SETTING MODULE TO : "
+ model.getMolgenisModel().findModuleNameForEntity(entityName));
model.setSelectType("module");
}
else
{
model.setSelectName(model.getMolgenisModel().getName());
model.setSelectType("molgenis");
}
String jumpToName = model.getMolgenisModel().findRemoveEntity(entityName);
if (jumpToName != null)
{
model.setSelectType("entity");
model.setSelectName(jumpToName);
}
return new ScreenMessage("entity '" + request.getString("__selectName") + "' removed", true);
}
if (action.equals("removeField"))
{
int indexToBeRemoved = request.getInt("__selectFieldIndex");
String parentEntity = request.getString("__selectFieldEntity");
Entity e = model.getMolgenisModel().findEntity(parentEntity);
e.removeField(indexToBeRemoved);
if (e.getFields().size() > 0)
{
model.setSelectType("field");
if (indexToBeRemoved == 0)
{
indexToBeRemoved = 1;
}
Field previousField = e.getFields().get(indexToBeRemoved - 1);
model.setSelectName(previousField.getName());
model.setSelectFieldEntity(e.getName());
model.setSelectFieldIndex(indexToBeRemoved - 1);
}
else
{
model.setSelectType("entity");
model.setSelectName(e.getName());
}
return new ScreenMessage("field removed", true);
}
return new ScreenMessage("action '" + action + "'not reckognized", false);
}
}