Ir al contenido

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í.

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;
@PluginImplementation
public 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;
}
}