TemplateEntry.javaprojectforge-business/src/main/java/org/projectforge/business/teamcal/filter/TemplateEntry.java, die Java-Code für die Suchfilter-Ebene enthält.Paket: org.projectforge.business.teamcal.filter
Klassen: TemplateEntry
Serializable, Comparable<TemplateEntry>, Cloneable
Methoden (36): getCalendarProperties, getName, setName, addNewCalendarProperties, removeCalendarProperties, getColorCode, getCalendarProperties, contains, isVisible, getVisibleCalendarIds, getCalendars, getCalendarIds, setDirty, compareTo, hashCode, equals, clone, isModified, getDefaultCalendarId, setDefaultCalendarId, isShowBirthdays, setShowBirthdays, isShowBreaks, setShowBreaks, isShowPlanning...
Felder (11): serialVersionUID, calendarProperties, visibleCalendarIds, name, defaultCalendarId, showBirthdays, showStatistics, timesheetUserId, selectedCalendar, showBreaks, showPlanning
Importe: 9 Pakete
package org.projectforge.business.teamcal.filter;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import org.apache.commons.lang3.StringUtils;
import org.projectforge.Constants;
import org.projectforge.business.teamcal.admin.TeamCalCache;
import org.projectforge.business.teamcal.admin.model.TeamCalDO;
import org.projectforge.framework.configuration.ApplicationContextProvider;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import java.io.Serializable;
import java.util.*;
/**
* Speichert die Einstellungen eines benannten Filtereintrags.
*
* @author M. Lauterbach (m.lauterbach@micromata.de)
* @author K. Reinhard (k.reinhard@micromata.de)
*/
public class TemplateEntry implements Serializable, Comparable<TemplateEntry>, Cloneable {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TemplateEntry.class);
private static final long serialVersionUID = 409057949195992116L;
private final Set<TemplateCalendarProperties> calendarProperties = new TreeSet<>();
private Set<Long> visibleCalendarIds;
@XStreamAsAttribute
private String name;
@XStreamAsAttribute
private Long defaultCalendarId;
@XStreamAsAttribute
private Boolean showBirthdays;
@XStreamAsAttribute
private Boolean showStatistics;
@XStreamAsAttribute
private Long timesheetUserId;
@XStreamAsAttribute
private String selectedCalendar;
@XStreamAsAttribute
private Boolean showBreaks = true;
@XStreamAsAttribute
private Boolean showPlanning;
public Set<TemplateCalendarProperties> getCalendarProperties() {
return calendarProperties;
}
/**
* @return der Name
*/
public String getName() {
return name;
}
/**
* @param name der zu setzende Name
* @return dieses Objekt für Methodenverkettung.
*/
public TemplateEntry setName(final String name) {
this.name = name;
return this;
}
public TemplateCalendarProperties addNewCalendarProperties(final TeamCalCalendarFilter filter, final Long calId) {
Objects.requireNonNull(calId);
final TemplateCalendarProperties props = new TemplateCalendarProperties();
props.setCalId(calId);
props.setColorCode(filter.getUsedColor(calId));
this.calendarProperties.add(props);
this.visibleCalendarIds = null;
return props;
}
public void removeCalendarProperties(final Long calId) {
Objects.requireNonNull(calId);
final TemplateCalendarProperties props = getCalendarProperties(calId);
if (props != null) {
this.calendarProperties.remove(props);
}
this.visibleCalendarIds = null;
}
public String getColorCode(final Long calendarId) {
final TemplateCalendarProperties props = getCalendarProperties(calendarId);
if (props == null) {
return null;
}
return props.getColorCode();
}
public TemplateCalendarProperties getCalendarProperties(final Long calendarId) {
if (calendarId == null) {
return null;
}
for (final TemplateCalendarProperties props : calendarProperties) {
if (calendarId.equals(props.getCalId())) {
return props;
}
}
return null;
}
public boolean contains(final Long calendarId) {
return getCalendarProperties(calendarId) != null;
}
public boolean isVisible(final Long calendarId) {
final TemplateCalendarProperties props = getCalendarProperties(calendarId);
return props != null && props.isVisible();
}
// ... (gekürzt, insgesamt 409 Zeilen)
868d6abb7 2025 -> 2026 63081666f Quellcode-Dateikopfzeilen: 2024 -> 2025. b79a1edca Migration läuft noch... (alle Tests aller Pakete: OK). 67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (umbenannt, um Missverständnisse im Code zu vermeiden). 4c04cfd65 GROSSE-ÄNDERUNG! Migration von Integer-IDs zu Long-IDs (einschließlich Fremdschlüsseln usw.)