it.cnr.contab.config00.action.CRUDClassificazioneVociAction 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 .
*/
/*
* Created on Aug 31, 2005
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package it.cnr.contab.config00.action;
import java.rmi.RemoteException;
import it.cnr.contab.config00.bp.CRUDClassificazioneVociBP;
import it.cnr.contab.config00.pdcfin.cla.bulk.*;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Forward;
import it.cnr.jada.bulk.FillException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.action.CRUDAction;
import it.cnr.jada.util.action.OptionBP;
import it.cnr.jada.util.action.Selection;
public class CRUDClassificazioneVociAction extends CRUDAction {
/**
* Construtor from superclass
*
*/
public CRUDClassificazioneVociAction() {
super();
}
public Forward doTab(ActionContext actioncontext, String tabName,String pageName) {
CRUDClassificazioneVociBP bp = (CRUDClassificazioneVociBP)actioncontext.getBusinessProcess();
Classificazione_vociBulk classModelNew = null;
int intTabOld = (new Integer(bp.getTab(tabName).substring("tabLivello".length()))).intValue();
int intTabNew = (new Integer(pageName.substring("tabLivello".length()))).intValue();
/*
* Non è possibile cambiare Tab se esistono dati non confermati.
*/
try {
fillModel(actioncontext);
if (bp.isDirty()){
setErrorMessage(actioncontext,"Confermare le modifiche prima di proseguire.");
return actioncontext.findDefaultForward();
}
} catch (FillException e1) {
e1.printStackTrace();
}
/*
* Se la navigazione tra le Tab è in avanti deve essere selezionato sul Bulk corrente
* almeno un livello successivo da utilizzare per il caricamento delle Bulk successive.
* Regola non valida se si naviga dalla Tab1
*/
if ((new Integer(intTabNew)).compareTo(new Integer(intTabOld))>0 &&
((intTabOld==1 && bp.getModel().getCrudStatus()!=OggettoBulk.NORMAL)||
(intTabOld!=1 && bp.getCrudAssLivelli().getSelection().getFocus()<0))) {
bp.setMessage("E' necessario selezionare un livello.");
return actioncontext.findDefaultForward();
}
/*
* Se è stato selezionato un livello diverso da quello precedentemente memorizzato (il focus del
* controller è diverso da quello memorizzato nel Bulk) vengono annullati tutti i riferimenti
* memorizzati nel BP ai Bulk e focus dei livelli successivi.
* Se si naviga dalla Tab1 il processo di annullamento avviene se cambia il model del BP
*/
bp.allineaFocusBulkTab(intTabOld);
/*
* Se la navigazione tra le Tab è in avanti è possibile navigare solo fino alla Tab immediatamente
* successiva all'ultima Tab caricata.
*/
if ((new Integer(intTabNew)).compareTo(new Integer(intTabOld))>0 &&
bp.getBulkTab(intTabNew-1) == null && intTabNew!=intTabOld+1) {
bp.setMessage("E' necessario caricare i livelli nella sequenza corretta.");
return actioncontext.findDefaultForward();
}
else if ((new Integer(intTabNew)).compareTo(new Integer(intTabOld))>0 &&
intTabNew!=2 && bp.getBulkTab(intTabNew-1) != null &&
bp.getFocusTab(intTabNew-1) == -1 && intTabNew!=intTabOld+1) {
bp.setMessage("E' necessario selezionare un dettaglio del livello precedente.");
return actioncontext.findDefaultForward();
}
/*
* Individuazione del model da associare al BP
*/
if (bp.getBulkTab(intTabNew) != null)
classModelNew = bp.getBulkTab(intTabNew);
else if (intTabOld==1)
classModelNew = (Classificazione_vociBulk)bp.getModel();
else if (intTabNew==intTabOld+1 && !(bp.getCrudAssLivelli().getSelection().getFocus()<0))
classModelNew = (Classificazione_vociBulk)((Classificazione_vociBulk)bp.getModel()).getClassVociAssociate().get(bp.getCrudAssLivelli().getSelection().getFocus());
else if (intTabNew!=intTabOld+1 && !(bp.getFocusTab(intTabNew-1)<0))
classModelNew = (Classificazione_vociBulk)((Classificazione_vociBulk)bp.getBulkTab(intTabNew-1)).getClassVociAssociate().get(bp.getFocusTab(intTabNew-1));
Forward fw = super.doTab(actioncontext, tabName, pageName);
try {
if (bp.getBulkTab(intTabNew) == null)
bp.setModel(actioncontext, bp.initializeModelForEdit(actioncontext, classModelNew));
else
bp.setModel(actioncontext, classModelNew);
} catch (BusinessProcessException e) {
e.printStackTrace();
}
bp.allineaDescriptionTab(intTabNew);
/*
* Settaggio del focus sulle Classificazioni associate al livello visualizzato
*/
try {
Selection selCopy = new Selection();
if (bp.getBulkTab(intTabNew) == null &&
!((Classificazione_vociBulk)bp.getModel()).getClassVociAssociate().isEmpty())
bp.getCrudAssLivelli().setSelection(actioncontext, selCopy);
else if (bp.getBulkTab(intTabNew) != null){
selCopy.setFocus(bp.getFocusTab(intTabNew));
bp.getCrudAssLivelli().setSelection(actioncontext, selCopy);
}
} catch (BusinessProcessException e2) {
e2.printStackTrace();
} catch (ValidationException e2) {
e2.printStackTrace();
}
return fw;
}
public Forward doElimina(ActionContext actioncontext) throws RemoteException {
return eliminaClassificazione(actioncontext, false);
}
public Forward eliminaClassificazione(ActionContext actioncontext, boolean eliminaDaController) {
CRUDClassificazioneVociBP bp = (CRUDClassificazioneVociBP)actioncontext.getBusinessProcess();
try {
boolean esistono_figli = false;
if (eliminaDaController) {
java.util.List selected_cla = bp.getCrudAssLivelli().getSelectedModels(actioncontext);
it.cnr.jada.util.action.Selection selection= bp.getCrudAssLivelli().getSelection();
java.util.List classificazioni= bp.getCrudAssLivelli().getDetails();
if (selection.isEmpty() && bp.getCrudAssLivelli().getModel() == null) {
setErrorMessage(actioncontext,"Attenzione! Selezionare le classificazioni da eliminare!");
return actioncontext.findDefaultForward();
}
if (!selection.isEmpty()) {
for (it.cnr.jada.util.action.SelectionIterator i= bp.getCrudAssLivelli().getSelection().iterator(); i.hasNext();) {
Classificazione_vociBulk cur_cla = (Classificazione_vociBulk) classificazioni.get(i.nextIndex());
if (!(bp.getClassificazioniTree(actioncontext).isLeaf(actioncontext, cur_cla)))
esistono_figli = true;
}
}
else
{
Classificazione_vociBulk cur_cla = (Classificazione_vociBulk)bp.getCrudAssLivelli().getModel();
if (!(bp.getClassificazioniTree(actioncontext).isLeaf(actioncontext, cur_cla)))
esistono_figli = true;
}
}
else
{
Classificazione_vociBulk cur_cla = (Classificazione_vociBulk)bp.getModel();
if (!(bp.getClassificazioniTree(actioncontext).isLeaf(actioncontext, cur_cla)))
esistono_figli = true;
}
if (esistono_figli)
if (eliminaDaController)
return openConfirm(actioncontext,"Attenzione! Verranno eliminate anche tutte le classificazioni associate. Proseguire ?",OptionBP.CONFIRM_YES_NO,"doCancellaClassificazioniAssociate");
else
return openConfirm(actioncontext,"Attenzione! Verranno eliminate anche tutte le classificazioni associate. Proseguire ?",OptionBP.CONFIRM_YES_NO,"doCancellaClassificazionePrincipale");
if (eliminaDaController)
bp.getCrudAssLivelli().remove(actioncontext);
else
return super.doElimina(actioncontext);
} catch (BusinessProcessException bpe) {
return handleException(actioncontext, bpe);
} catch (ValidationException ve) {
return handleException(actioncontext, ve);
} catch (RemoteException re) {
return handleException(actioncontext, re);
} catch (ComponentException ce) {
return handleException(actioncontext, ce);
}
return actioncontext.findDefaultForward();
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate1(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate2(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate3(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate4(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate5(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate6(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
public Forward doRemoveFromCRUDMain_ClassVociAssociate7(ActionContext actioncontext){
return eliminaClassificazione(actioncontext, true);
}
/**
* Il metodo effettua una cancellazione di classificazioni associate
* L'eliminazione della classificazione associata principale e di tutte quelle associate a se stessa
* avviene tramite l'eliminazione della principale che genera, tramite la foreignKey Cascade constraints
* presente sul DB, anche l'eliminazione di tutte le classificazioni associate
*/
public Forward doCancellaClassificazioniAssociate(ActionContext context,OptionBP option) throws BusinessProcessException, ValidationException
{
CRUDClassificazioneVociBP bp = (CRUDClassificazioneVociBP)getBusinessProcess(context);
if(option.getOption() == OptionBP.YES_BUTTON)
{
bp.getCrudAssLivelli().remove(context);
}
return context.findDefaultForward();
}
/**
* Il metodo effettua una cancellazione della classificazione principale
* L'eliminazione della classificazione principale e di tutte quelle associate avviene tramite l'eliminazione
* della principale che genera, tramite la foreignKey Cascade constraints presente sul DB,
* anche l'eliminazione di tutte le classificazioni associate
*/
public Forward doCancellaClassificazionePrincipale(ActionContext context,OptionBP option) throws BusinessProcessException, ValidationException
{
try {
if(option.getOption() == OptionBP.YES_BUTTON)
return super.doElimina(context);
return context.findDefaultForward();
} catch (RemoteException e) {
return handleException(context, e);
}
}
public Forward doOnFlAccentrato(ActionContext actioncontext) throws RemoteException {
try {
fillModel(actioncontext);
CRUDClassificazioneVociBP bp = (CRUDClassificazioneVociBP)getBusinessProcess(actioncontext);
Classificazione_vociBulk cla = (Classificazione_vociBulk)bp.getModel();
if (cla.getFl_accentrato() == null || cla.getFl_accentrato().equals(Boolean.FALSE))
cla.setCentro_responsabilita(null);
return actioncontext.findDefaultForward();
}
catch(Throwable e)
{
return handleException(actioncontext,e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy