@Override public String getItemId(Object item) { return ((SysConfig) item).getId(); }
public String toString() { return new ToStringBuilder(this) .append("id", getId()) .toString(); }
public int hashCode() { return new HashCodeBuilder() .append(getId()) .toHashCode(); } }
@Override public Object getEntity(Object entity) { return entity instanceof SysConfig ? ((SysConfigHelper)getHelper()).getSysConfig(String.valueOf(((SysConfig) entity).getId())) : null; }
@Override protected Component buildAndBindCustomComponent(String propertyId) { List<Validator> validators = getFieldFactory().getValidators(propertyId); if ("permissions".equals(propertyId)) { CheckBoxGroup<Permission> f = new CheckBoxGroup("Permissions"); List<SysConfig> sysconfigs = ((RolesHelper)getHelper()).getPermissions(); List<Permission> allPermissions = new ArrayList<>(); //convert SysConfigs to Permissions for (SysConfig sys : sysconfigs) { Permission p = Permission.valueOf(sys.getId().substring(5)); allPermissions.add(p); } f.setItems(allPermissions); f.setItemCaptionGenerator((ItemCaptionGenerator<Permission>) item -> sysconfigs.get(allPermissions.indexOf(item)).getId().substring(5) + " : " + //remove "perm." prefix sysconfigs.get(allPermissions.indexOf(item)).getValue()); Binder.BindingBuilder builder = getBinder().forField(f); validators.forEach(builder::withValidator); builder.bind(propertyId); return f; } return null; }
@Override public void exec(CLIContext cli, String[] args) throws Exception { try (DB db = new DB()) { db.open(); SysConfigManager mgr = new SysConfigManager(db); if (cli.getUserData().containsKey(SYSCONFIG.PREFIX)) mgr.setPrefix((String) cli.getUserData().get(SYSCONFIG.PREFIX)); else if (args.length > 1) mgr.setPrefix(args[1]); String format = "%" + mgr.getMaxIdLength() + "s: %s"; for (SysConfig sc : mgr.getAll()) { cli.println (String.format (format, sc.getId(), sc.getValue())); } } catch (Exception e) { cli.println (e.getMessage()); } } }
@Override public void setGridGetters() { Grid<SysConfig> g = this.getGrid(); g.addColumn(sysconfig -> removePrefix(sysconfig.getId())).setId("id"); g.addColumn(SysConfig::getValue).setId("value"); }
@Override public boolean updateEntity (Binder binder) throws BLException { try { return (boolean) DB.execWithTransaction((db) -> { SysConfig oldSysConfig = (SysConfig) ((SysConfig) getOriginalEntity()).clone(); binder.writeBean(getOriginalEntity()); SysConfig s = (SysConfig) getOriginalEntity(); //need to re-set prefix to id as it gets deleted on write s.setId(addPrefix(s.getId())); db.session().merge(s); return addRevisionUpdated(db, getEntityName(), String.valueOf(s.getId()), oldSysConfig, s, new String[]{"value"}); }); } catch (Exception e) { QI.getQI().getLog().error(e); return false; } }
@Override public boolean saveEntity (Binder binder) throws BLException { SysConfig entity = (SysConfig) getOriginalEntity(); if (binder.writeBeanIfValid(getOriginalEntity())) { String id = entity.getId(); id = prefix != null ? prefix + id : id; if (getSysConfig(id) == null) { final String finalId = id; try { return (boolean) DB.execWithTransaction((db) -> { SysConfigManager mgr = new SysConfigManager(db, prefix); mgr.put(entity.getId(), entity.getValue()); addRevisionCreated(db, "SYSCONFIG", finalId); return true; }); } catch (Exception e) { QI.getQI().getLog().error(e); return false; } } else { throw new BLException("SysConfig " + id + " already exists."); } } else { throw new BLException("Invalid SysConfig"); } }
@Override public void updateEntity() throws BLException { SysConfig entity = getInstance(); entity.setId(((SysConfigHelper)getHelper()).addPrefix(entity.getId())); if (getHelper().updateEntity(getBinder())) getApp().displayNotification(getApp().getMessage("updated", getEntityName().toUpperCase())); else getApp().displayNotification(getApp().getMessage("notchanged")); }