Creación de su propio plugin Suggestbox
Puede crear su propio Suggestbox.
Condiciones:
- La nueva clase Suggestbox debe implementar la interfaz “SuggestBoxValues”.
- La nueva clase Suggestbox debe estar declarada en el paquete “com.openkm.plugin.form.values”.
- La nueva clase Suggestbox debe estar anotada con “@PluginImplementation”.
- La nueva clase Suggestbox debe extender “BasePlugin”.
Interfaz Suggestbox:
package com.openkm.plugin.form.values;
import com.openkm.db.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, ya que 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.db.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; }}