Java tutorial
package nc.noumea.mairie.annuairev2.saisie.viewmodel; /* * #%L * Gestion des Guest et Locality * %% * Copyright (C) 2015 Mairie de Nouma * %% * This program 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, either version 3 of the * License, or (at your option) any later version. * * This program 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/gpl-3.0.html>. * #L% */ import nc.noumea.mairie.annuairev2.saisie.core.utility.Format; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.zkoss.bind.BindUtils; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Messagebox; import java.io.Serializable; /** * ViewModel abstrait parent des ViewModel de l'application qui manipulent une * entit (cration, modification, et mme liste o on considre que l'entit * est celle slectionne dans la liste) * */ public abstract class AbstractViewModel implements Serializable { private static final long serialVersionUID = 7676969464572907078L; private static Logger logger = LoggerFactory.getLogger(AbstractViewModel.class); /** * Mthode utilitaire, pour lister les valeurs d'une numration (dans * l'ordre de leur dclaration). * * @param enumClassName * nom complet de la classe (avec le package, ex : * "nc.noumea.mairie.pdc.enums.Civilite") * @return la liste des valeurs numres, dans l'ordre de leur dclaration. */ public ListModelList<?> getListeEnum(String enumClassName) { return getListeEnum(enumClassName, false); } /** * Mthode utilitaire, pour lister les valeurs d'une numration (dans * l'ordre de leur dclaration), avec la possibilit d'insrer en tte la * valeur null. * * @param enumClassName * nom complet de la classe (avec le package, ex : * "nc.noumea.mairie.pdc.enums.Civilite") * @param insertNull * indique s'il faut insrer en tte de la liste rsultat la * valeur null * @return la liste des valeurs numres, dans l'ordre de leur dclaration * (avec null en tte optionnellement) */ @SuppressWarnings({ "unchecked", "rawtypes" }) public ListModelList<?> getListeEnum(String enumClassName, boolean insertNull) { try { Class<?> classe = Class.forName(enumClassName); ListModelList result = new ListModelList(classe.getEnumConstants()); if (insertNull) { result.add(0, null); } return result; } catch (ClassNotFoundException e) { Messagebox.show(e.toString()); } return null; } public String getFormatCfp() { return Format.FORMAT_CFP; } public String getFormatNumber() { return Format.FORMAT_NUMBER; } public static void notifyChange(String prop, Object bean) { BindUtils.postNotifyChange(null, null, bean, prop); } public void notifyChange(String prop) { notifyChange(prop, this); } public static void notifyChange(String[] listProperty, Object bean) { if (listProperty == null) { return; } if (Executions.getCurrent() == null) { return; } for (String prop : listProperty) { if (!StringUtils.isBlank(prop)) { notifyChange(prop, bean); } } } public void showNotificationStandard(String message) { Clients.showNotification(message, "info", null, "top_center", 0); } public void showBottomRightNotification(String message) { Clients.showNotification(message, "info", null, "bottom_right", 0); } }