EN · DE · RU · FR · ES

#2833: TotalNewCounterModel.java

projectforge-wicket/src/main/java/org/projectforge/web/TotalNewCounterModel.java Type: Java · Role: Component · Source: projectforge-wicket/src/main/java/org/projectforge/web/TotalNewCounterModel.java 73 lines · 38 code · 27 comments · 8 blank
Source code file at projectforge-wicket/src/main/java/org/projectforge/web/TotalNewCounterModel.java containing Java code for the Component layer.

Code Structure

Package: org.projectforge.web

Classes: TotalNewCounterModel

Extends: Model

Methods (2): getObject

Fields (1): serialVersionUID

Imports: 5 packages

Source Code (abridged)

package org.projectforge.web;

import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.projectforge.framework.utils.NumberHelper;

import java.util.ArrayList;
import java.util.List;

/**
 * For displaying the total number of new items as sum of all counters from the sub menu entries.
 * @author Kai Reinhard (k.reinhard@micromata.de)
 * 
 */
public class TotalNewCounterModel extends Model<Integer>
{
  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TotalNewCounterModel.class);

  private static final long serialVersionUID = -900845361698793144L;

  private final List<IModel<Integer>> models = new ArrayList<IModel<Integer>>();

  public void add(final IModel<Integer> model)
  {
    models.add(model);
  }

  @Override
  public Integer getObject()
  {
    if (models == null) {
      return null;
    }
    Integer totalCounter = 0;
    for (final IModel<Integer> model : models) {
      try {
        final Integer counter = model.getObject();
        if (NumberHelper.greaterZero(counter) == true) {
          totalCounter += counter;
        }
      } catch (final Throwable ex) {
        log.error(ex.getMessage(), ex);
      }
    }
    if (NumberHelper.greaterZero(totalCounter) == false) {
      return null;
    }
    return totalCounter;
  }
}

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022