All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.cnr.contab.utenze00.bp.GestioneUtenteBP Maven / Gradle / Ivy

/*
 * Copyright (C) 2019  Consiglio Nazionale delle Ricerche
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Affero 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 Affero General Public License for more details.
 *
 *     You should have received a copy of the GNU Affero General Public License
 *     along with this program.  If not, see .
 */

package it.cnr.contab.utenze00.bp;

import java.util.Iterator;
import java.util.List;

import javax.ejb.EJBException;

import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.utente00.nav.ejb.*;
import it.cnr.contab.utenze00.bulk.*;
import it.cnr.jada.UserContext;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.action.Selection;
import it.cnr.jada.util.jsp.Button;
import it.cnr.jada.util.jsp.JSPUtils;

/**
 * BusinessProecess che mantiene le informazioni sull'utente connesso
 * e sull'albero del menu applicativo. GestioneUtenteBP è il BusinessProcess
 * radice di tutti gli altri BusinessProcess applicativi
 */
public class GestioneUtenteBP extends it.cnr.jada.util.action.FormBP {
	private it.cnr.contab.utenze00.bulk.CNRUserInfo userInfo;
	private it.cnr.contab.utenze00.bulk.Albero_mainBulk radiceAlbero_main;
	private it.cnr.contab.utenze00.bulk.Albero_mainBulk nodo_attivo;
	private java.util.Map nodiEspansi = new java.util.HashMap();
	private java.util.Map nodi = new java.util.HashMap();
	public static Integer NUMERO_COLONNE_PREFERITI = 6;
	
	public GestioneUtenteBP() {
		super();
	}
	/**
	 * Aggiunge il nodo "nodo" alla Map dei nodi
	 *
	 * @param nodo nodo da aggiungere
	 */
	public void addNodoAlbero_main(Albero_mainBulk nodo) {
		nodi.put(nodo.getCd_nodo(),nodo);
	}

