[VIVO-1245] Cleanup of NewIndividualFormGenerator, simplify configuration of generators and improve means of configuring in Freemarker
This commit is contained in:
parent
5cbcab5bcc
commit
fbeed01a94
10 changed files with 34 additions and 40 deletions
|
@ -30,7 +30,7 @@ public class JspToGeneratorMapping {
|
|||
map.put("dateTimeValueForm.jsp",
|
||||
edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.DateTimeValueFormGenerator.class.getName());
|
||||
map.put("defaultAddMissingIndividualForm.jsp",
|
||||
edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.DefaultAddMissingIndividualFormGenerator.getImplementationName());
|
||||
edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.DefaultAddMissingIndividualFormGenerator.class.getName());
|
||||
map.put("defaultDatapropForm.jsp",
|
||||
edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.DefaultDataPropertyFormGenerator.class.getName());
|
||||
map.put("defaultObjPropForm.jsp",
|
||||
|
@ -56,4 +56,18 @@ public class JspToGeneratorMapping {
|
|||
log.error( "could not load VIVO jsp mappings",th );
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T createFor(String jsp, Class<T> clazz) {
|
||||
try {
|
||||
if (jspsToGenerators.containsKey(jsp)) {
|
||||
Class classDefinition = Class.forName(jspsToGenerators.get(jsp));
|
||||
if (clazz.isAssignableFrom(classDefinition)) {
|
||||
return (T) classDefinition.newInstance();
|
||||
}
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,31 +46,13 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati
|
|||
protected static String objectVarName = "newIndividual";
|
||||
private static HashMap<String,String> defaultsForXSDtypes ;
|
||||
|
||||
private static Class defaultGeneratorClass = DefaultAddMissingIndividualFormGenerator.class;
|
||||
|
||||
static {
|
||||
defaultsForXSDtypes = new HashMap<String,String>();
|
||||
//defaultsForXSDtypes.put("http://www.w3.org/2001/XMLSchema#dateTime","2001-01-01T12:00:00");
|
||||
defaultsForXSDtypes.put("http://www.w3.org/2001/XMLSchema#dateTime","#Unparseable datetime defaults to now");
|
||||
}
|
||||
|
||||
protected DefaultAddMissingIndividualFormGenerator() { }
|
||||
|
||||
public static final DefaultAddMissingIndividualFormGenerator create() {
|
||||
try {
|
||||
return (DefaultAddMissingIndividualFormGenerator) defaultGeneratorClass.newInstance();
|
||||
} catch (InstantiationException e) {
|
||||
throw new IllegalStateException("Unable to create DefaultAddMissingIndividualFormGenerator", e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new IllegalStateException("Unable to create DefaultAddMissingIndividualFormGenerator", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static final String getImplementationName() {
|
||||
return defaultGeneratorClass.getName();
|
||||
}
|
||||
|
||||
//Method which checks whether this particular generator should be employed
|
||||
//Method which checks whether this particular generator should be employed
|
||||
public static final boolean isCreateNewIndividual(VitroRequest vreq, HttpSession session) {
|
||||
String command = vreq.getParameter("cmd");
|
||||
String predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
|
||||
|
@ -480,11 +462,4 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati
|
|||
|
||||
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
|
||||
}
|
||||
|
||||
|
||||
protected static void registerGeneratorClass(Class clazz) {
|
||||
if (DefaultAddMissingIndividualFormGenerator.class.isAssignableFrom(clazz)) {
|
||||
defaultGeneratorClass = clazz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import java.util.Map;
|
|||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.JspToGeneratorMapping;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
|
@ -98,7 +99,7 @@ public class DefaultObjectPropertyFormGenerator implements EditConfigurationGene
|
|||
|
||||
//Check if create new and return specific edit configuration from that generator.
|
||||
if(DefaultAddMissingIndividualFormGenerator.isCreateNewIndividual(vreq, session)) {
|
||||
DefaultAddMissingIndividualFormGenerator generator = DefaultAddMissingIndividualFormGenerator.create();
|
||||
EditConfigurationGenerator generator = JspToGeneratorMapping.createFor("defaultAddMissingIndividualForm.jsp", DefaultAddMissingIndividualFormGenerator.class);
|
||||
return generator.getEditConfiguration(vreq, session);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,11 +37,11 @@ public class NewIndividualFormGenerator implements EditConfigurationGenerator {
|
|||
private String template = "newIndividualForm.ftl";
|
||||
|
||||
private static HashMap<String,String> defaultsForXSDtypes ;
|
||||
static {
|
||||
static {
|
||||
defaultsForXSDtypes = new HashMap<String,String>();
|
||||
//defaultsForXSDtypes.put("http://www.w3.org/2001/XMLSchema#dateTime","2001-01-01T12:00:00");
|
||||
defaultsForXSDtypes.put("http://www.w3.org/2001/XMLSchema#dateTime","#Unparseable datetime defaults to now");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue