private void setValue(final UserPrefEntryDO param, final Object value) { userPrefDao.setValueObject(param, value); final List<UserPrefEntryDO> dependents = getData().getDependentUserPrefEntries(param.getParameter()); if (dependents != null) { for (final UserPrefEntryDO entry : dependents) { if (Kost2DO.class.isAssignableFrom(entry.getType()) == true) { final Kost2DropDownChoice choice = (Kost2DropDownChoice) form.dependentsMap.get(entry.getParameter()); choice.setTaskId((Integer) value); } } } }
private void updateEntryValue(final XStreamSavingConverter xstreamSavingConverter, final UserPrefEntryDO entry, final Class<?> entityClass) { if (StringUtils.isEmpty(entry.getValue()) == true || "null".equals(entry.getValue()) == true) { return; } final Integer oldId = entry.getValueAsInteger(); final Integer newId = xstreamSavingConverter.getNewIdAsInteger(entityClass, oldId); if (newId != null) { entry.setValue(newId.toString()); } } }
public UserPrefEntryDO ensureAndGetAccessEntry(final String parameter) { if (this.prefEntries == null) { setUserPrefEntries(new TreeSet<UserPrefEntryDO>()); } UserPrefEntryDO entry = getUserPrefEntry(parameter); if (entry == null) { entry = new UserPrefEntryDO(); entry.setParameter(parameter); this.addUserPrefEntry(entry); } return entry; }
/** * Sets the value object by converting it from the value string. The type of the userPrefEntry must be given. * * @param userPrefEntry */ public void updateParameterValueObject(final UserPrefEntryDO userPrefEntry) { userPrefEntry.valueAsObject = getParameterValue(userPrefEntry.getType(), userPrefEntry.getValue()); }
for (final UserPrefEntryDO param : data.getSortedUserPrefEntries()) { final FieldsetPanel fs = gridBuilder .newFieldset(param.getI18nKey() != null ? getString(param.getI18nKey()) : param.getParameter()) .suppressLabelForWarning(); if (StringUtils.isNotEmpty(param.getTooltipI18nKey()) == true) { fs.addHelpIcon(getString(param.getTooltipI18nKey())); if (PFUserDO.class.isAssignableFrom(param.getType()) == true) { final UserSelectPanel userSelectPanel = new UserSelectPanel(fs.newChildId(), new UserPrefPropertyModel<PFUserDO>(userPrefDao, param, "valueAsObject"), parentPage, param.getParameter()); if (data.getArea() == UserPrefArea.USER_FAVORITE) { userSelectPanel.setShowFavorites(false); } else if (TaskDO.class.isAssignableFrom(param.getType()) == true) { final TaskSelectPanel taskSelectPanel = new TaskSelectPanel(fs, new UserPrefPropertyModel<TaskDO>(userPrefDao, param, "valueAsObject"), parentPage, param.getParameter()); if (data.getArea() == UserPrefArea.TASK_FAVORITE) { taskSelectPanel.setShowFavorites(false); } else if (GroupDO.class.isAssignableFrom(param.getType()) == true) { final NewGroupSelectPanel groupSelectPanel = new NewGroupSelectPanel(fs.newChildId(), new UserPrefPropertyModel<GroupDO>( userPrefDao, param, "valueAsObject"), parentPage, param.getParameter()); fs.add(groupSelectPanel);
private void assertUserPrefEntry(final UserPrefEntryDO userPrefEntry, final String parameter, final Class<?> type, final String valueAsString, final String i18nKey, final Integer maxLength, final String orderString) { assertEquals(parameter, userPrefEntry.getParameter()); assertEquals(type, userPrefEntry.getType()); assertEquals(i18nKey, userPrefEntry.getI18nKey()); assertEquals(maxLength, userPrefEntry.getMaxLength()); assertEquals(orderString, userPrefEntry.getOrderString()); assertEquals(valueAsString, userPrefEntry.getValue()); }
assertUserPrefEntry(entry, "user", PFUserDO.class, user2.getId().toString(), "user", null, "1"); userPrefDao.updateParameterValueObject(entry); assertEquals(user2.getId(), ((PFUserDO) entry.getValueAsObject()).getId()); entry = it.next(); assertUserPrefEntry(entry, "task", TaskDO.class, task.getId().toString(), "task", null, "2"); userPrefDao.updateParameterValueObject(entry); assertEquals(task.getId(), ((TaskDO) entry.getValueAsObject()).getId()); entry = it.next(); assertUserPrefEntry(entry, "kost2", Kost2DO.class, null, "fibu.kost2", null, "3"); assertEquals("Micromata", timesheet.getLocation()); assertEquals("Wrote a test case...", timesheet.getDescription()); userPref.getUserPrefEntry("location").setValue("At home"); userPrefDao.update(userPref); String[] names = userPrefDao.getPrefNames(UserPrefArea.TIMESHEET_TEMPLATE); assertEquals("test", names[0]); List<UserPrefEntryDO> dependents = userPref .getDependentUserPrefEntries(userPref.getUserPrefEntry("user").getParameter()); assertNull(dependents); dependents = userPref.getDependentUserPrefEntries(userPref.getUserPrefEntry("task").getParameter()); assertEquals(1, dependents.size()); assertEquals("kost2", dependents.get(0).getParameter());
private void addUserPrefParameters(final UserPrefDO userPref, final Class<?> beanType, final Object obj) { Validate.notNull(userPref); Validate.notNull(beanType); final Field[] fields = beanType.getDeclaredFields(); AccessibleObject.setAccessible(fields, true); int no = 0; for (final Field field : fields) { if (field.isAnnotationPresent(UserPrefParameter.class) == true) { final UserPrefEntryDO userPrefEntry = new UserPrefEntryDO(); userPrefEntry.setParameter(field.getName()); if (obj != null) { Object value = null; try { value = field.get(obj); userPrefEntry.setValue(convertParameterValueToString(value)); } catch (final IllegalAccessException ex) { log.error(ex.getMessage(), ex); } userPrefEntry.valueAsObject = value; } evaluateAnnotation(userPrefEntry, beanType, field); if (userPrefEntry.orderString == null) { userPrefEntry.orderString = "ZZZ" + StringHelper.format2DigitNumber(no++); } userPref.addUserPrefEntry(userPrefEntry); } } }
Field field = null; for (final Field f : fields) { if (f.getName().equals(entry.getParameter()) == true) { field = f; break; log.error("Declared field '" + entry.getParameter() + "' not found for " + obj.getClass() + ". Ignoring parameter."); } else { final Object value = getParameterValue(field.getType(), entry.getValue()); try { if (preserveExistingValues == true) { log.error(ex.getMessage() + " While setting declared field '" + entry.getParameter() + "' of " + obj.getClass() log.error(ex.getMessage() + " While setting declared field '" + entry.getParameter() + "' of " + obj.getClass()
private void evaluateAnnotations(final UserPrefDO userPref, final Class<?> beanType) { if (userPref.getUserPrefEntries() == null) { return; } final Field[] fields = beanType.getDeclaredFields(); int no = 0; for (final Field field : fields) { if (field.isAnnotationPresent(UserPrefParameter.class) == true) { UserPrefEntryDO userPrefEntry = null; for (final UserPrefEntryDO entry : userPref.getUserPrefEntries()) { if (field.getName().equals(entry.getParameter()) == true) { userPrefEntry = entry; break; } } if (userPrefEntry == null) { userPrefEntry = new UserPrefEntryDO(); evaluateAnnotation(userPrefEntry, beanType, field); userPref.addUserPrefEntry(userPrefEntry); } else { evaluateAnnotation(userPrefEntry, beanType, field); } if (StringUtils.isBlank(userPrefEntry.orderString) == true) { userPrefEntry.orderString = "ZZZ" + StringHelper.format2DigitNumber(no++); } userPrefEntry.setParameter(field.getName()); } } }
@Transient public UserPrefEntryDO getUserPrefEntry(final String parameter) { if (this.prefEntries == null) { return null; } for (final UserPrefEntryDO entry : this.prefEntries) { if (entry.getParameter().equals(parameter) == true) { return entry; } } return null; }
/** * Copies all values from the given src object excluding the values created and modified. Null values will be * excluded. * * @param src */ @Override public ModificationStatus copyValuesFrom(final BaseDO<? extends Serializable> source, final String... ignoreFields) { ModificationStatus modificationStatus = super.copyValuesFrom(source, ignoreFields); final UserPrefDO src = (UserPrefDO) source; if (src.getUserPrefEntries() != null) { for (final UserPrefEntryDO srcEntry : src.getUserPrefEntries()) { final UserPrefEntryDO destEntry = ensureAndGetAccessEntry(srcEntry.getParameter()); final ModificationStatus st = destEntry.copyValuesFrom(srcEntry); modificationStatus = getModificationStatus(modificationStatus, st); } final Iterator<UserPrefEntryDO> iterator = getUserPrefEntries().iterator(); while (iterator.hasNext()) { final UserPrefEntryDO destEntry = iterator.next(); if (src.getUserPrefEntry(destEntry.getParameter()) == null) { iterator.remove(); } } } return modificationStatus; }
@Override protected void setKost2Id(final Integer kost2Id) { param.setValue(String.valueOf(kost2Id)); } };
@Override public void clearIds() { super.clearIds(); for (final UserPrefEntryDO entry : form.getData().getUserPrefEntries()) { entry.setId(null); } }
@Transient public String getUserPrefEntryAsString(final String parameter) { final UserPrefEntryDO entry = getUserPrefEntry(parameter); if (entry == null) { return null; } return entry.getValue(); }
@Override public Object preparePersist(EntityMetadata entityMetadata, Object entity, XmlDumpRestoreContext ctx) { final UserPrefDO userPref = (UserPrefDO) entity; final Set<UserPrefEntryDO> entries = userPref.getUserPrefEntries(); if (entries == null || entries.size() == 0) { return null; } for (final UserPrefEntryDO entry : entries) { if ("task".equals(entry.getParameter()) == true) { updateEntryValue(ctx, entry, TaskDO.class); } else if ("user".equals(entry.getParameter()) == true || // "reporter".equals(entry.getParameter()) == true // Of ToDo's || "assignee".equals(entry.getParameter()) == true // Of ToDo's ) { updateEntryValue(ctx, entry, PFUserDO.class); } else if ("group".equals(entry.getParameter()) == true) { updateEntryValue(ctx, entry, GroupDO.class); } else if ("kost2".equals(entry.getParameter()) == true) { updateEntryValue(ctx, entry, Kost2DO.class); } else if ("kunde".equals(entry.getParameter()) == true) { updateEntryValue(ctx, entry, KundeDO.class); } else if ("projekt".equals(entry.getParameter()) == true) { updateEntryValue(ctx, entry, ProjektDO.class); } } return null; }
public void setValueObject(final UserPrefEntryDO userPrefEntry, final Object value) { userPrefEntry.setValue(convertParameterValueToString(value)); updateParameterValueObject(userPrefEntry); }
/** * @param obj * @return */ public static <T extends Serializable> void setIdentifier(final BaseDO<T> obj, final T value) { if (Hibernate.isInitialized(obj) == true) { obj.setId(value); } else if (obj instanceof DefaultBaseDO) { ((DefaultBaseDO) obj).setId((Integer) value); } else if (obj instanceof AccessEntryDO) { ((AccessEntryDO) obj).setId((Integer) value); } else if (obj instanceof Kost2ArtDO) { ((Kost2ArtDO) obj).setId((Integer) value); } else if (obj instanceof KundeDO) { ((KundeDO) obj).setId((Integer) value); } else if (obj instanceof UserPrefEntryDO) { ((UserPrefEntryDO) obj).setId((Integer) value); } else { log.error("Couldn't set the identifier of the given object for class: " + obj.getClass().getName()); } }
private void updateEntryValue(final XmlDumpRestoreContext ctx, final UserPrefEntryDO entry, final Class<?> entityClass) { if (StringUtils.isEmpty(entry.getValue()) == true || "null".equals(entry.getValue()) == true) { return; } final Integer oldId = entry.getValueAsInteger(); Object oldent = ctx.findEntityByOldPk(oldId, entityClass); if (oldent == null) { LOG.warn("Cannot find oldentity by pk: " + entityClass + "(" + oldId + ")"); return; } EntityMetadata em = ctx.getEmgr().getEmgrFactory().getMetadataRepository().getEntityMetadata(entityClass); Object newId = em.getIdColumn().getGetter().get(oldent); if (newId != null) { entry.setValue(newId.toString()); } } }
if ("task".equals(entry.getParameter()) == true) { updateEntryValue(xstreamSavingConverter, entry, TaskDO.class); } else if ("user".equals(entry.getParameter()) == true || // "reporter".equals(entry.getParameter()) == true // Of ToDo's || "assignee".equals(entry.getParameter()) == true // Of ToDo's ) { updateEntryValue(xstreamSavingConverter, entry, PFUserDO.class); } else if ("group".equals(entry.getParameter()) == true) { updateEntryValue(xstreamSavingConverter, entry, GroupDO.class); } else if ("kost2".equals(entry.getParameter()) == true) { updateEntryValue(xstreamSavingConverter, entry, Kost2DO.class); } else if ("kunde".equals(entry.getParameter()) == true) { updateEntryValue(xstreamSavingConverter, entry, KundeDO.class); } else if ("projekt".equals(entry.getParameter()) == true) { updateEntryValue(xstreamSavingConverter, entry, ProjektDO.class);