	public it.cnr.jada.util.action.SelezionatoreListaBP cercaUnitaOrganizzative(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
		try {
			closeAllChildren();
			it.cnr.jada.util.RemoteIterator ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,it.cnr.contab.utenze00.action.GestioneUtenteAction.getComponentSession().listaUOPerUtente(context.getUserContext(),getUserInfo().getUtente(),getUserInfo().getEsercizio()));
			SelezionatoreUnitaOrganizzativaBP bp = (SelezionatoreUnitaOrganizzativaBP)context.createBusinessProcess("SelezionatoreUnitaOrganizzativa");
			bp.setUserInfo((CNRUserInfo)getUserInfo().clone());
			bp.setPageSize(20);
			bp.setIterator(context,ri);
			bp.setColumns(it.cnr.jada.bulk.BulkInfo.getBulkInfo(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk.class).getColumnFieldPropertyDictionary("scrivania"));
			context.setBusinessProcess(this);
			context.addBusinessProcess(bp);
			return bp;
		} catch(Throwable e) {
			throw handleException(e);
		}
	}
	public it.cnr.jada.util.action.SelezionatoreListaBP listaUnitaOrganizzative(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
		try {
			closeAllChildren();
			it.cnr.jada.util.RemoteIterator ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,it.cnr.contab.utenze00.action.GestioneUtenteAction.getComponentSession().listaUOPerUtente(context.getUserContext(),getUserInfo().getUtente(),getUserInfo().getEsercizio()));
			SelezionatoreUnitaOrganizzativaBP bp = (SelezionatoreUnitaOrganizzativaBP)context.createBusinessProcess("SelezionatoreUnitaOrganizzativa");
			bp.setUserInfo((CNRUserInfo)getUserInfo().clone());
			bp.setPageSize(20);
			bp.setIterator(context,ri);
			bp.setColumns(it.cnr.jada.bulk.BulkInfo.getBulkInfo(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk.class).getColumnFieldPropertyDictionary("scrivania"));
			context.setBusinessProcess(this);
			context.addBusinessProcess(bp);
	
			if (((CNRUserContext)context.getUserContext()).getCd_unita_organizzativa()!=null) {
				int pos=0;
				bp.getIterator().moveTo(0);
				while (bp.getIterator().hasMoreElements()) {
					Unita_organizzativaBulk uo = (Unita_organizzativaBulk) bp.getIterator().nextElement();
					if (uo.getCd_unita_organizzativa().equals(((CNRUserContext)context.getUserContext()).getCd_unita_organizzativa()))
						break;
					pos++;
				}
				bp.getIterator().moveTo(0);
				Selection sel = bp.getSelection();
				sel.setFocus(pos);
				bp.setSelection(sel);
				int page = pos/bp.getPageSize();
				bp.goToPage(context, page);
			}
	
			return bp;
		} catch(Throwable e) {
			throw handleException(e);
		}
	}
	public it.cnr.jada.util.action.BulkBP cercaCds(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
		try {
			closeAllChildren();
			SelezionaCdsBP bp = (SelezionaCdsBP)context.createBusinessProcess("SelezionaCdsBP",new Object[] { "M" });
			bp.setUserInfo((CNRUserInfo)getUserInfo().clone());
			context.setBusinessProcess(this);
			context.addBusinessProcess(bp);
			return bp;
		} catch(Throwable e) {
			throw handleException(e);
		}
	}
	public it.cnr.jada.util.action.SelezionatoreListaBP cercaCdr(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
		try {
			closeAllChildren();
			it.cnr.jada.util.RemoteIterator ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,it.cnr.contab.utenze00.action.GestioneUtenteAction.getComponentSession().listaCdrPerUtente(context.getUserContext(),getUserInfo().getUtente(),getUserInfo().getEsercizio()));
			SelezionatoreCdrBP bp = (SelezionatoreCdrBP)context.createBusinessProcess("SelezionatoreCdr");
			bp.setUserInfo((CNRUserInfo)getUserInfo().clone());
			bp.setPageSize(20);
			bp.setIterator(context,ri);
			bp.setColumns(it.cnr.jada.bulk.BulkInfo.getBulkInfo(it.cnr.contab.config00.sto.bulk.CdrBulk.class).getColumnFieldPropertyDictionary("scrivania"));
			context.setBusinessProcess(this);
			context.addBusinessProcess(bp);
			return bp;
		} catch(Throwable e) {
			throw handleException(e);
		}
	}
	/**
	 * Rimuove il nodo specificato dalla Map dei nodi espansi
	 *
	 * @param cd_nodo codice del nodo da rimuovere
	 */
	public void chiudiNodoEspanso(String cd_nodo) {
		nodiEspansi.remove(cd_nodo);
	}
	/**
	 * Aggiunge il nodo "nodo" al Map dei nodi espansi
	 *
	 * @param nodo nodo da aggiungere
	 */
	public void espandiNodo(Albero_mainBulk nodo) {
		nodiEspansi.put(nodo.getCd_nodo(),nodo);
	}
	/**
	 * 
	 * Restituisce il valore della proprietà 'componentSession'
	 *
	 * @return Il valore della proprietà 'componentSession'
	 * @throws EJBException	Se si verifica qualche eccezione applicativa per cui non è possibile effettuare l'operazione
	 * @throws RemoteException	Se si verifica qualche eccezione di sistema per cui non è possibile effettuare l'operazione
	 */
	public static GestioneLoginComponentSession getComponentSession() throws javax.ejb.EJBException, java.rmi.RemoteException {
		return (GestioneLoginComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRUTENZE00_NAV_EJB_GestioneLoginComponentSession",GestioneLoginComponentSession.class);
	}
	/**
	 * 
	 * Restituisce il valore della proprietà 'nodo_attivo'
	 *
	 * @return Il valore della proprietà 'nodo_attivo'
	 */
	public it.cnr.contab.utenze00.bulk.Albero_mainBulk getNodo_attivo() {
		return nodo_attivo;
	}
	/**
	 * Ritorna il nodo con codice uguale a quello specificato
	 *
	 * @param cd_nodo codice del nodo da ritornare	
	 * @return istanza di Albero_mainBulk
	 */
	public Albero_mainBulk getNodoAlbero_main(String cd_nodo) {
		return (Albero_mainBulk)nodi.get(cd_nodo);
	}
	/**
	 * 
	 * Restituisce il valore della proprietà 'radiceAlbero_main'
	 *
	 * @return Il valore della proprietà 'radiceAlbero_main'
	 */
	public it.cnr.contab.utenze00.bulk.Albero_mainBulk getRadiceAlbero_main() {
		return radiceAlbero_main;
	}
	/**
	 * 
	 * Restituisce il valore della proprietà 'userInfo'
	 *
	 * @return Il valore della proprietà 'userInfo'
	 */
	public it.cnr.contab.utenze00.bulk.CNRUserInfo getUserInfo() {
		return userInfo;
	}
	/**
	 * 
	 * Imposta il valore della proprietà 'nodo_attivo'
	 *
	 * @param newNodo_attivo	Il valore da assegnare a 'nodo_attivo'
	 */
	public void setNodo_attivo(it.cnr.contab.utenze00.bulk.Albero_mainBulk newNodo_attivo) {
		nodo_attivo = newNodo_attivo;
	}
	/**
	 * 
	 * Imposta il valore della proprietà 'radiceAlbero_main'
	 *
	 * @param newRadiceAlbero_main	Il valore da assegnare a 'radiceAlbero_main'
	 * @throws BusinessProcessException	
	 */
	public void setRadiceAlbero_main(ActionContext context, it.cnr.contab.utenze00.bulk.Albero_mainBulk newRadiceAlbero_main) throws it.cnr.jada.action.BusinessProcessException {
		radiceAlbero_main = newRadiceAlbero_main;
		nodo_attivo = null;
		nodi.clear();
		nodiEspansi.clear();
		closeAllChildren(context);
	}
	/**
	 * 
	 * Imposta il valore della proprietà 'userInfo'
	 *
	 * @param newUserInfo	Il valore da assegnare a 'userInfo'
	 */
	public void setUserInfo(it.cnr.contab.utenze00.bulk.CNRUserInfo newUserInfo) {
		userInfo = newUserInfo;
	}
	public void writeCollapseButton(javax.servlet.jsp.JspWriter out)throws java.io.IOException {
		if (radiceAlbero_main == null)
		    return;
		out.print("    ");
	}

	public void writePreferiti(javax.servlet.jsp.JspWriter out, UserContext userContext)throws java.io.IOException, BusinessProcessException {
		try {
			List preferiti = getComponentSession().preferitiList(userContext);
			out.println("");
			out.println("");
			int index = 0;
			for (Iterator iterator = preferiti.iterator(); iterator.hasNext();) {
				index++;
				PreferitiBulk preferito = iterator.next();
				Button bt = new Button();
				bt.setImg(preferito.getUrl_icona());
				bt.setLabel(preferito.getDescrizione());
				bt.setTitle(preferito.getDescrizione());
				bt.setHref("javascript:submitForm('doCallPreferiti("+preferito.getBusiness_process()+","+preferito.getTi_funzione()+")')");
				bt.setStyle("color:white; border:none; cursor:hand");
				if (index%NUMERO_COLONNE_PREFERITI == 0){
					out.println("");
					index=1;
				}
				out.println("");
			}
			out.println("");
			out.println("
"); bt.write(out, true, CNRUserContext.isFromBootstrap(userContext)); out.println("
"); } catch (ComponentException e) { throw handleException(e); } catch (EJBException e) { throw handleException(e); } } /** * Disegna il menù applicativo usando il Writer specificato * * @param out writer * @throws IOException */ public void writeMenu(javax.servlet.jsp.JspWriter out) throws java.io.IOException { if (radiceAlbero_main == null) return; java.util.BitSet livelliCompleti = new java.util.BitSet(); writeMenuItem(out, radiceAlbero_main, -1, livelliCompleti, false, true); } private void writeMenu(javax.servlet.jsp.JspWriter out,it.cnr.contab.utenze00.bulk.Albero_mainBulk nodo,int livello,java.util.BitSet livelliCompleti) throws java.io.IOException { for (java.util.Iterator i = nodo.getNodi_figli().iterator();i.hasNext();){ writeMenuItem(out,(Albero_mainBulk)i.next(),livello,livelliCompleti,i.hasNext()); } } private void writeMenuItem(javax.servlet.jsp.JspWriter out,it.cnr.contab.utenze00.bulk.Albero_mainBulk nodoFiglio,int livello,java.util.BitSet livelliCompleti,boolean hasNext) throws java.io.IOException { writeMenuItem(out,nodoFiglio,livello,livelliCompleti,hasNext, false); } private void writeMenuItem(javax.servlet.jsp.JspWriter out,it.cnr.contab.utenze00.bulk.Albero_mainBulk nodoFiglio,int livello,java.util.BitSet livelliCompleti,boolean hasNext,boolean writeCollapseButton) throws java.io.IOException { out.println("
"); Albero_mainBulk nodoEspanso = (Albero_mainBulk)nodiEspansi.get(nodoFiglio.getCd_nodo()); if (nodoEspanso != null) nodoFiglio = nodoEspanso; boolean isFoglia = nodoFiglio.getFl_terminale() == null || nodoFiglio.getFl_terminale().booleanValue(); boolean isEspandibile = !isFoglia && nodoFiglio.getNodi_figli() == null; for (int j = 0;j < livello;j++) { if (!livelliCompleti.get(j)) { out.print(""); } else { out.print(""); } /// out.print(""); } if (livello >= 0) { if (!isFoglia) { // out.print(""); } out.print("'); if (!isFoglia) // out.print(""); out.print(""); if (hasNext) livelliCompleti.clear(livello); else livelliCompleti.set(livello); } if (isFoglia) out.print(""); else out.print(""); if (nodoFiglio.getUrl_icona() != null || !isFoglia) { if (writeCollapseButton) out.print(""); } out.print(" "); if (isFoglia && nodoFiglio.getBusiness_process() != null) { out.print(""); } else if (!isFoglia) { out.print(""); } out.print(nodoFiglio.getDs_nodo()); if (!isFoglia || nodoFiglio.getBusiness_process() != null) out.print(""); if (writeCollapseButton) writeCollapseButton(out); out.println(""); out.println("
"); if (!isFoglia && !isEspandibile) writeMenu(out,nodoFiglio,livello+1,livelliCompleti); } public void collapseAllNodi() { nodiEspansi.clear(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy