Crear su propio plugin Suggestbox
Puede crear su propio Suggestbox.
Condiciones:
- La nueva clase Suggestbox debe implementar la interfaz “SuggestBoxValues”.
- La nueva clase Suggestbox debe declararse en el paquete “com.openkm.plugin.form.values”.
- La nueva clase Suggestbox debe anotarse con “@PluginImplementation”.
- La nueva clase Suggestbox debe extender “BasePlugin”.
Interfaz Suggestbox:
package com.openkm.plugin.form.values;
import com.openkm.bean.KeyValue;import net.xeoh.plugins.base.Plugin;
import java.util.List;
public interface SuggestBoxValues extends Plugin {
String getName();
List<KeyValue> getSuggestBoxValuesByFilter(String filterValue) throws SuggestBoxException;
KeyValue getExactKeyValueByClassName(String value) throws SuggestBoxException;
}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. |
| getSuggestBoxValuesByFilter(String filterValue) | List |
Devuelve una lista de objetos KeyValue. |
| getExactKeyValueByClassName(String value) | KeyValue | Devuelve un objeto KeyValue. |
Ejemplo de implementación
Sección titulada «Ejemplo de implementación»package com.openkm.plugin.form.values;
import net.xeoh.plugins.base.annotations.PluginImplementation;
import java.util.ArrayList;import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.openkm.api.OKMAuth;import com.openkm.bean.CommonUser;import com.openkm.bean.KeyValue;import com.openkm.plugin.BasePlugin;import com.openkm.principal.PrincipalAdapterException;
@PluginImplementationpublic class SuggestBoxUserList extends BasePlugin implements SuggestBoxValues {
@Autowired private OKMAuth okmAuth;
@Override public String getName() { return "User list suggest box"; }
@Override public List<KeyValue> getSuggestBoxValuesByFilter(String filterValue) throws SuggestBoxException { List<KeyValue> list = new ArrayList<>();
try { for (CommonUser user : okmAuth.getUsers(null)) { if (user.getName().toLowerCase().contains(filterValue.toLowerCase())) { KeyValue value = new KeyValue(); value.setKey(user.getId()); value.setValue(user.getName()); list.add(value); } } } catch (PrincipalAdapterException e) { throw new SuggestBoxException(e); }
return list; }
@Override public KeyValue getExactKeyValueByClassName(String value) throws SuggestBoxException { KeyValue keyValue = null;
try { for (CommonUser user : okmAuth.getUsers(null)) { if (user.equals(value)) { keyValue = new KeyValue(); keyValue.setKey(user.getId()); keyValue.setValue(user.getName()); break; } } } catch (PrincipalAdapterException e) { throw new SuggestBoxException(e); }
return keyValue; }}