Creación de su propio plugin de formulario Autocomplete
Puede crear su propio formulario de autocompletado.
Condiciones:
- La nueva clase Default Form Values debe implementar la interfaz “AutocompleteFormValues”.
- La nueva clase Default Form Values debe declararse en el paquete “com.openkm.plugin.form.values”.
- La nueva clase Default Form Values debe estar anotada con “@PluginImplementation”.
- La nueva clase Default Form Values debe extender “BasePlugin”.
Interfaz Default Autocomplete Form:
package com.openkm.plugin.form.values;
import com.openkm.bean.form.FormElement;import net.xeoh.plugins.base.Plugin;
import java.util.List;
public interface AutocompleteFormValues extends Plugin { String getName();
void autocompleteFormValues(String uuid, String grpName, List<FormElement> formElementList);}La nueva clase debe cargarse en el paquete com.openkm.plugin.form.values porque el sistema de plugins de la aplicación intentará cargarla desde ahí. Vea el ejemplo a continuación:
Descripción del método
Sección titulada «Descripción del método»| Method | Type | Description |
|---|---|---|
| autocompleteFormValues(String uuid, String grpName, List |
void | El método autocompleta los elementos de formulario del grupo. |
Ejemplo de la implementación de valores de formulario por defecto
Sección titulada «Ejemplo de la implementación de valores de formulario por defecto»package com.openkm.plugin.form.values;
import com.openkm.bean.form.FormElement;import com.openkm.bean.form.HorizontalPanel;import com.openkm.bean.form.Input;import com.openkm.bean.form.VerticalPanel;import com.openkm.plugin.BasePlugin;import net.xeoh.plugins.base.annotations.PluginImplementation;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
import java.util.List;
@PluginImplementationpublic class SampleAutocompleteFormValues extends BasePlugin implements AutocompleteFormValues { private static final Logger log = LoggerFactory.getLogger(SampleAutocompleteFormValues.class);
@Override public String getName() { return "Sample autocomplete form values implementation"; }
@Override public void autocompleteFormValues(String uuid, String grpName, List<FormElement> formElementList) { log.info("autocompleteFormValues({}, {}, {})", uuid, grpName, formElementList); autocomplete(formElementList); }
private void autocomplete(List<FormElement> formElementList) { for (FormElement formElement : formElementList) { if (formElement instanceof Input) { Input input = (Input) formElement; if (StringUtils.isEmpty(input.getValue())) { input.setValue("Autocomplete with name: " + formElement.getName()); } } else if (formElement instanceof HorizontalPanel) { HorizontalPanel hPanel = (HorizontalPanel) formElement; autocomplete(hPanel.getElements()); } else if (formElement instanceof VerticalPanel) { VerticalPanel vPanel = (VerticalPanel) formElement; autocomplete(vPanel.getElements()); } } }}Definición de metadatos
Sección titulada «Definición de metadatos»<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.11//EN" "http://www.openkm.com/dtd/property-groups-3.11.dtd"><property-groups> <property-group label="Autocomple sample" name="okg:autocomplete" autocompleteValueClassName="com.openkm.plugin.form.values.SampleAutocompleteFormValues"> <input label="Input label first" name="okp:autocomplete.first" type="text"/> <hpanel name="okp:autocomplete.horizontal1"> <input label="Input label 1" name="okp:autocomplete.input_h1" /> <input label="Input label 2" name="okp:autocomplete.input_h2" /> </hpanel> </property-group></property-groups>Extracción de metadatos usando IA
Sección titulada «Extracción de metadatos usando IA»Si un documento contiene texto extraído y los parámetros de inteligencia artificial están correctamente configurados en la configuración de la aplicación OpenKM, los metadatos pueden extraerse automáticamente usando el siguiente plugin de autocompletado:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.11//EN" "http://www.openkm.com/dtd/property-groups-3.11.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting" autocompleteValueClassName="com.openkm.plugin.form.values.AIAutocompleteFormValues"> <input label="Input label" name="okp:consulting.input1" /> <separator label="Separator label" name="okp:consulting.separator" /> <input label="Input label" name="okp:consulting.input2" /> </property-group></property-groups>