Ir al contenido
Otras versiones

Cargando…

Crear sus propios valores por defecto de formulario

Para crear sus propios valores por defecto de formulario debe crear una nueva clase que implemente la interfaz FormDefaultValues:

package com.openkm.plugin.form;
import com.openkm.bean.form.FormElement;
import net.xeoh.plugins.base.Plugin;
import java.util.List;
/**
* FormDefaultValues
*
*/
public interface FormDefaultValues extends Plugin {
String getName();
void setDefaultValues(String grpName, List<FormElement> formElementList);
}

La nueva clase debe cargarse en el paquete com.openkm.plugin.form, porque el sistema de plugins de la aplicación la cargará desde ahí. Vea el ejemplo a continuación:

Método Tipo Descripción
setDefaultValues(String grpName, List formElementList) void Este método establece valores por defecto para los elementos de formulario del grupo.

Ejemplo de implementación de los valores por defecto de formulario

Sección titulada «Ejemplo de implementación de los valores por defecto de formulario»
package com.openkm.plugin.form;
import com.openkm.bean.form.FormElement;
import com.openkm.bean.form.Input;
import net.xeoh.plugins.base.annotations.PluginImplementation;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Formatter;
import java.util.List;
/**
* Implementation of default form values
*/
@PluginImplementation
public class FormDefaultValuesDate implements FormDefaultValues {
@Override
public String getName() {
return "Date Default Values";
}
@Override
public void setDefaultValues(String grpName, List<FormElement> formElementList) {
Formatter fmt = new Formatter();
if(grpName.equalsIgnoreCase("okg:test")) {
for(FormElement element: formElementList) {
if(element.getName().equals("okp:test.date")) {
Input input = (Input) element;
if(input.getValue().isEmpty()) {
DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
input.setValue(dateFormat.format(date));
}
}
}
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.8//EN" "http://www.openkm.com/dtd/property-groups-2.8.dtd">
<property-groups>
<property-group label="Test" name="okg:test" defaultValueClassName="com.openkm.plugin.form.FormDefaultValuesDate">
<input label="Fecha" type="date" name="okp:test.date"/>
</property-group>
</property-groups>