Crear su propio plugin Option Select Values
Puede crear su propio Option Select Values.
Condiciones:
- La nueva clase Option Select Values debe implementar la interfaz “OptionSelectValues”.
- La nueva clase Option Select Values debe declararse en el paquete “com.openkm.plugin.form.values”.
- La nueva clase Option Select Values debe anotarse con “@PluginImplementation”.
- La nueva clase Option Select Values debe extender “BasePlugin”.
Interfaz Option Select Values:
package com.openkm.plugin.form.values;
import com.openkm.bean.form.Option;import net.xeoh.plugins.base.Plugin;
import java.util.List;
/** * OptionSelectValues */public interface OptionSelectValues extends Plugin {
String getName();
List<Option> getOptions() throws OptionSelectException;}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í.
Descripción de los métodos
Sección titulada «Descripción de los métodos»| Método | Tipo | Descripción |
|---|---|---|
| getName() | String | Devuelve el nombre que se mostrará en la tabla de plugins. |
| getOptions() | List | Devuelve una lista de opciones. |
Ejemplo de implementación de Option Select Values
Sección titulada «Ejemplo de implementación de Option Select Values»package com.openkm.plugin.form.values;
import com.openkm.api.OKMAuth;import com.openkm.bean.form.Option;import com.openkm.core.DatabaseException;import com.openkm.db.bean.DbUser;import com.openkm.plugin.BasePlugin;import com.openkm.principal.AuthException;import net.xeoh.plugins.base.annotations.PluginImplementation;import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;import java.util.List;
@PluginImplementationpublic class OptionSelectUserList extends BasePlugin implements OptionSelectValues {
@Autowired private OKMAuth okmAuth;
@Override public String getName() { return "User list"; }
@Override public List<Option> getOptions() throws OptionSelectException { List<Option> options = new ArrayList<>();
try { List<DbUser> userList = okmAuth.getUsers(null, true); for (DbUser user : userList) { Option option = new Option(); option.setLabel(user.getName()); option.setValue(user.getId()); options.add(option); } } catch (AuthException | DatabaseException e) { throw new OptionSelectException(e); }
return options; }}