ToDoEditForm.javaPaket: org.projectforge.plugins.todo
Klassen: ToDoEditForm
Erweitert: AbstractEditForm
Methoden (11): init, getDefaultChoice, onUpdate, component, onSubmit, onError, getDueDateProperties, addCloseToDoDialog, init, onCloseButtonSubmit, getLogger
Felder (4): serialVersionUID, templateName, closeToDoDialog, groupSelectPanel
Importe: 32 Pakete
package org.projectforge.plugins.todo;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.util.visit.IVisit;
import org.apache.wicket.util.visit.IVisitor;
import org.hibernate.Hibernate;
import org.projectforge.business.configuration.ConfigurationService;
import org.projectforge.business.user.UserGroupCache;
import org.projectforge.business.user.UserPrefDao;
import org.projectforge.common.i18n.Priority;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.framework.persistence.user.entities.UserPrefDO;
import org.projectforge.web.WicketSupport;
import org.projectforge.web.dialog.ModalDialog;
import org.projectforge.web.task.TaskSelectPanel;
import org.projectforge.web.user.NewGroupSelectPanel;
import org.projectforge.web.user.UserSelectPanel;
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.*;
import org.projectforge.web.wicket.flowlayout.*;
import org.slf4j.Logger;
import java.time.LocalDate;
public class ToDoEditForm extends AbstractEditForm<ToDoDO, ToDoEditPage>
{
private static final long serialVersionUID = -6208809585214296635L;
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ToDoEditForm.class);
protected boolean saveAsTemplate, sendNotification = true, sendShortMessage;
@SuppressWarnings("unused")
private String templateName; // Von Wicket verwendet
private ModalDialog closeToDoDialog;
private MaxLengthTextArea commentTextArea, closeToDoDialogCommentTextArea;
protected NewGroupSelectPanel groupSelectPanel;
public ToDoEditForm(final ToDoEditPage parentPage, final ToDoDO data)
{
super(parentPage, data);
}
@SuppressWarnings("serial")
@Override
protected void init()
{
super.init();
gridBuilder.newGridPanel();
UserPrefDao userPrefDao = WicketSupport.get(UserPrefDao.class);
if (isNew()) {
// Favoriten
final String[] templateNames = userPrefDao.getPrefNames(ToDoPlugin.USER_PREF_AREA);
if (templateNames != null && templateNames.length > 0) {
// DropDownChoice Vorlagen
final FieldsetPanel fs = gridBuilder.newFieldset(getString("templates"));
final LabelValueChoiceRenderer<String> templateNamesChoiceRenderer = new LabelValueChoiceRenderer<>();
templateNamesChoiceRenderer.addValue("", getString("userPref.template.select"));
for (final String name : templateNames) {
templateNamesChoiceRenderer.addValue(name, name);
}
final DropDownChoice<String> templateNamesChoice = new DropDownChoice<String>(fs.getDropDownChoiceId(),
new PropertyModel<>(
this, "templateName"),
templateNamesChoiceRenderer.getValues(), templateNamesChoiceRenderer)
{
@Override
protected CharSequence getDefaultChoice(final String selected)
{
return "";
}
};
templateNamesChoice.add(new FormComponentUpdatingBehavior()
{
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void onUpdate()
{
final String newSelection = (String) this.getFormComponent().getModelObject();
if (StringUtils.isNotEmpty(newSelection)) {
// Felder mit ausgewählten Vorlagenwerten füllen:
final UserPrefDO userPref = userPrefDao.selectUserPref(ToDoPlugin.USER_PREF_AREA, newSelection);
if (userPref != null) {
userPrefDao.fillFromUserPrefParameters(userPref, data);
}
templateName = "";
// Alle Formularkomponenten als modellgeändert markieren.
visitFormComponents(new IVisitor()
{
@Override
public void component(final Object object, final IVisit visit)
{
final FormComponent<?> fc = (FormComponent<?>) object;
fc.modelChanged();
visit.dontGoDeeper();
}
});
}
}
});
templateNamesChoice.setNullValid(true);
fs.add(templateNamesChoice);
}
// ... (gekürzt, insgesamt 350 Zeilen)
868d6abb7 2025 -> 2026 63081666f Quellcode-Dateiköpfe: 2024 -> 2025. 3785f8347 Migration in Arbeit... 011000f03 Migration in Arbeit... (alle Tests aller Pakete: OK). 06828f490 Migration in Arbeit...