UserPrefEditForm.java/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
// www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////
package org.projectforge.web.user;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.projectforge.business.fibu.KundeDO;
import org.projectforge.business.fibu.ProjektDO;
import org.projectforge.business.fibu.kost.Kost2DO;
import org.projectforge.business.task.TaskDO;
import org.projectforge.business.user.UserPrefAreaRegistry;
import org.projectforge.business.user.UserPrefDao;
import org.projectforge.common.i18n.I18nEnum;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import org.projectforge.framework.persistence.user.api.UserPrefArea;
import org.projectforge.framework.persistence.user.entities.GroupDO;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.framework.persistence.user.entities.UserPrefDO;
import org.projectforge.framework.persistence.user.entities.UserPrefEntryDO;
import org.projectforge.web.WicketSupport;
import org.projectforge.web.fibu.Kost2DropDownChoice;
import org.projectforge.web.fibu.NewCustomerSelectPanel;
import org.projectforge.web.fibu.NewProjektSelectPanel;
import org.projectforge.web.task.TaskSelectPanel;
import org.projectforge.web.wicket.AbstractEditForm;
import org.projectforge.web.wicket.WicketUtils;
import org.projectforge.web.wicket.bootstrap.GridSize;
import org.projectforge.web.wicket.components.LabelValueChoiceRenderer;
import org.projectforge.web.wicket.components.MaxLengthTextArea;
import org.projectforge.web.wicket.components.MaxLengthTextField;
import org.projectforge.web.wicket.components.RequiredMaxLengthTextField;
import org.projectforge.web.wicket.flowlayout.DivTextPanel;
import org.projectforge.web.wicket.flowlayout.FieldsetPanel;
import org.projectforge.web.wicket.flowlayout.InputPanel;
import org.projectforge.web.wicket.flowlayout.TextAreaPanel;
import org.slf4j.Logger;
import java.util.HashMap;
import java.util.Map;
public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditPage>
{
private static final long serialVersionUID = 6647201995353615498L;
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(UserPrefEditForm.class);
private boolean parameterCreated;
protected Map<String, Component> dependentsMap = new HashMap<String, Component>();
/**
* @param parent Needed for i18n
* @param bean is used for creating a PropertyModel.
* @param propertyName is used as property name of the property model.
* @return
*/
public static DropDownChoice<UserPrefArea> createAreaDropdownChoice(final Component parent, final String id,
final Object bean,
final String propertyName, final boolean nullValid)
{
// DropDownChoice area
final LabelValueChoiceRenderer<UserPrefArea> areaChoiceRenderer = createAreaChoiceRenderer(parent);
final DropDownChoice<UserPrefArea> areaDropDownChoice = new DropDownChoice<UserPrefArea>(id,
new PropertyModel<UserPrefArea>(bean,
propertyName),
areaChoiceRenderer.getValues(), areaChoiceRenderer);
areaDropDownChoice.setNullValid(nullValid);
return areaDropDownChoice;
}
public static LabelValueChoiceRenderer<UserPrefArea> createAreaChoiceRenderer(final Component parent)
{
// DropDownChoice area
868d6abb7 2025 -> 2026 15a449443 UserPrefEditForm fixed: creation of task favorites. 63081666f Source file headers: 2024-> 2025. 67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renamed for avoiding mis-understandings in code). 4c04cfd65 MAJOR-CHANGE! Migration of integer id's to Long id's (including fk's etc.)
868d6abb75cd191a892911ac8e45058932cf9074 diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java index 22e782f38..4caddf244 100644 --- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java +++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java @@ -3,7 +3,7 @@ // Project ProjectForge Community Edition // www.projectforge.org // -// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com) +// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com) // // ProjectForge is dual-licensed. //
15a4494431aa947ca995f7b9aa2ef4689ffea500
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
index 475b97c98..22e782f38 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
@@ -235,8 +235,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
WicketSupport.get(UserPrefDao.class).updateParameterValueObject(param);
if (PFUserDO.class.isAssignableFrom(param.getType()) == true) {
final UserSelectPanel userSelectPanel = new UserSelectPanel(fs.newChildId(),
- new UserPrefPropertyModel<PFUserDO>(userPrefDao,
- param, "valueAsObject"),
+ new UserPrefPropertyModel<PFUserDO>(param, "valueAsObject"),
parentPage, param.getParameter());
if (data.getAreaObject() == UserPrefArea.USER_FAVORITE) {
userSelectPanel.setShowFavorites(false);
@@ -245,8 +244,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
userSelectPanel.init();
} else if (TaskDO.class.isAssignableFrom(param.getType()) == true) {
final TaskSelectPanel taskSelectPanel = new TaskSelectPanel(fs,
- new UserPrefPropertyModel<TaskDO>(userPrefDao, param,
- "valueAsObject"),
+ new UserPrefPropertyModel<TaskDO>(param, "valueAsObject"),
parentPage, param.getParameter());
if (data.getAreaObject() == UserPrefArea.TASK_FAVORITE) {
taskSelectPanel.setShowFavorites(false);
@@ -255,8 +253,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
taskSelectPanel.init();
} else if (GroupDO.class.isAssignableFrom(param.getType()) == true) {
final NewGroupSelectPanel groupSelectPanel = new NewGroupSelectPanel(fs.newChildId(),
- new UserPrefPropertyModel<GroupDO>(
- userPrefDao, param, "valueAsObject"),
+ new UserPrefPropertyModel<GroupDO>(param, "valueAsObject"),
parentPage, param.getParameter());
fs.add(groupSelectPanel);
groupSelectPanel.init();
@@ -286,8 +283,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
dependentsMap.put(param.getParameter(), kost2DropDownChoice);
} else if (ProjektDO.class.isAssignableFrom(param.getType()) == true) {
final NewProjektSelectPanel projektSelectPanel = new NewProjektSelectPanel(fs.newChildId(),
- new UserPrefPropertyModel<ProjektDO>(
- userPrefDao, param, "valueAsObject"),
+ new UserPrefPropertyModel<ProjektDO>(param, "valueAsObject"),
parentPage, param.getParameter());
if (data.getAreaObject() == UserPrefArea.PROJEKT_FAVORITE) {
projektSelectPanel.setShowFavorites(false);
@@ -296,8 +292,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
projektSelectPanel.init();
} else if (KundeDO.class.isAssignableFrom(param.getType()) == true) {
final NewCustomerSelectPanel kundeSelectPanel = new NewCustomerSelectPanel(fs.newChildId(),
- new UserPrefPropertyModel<KundeDO>(
- userPrefDao, param, "valueAsObject"),
+ new UserPrefPropertyModel<KundeDO>(param, "valueAsObject"),
null, parentPage, param.getParameter());
if (data.getAreaObject() == UserPrefArea.KUNDE_FAVORITE) {
kundeSelectPanel.setShowFavorites(false);
@@ -315,7 +310,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
final LabelValueChoiceRenderer<I18nEnum> choiceRenderer = new LabelValueChoiceRenderer<I18nEnum>(this,
(I18nEnum[]) param.getType().getEnumConstants());
final DropDownChoice<I18nEnum> choice = new DropDownChoice<I18nEnum>(fs.getDropDownChoiceId(),
- new UserPrefPropertyModel<I18nEnum>(userPrefDao, param, "valueAsObject"), choiceRenderer.getValues(),63081666f620fb87315f01b817e560e0b2f6a33a diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java index 1131ed597..475b97c98 100644 --- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java +++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java @@ -3,7 +3,7 @@ // Project ProjectForge Community Edition // www.projectforge.org // -// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com) +// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com) // // ProjectForge is dual-licensed. //
67805f2fc1f3e6a6393accb4a757a8f4049b001c
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
index ceda7663f..1131ed597 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
@@ -29,7 +29,6 @@ import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.projectforge.business.fibu.KundeDO;
@@ -146,7 +145,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
gridBuilder.newSplitPanel(GridSize.COL50);
{
// User
- data.setUser(ThreadLocalUserContext.getUser());
+ data.setUser(ThreadLocalUserContext.getLoggedInUser());
final FieldsetPanel fs = gridBuilder.newFieldset(getString("user")).suppressLabelForWarning();
fs.add(new DivTextPanel(fs.newChildId(), data.getUser().getFullname()));
}4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
index 1e7d7e946..ceda7663f 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UserPrefEditForm.java
@@ -263,7 +263,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
groupSelectPanel.init();
} else if (Kost2DO.class.isAssignableFrom(param.getType()) == true) {
final UserPrefEntryDO taskParam = data.getUserPrefEntry(param.getDependsOn());
- Integer taskId = null;
+ Long taskId = null;
if (taskParam == null) {
log.error(
"Annotation for Kost2DO types should have a valid dependsOn annotation. Task param not found for: "
@@ -278,7 +278,7 @@ public class UserPrefEditForm extends AbstractEditForm<UserPrefDO, UserPrefEditP
(Kost2DO) param.getValueAsObject(), taskId)
{
@Override
- protected void setKost2Id(final Integer kost2Id)
+ protected void setKost2Id(final Long kost2Id)
{
param.setValue(String.valueOf(kost2Id));
}