Ir al contenido

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

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