Class EditBaseBean
- java.lang.Object
-
- nl.b3p.commons.services.FormBaseBean
-
- nl.b3p.commons.services.EditBaseBean
-
public abstract class EditBaseBean extends FormBaseBean
Deze class maakt het mogelijk om een records in een database hoofdtabel met een of meer afhankelijke subtabellen te bewerken, wissen of nieuw aan te maken.Uitgangspunt is een struts formulier waarin alle velden van de hoofdtabel en de subtabellen zijn opgenomen. Indien meer records van een subtabel bij het record van de hoofdtabel horen, dan dient toch elk veld van de subtabel slechts eenmaal in het formulieer voor te komen (er wordt telkens slechts 1 subrecord tegelijkertijd bewerkt).
De parameters van de constructor van deze class vertegenwoordigen alle informatie, welke via het posten van een struts formulier beschikbaar komt plus struts informatie voor mapping en foutafhandeling.
De class kent 2 publieke functies: een voor het uitvoeren van de gewenste actie (process) en een voor het opvragen van de actie als tekst (getAction). Verder kent de class vele abstracte functies waarin het daadwerkelijke werk voor een concrete implementatie kan worden vastgelegd.
Het struts formulier wordt via een bijbehorende JSP bewerkt. In deze JSP moeten een aantal knoppen met een vastgestelde naam worden aangebracht om het geheel te laten functioneren. In het formulier bestaan de volgende submit-knoppen percies 1 keer:
- process-knop verwerkt alle veranderingen in het formulier, dus ook veranderingen in velden die betrekking hebben op record van subtabellen.
- delete-knop wist het hoofdrecord met alle bij behorende subrecords
- new-knop maakt een nieuw hoofdrecord aan, waarbij alle subrecords leeg zijn.
De subtabel kan een van 2 soorten zijn:
- one-to-many: in dit geval kunnen de waarden in de subtabel per record bewerkt worden en zijn de knoppen subnew en subdelete noodzakelijk per subtabel.
- many-to-many: in dit geval kan alleen een relatie gemaakt of verbroken worden en zijn de knoppen newjoin en deletejoin noodzakelijk per tabel.
De knoppen hebben de volgende betekenis:
- subnew + rangnummer: creeert een leeg subrecord, dat gevuld kan worden en bij de eerste volgende process van het gehele formulier wordt dit nieuwe record toegevoegd.
- subdelete + rangnummer: wist het actieve subrecord
- newjoin + rangnummer: creeert een koppeling tussen het hoofdrecord en dit subrecord
- deletejoin + rangnummer: verbreekt de koppeling tussen het hoofdrecord en dit subrecord
- Version:
- $Revision: 1.0 $ $Date: 2005/05/17 12:48:31 $
- Author:
- Chris van Lith
-
-
Field Summary
Fields Modifier and Type Field Description static String
CANCEL_BUTTON
static String
CANCELLED_ACTION
static String
DELETE_ACTION
static String
DELETE_BUTTON
static String
DELETEJOIN_BUTTON
static String
EDIT_ACTION
static String
EDIT_BUTTON
static String
INVALID_ACTION
protected org.apache.commons.logging.Log
log
static String
MAIN_MESSAGE
static String
NEW_ACTION
static String
NEW_BUTTON
static String
NEWJOIN_BUTTON
static String
OK_BUTTON
static String
SAVE_ACTION
static String
SAVE_BUTTON
static String
SAVENEW_ACTION
static String
SAVENEW_BUTTON
static String
START_ACTION
static String
SUB_MESSAGE
static String
SUBDELETE_ACTION
static String
SUBDELETE_BUTTON
static String
SUBEDIT_ACTION
static String
SUBEDIT_BUTTON
static String
SUBNEW_ACTION
static String
SUBNEW_BUTTON
protected ArrayList
subObjects
static String
SUBSAVE_ACTION
static String
SUBSAVE_BUTTON
static String
SUBSAVENEW_ACTION
static String
SUBSAVENEW_BUTTON
protected static int
TEMPNEW_ID
protected Object
theObject
-
Fields inherited from class nl.b3p.commons.services.FormBaseBean
action, errors, form, isInit, locale, mapping, messages, request, requestParams, response, session, UNKNOWN_ACTION
-
-
Constructor Summary
Constructors Constructor Description EditBaseBean(javax.servlet.http.HttpServletRequest req, Locale loc, org.apache.struts.util.MessageResources mess, org.apache.struts.action.ActionMessages err, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
De constructor bepaalt uit de request de parameters welke gepost zijn en slaat deze lokaal op.EditBaseBean(javax.servlet.http.HttpServletRequest req, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
Deze minimale constructor kent geen locale instelling, geen message resources en geen foutterugmelding en zal niet vaak gebruikt worden.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.struts.action.ActionForward
cancelButton()
protected org.apache.struts.action.ActionForward
confirmButton(org.apache.struts.action.ActionErrors validateErrors)
protected void
createJoin(int subForm)
Een concrete implementatie van deze functie creeert een koppeling tussen het hoofdobject en het koppelobject in de database.protected void
createJoinList()
Bij een many-to-many relatie wordt voor het hoofdrecord van het struts formulier opgezocht welke records uit de tabel aan de andere zijde van de many-to-many relatie hierbij horen.protected void
createLists()
Elk struts formulier maakt gebruik van een aantal lijsten.protected org.apache.struts.action.ActionForward
deleteAction()
Het hoofdrecord met alle bijbehorende subrecords wordt gewist.protected org.apache.struts.action.ActionForward
deleteButton()
protected void
deleteJoin(int subForm)
Een concrete implementatie van deze functie verbreekt een koppeling tussen het hoofdobject en het koppelobject in de database.protected org.apache.struts.action.ActionForward
deleteJoinButton(int subNum, org.apache.struts.action.ActionErrors validateErrors)
protected void
deleteObject()
Een concrete implementatie van deze functie moet het hoofdobject verwijderen uit de database, alle afhankelijke subrecords dienen vooraf al verwijderd te of the database moet on delete cascade in gesteld hebben.protected void
deleteSubObject(int subForm)
Een concrete implementatie van deze functie wist een record uit een subtabel op basis van het opgegeven record.protected org.apache.struts.action.ActionErrors
determineAction(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
Deze functie bepaalt de waarde van action.protected void
determineNewAction()
Deze functie vult de nieuwe actie in op het struts form, zodat de volgende ronde hiermee gewerkt wordt.protected void
determineObjects()
Deze functie haalt het hoofdobject op en de subobjecten worden in een array bewaard voor gebruik later.protected org.apache.struts.action.ActionForward
editButton(org.apache.struts.action.ActionErrors validateErrors)
protected String
getMainID()
Een concrete implementatie van deze functie haalt het id op van de hoofdtabel uit het struts formulier dat getoond wordt, bijvoorbeeld via:return getForm("id");
protected Object
getMainObject()
Een concrete implementatie van deze functie haalt het eerst het id op van de hoofdrecord uit het struts formulier dat getoond wordt, bijvoorbeeld via:int id = getMainObjectID();
Vervolgens wordt het bijbehorende object (persistence laag class) welke een record uit de tabel beschrijft opgehaald, bijvoorbeeld via:return hsession.createQuery("from tabel where id = id");
protected ArrayList
getMainProperties()
Deze functie geeft lijst van veldnamen, waarop gecheckt moet worden bij validatie.protected String
getNewAction()
Tijdens de uitvoer van de functies zal een nieuwe actie berekend worden voor de volgende post.protected Object
getNewObject()
Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de hoofdtabel.protected Object
getNewSubObject(int subForm)
Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de gevraagde subtabel.protected B3pCommonsException
getNoSubFormException(int subForm)
protected String
getSubID(int subForm)
Een concrete implementatie van deze functie bepaalt het id in het struts formulier voor de gezochte subtabel.protected String
getSubNames(int subForm)
Deze functie geeft de naam van het subformulier, zoals dat bij foutmeldingen moet worden geroond.protected Object
getSubObject(int subForm)
Een concrete implementatie van deze functie haalt het tabelobject op van de gekoppelde subtabel met een subid als aangegeven.protected ArrayList
getSubProperties(int subForm)
Deze functie geeft lijst van veldnamen, waarop gecheckt moet worden bij validatie.boolean
isAllowEdits()
Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet.boolean
isDirectDelete()
Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).boolean
isDirectSave()
Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).boolean
isDirectSubDelete()
Configuratie parameter van EditBaseBean welke bepaalt of een subdelete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).boolean
isDirectSubSave()
Configuratie parameter van EditBaseBean welke bepaalt of een subsave meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).protected boolean
isNewAction(String lact)
test of een actie de huidige actie voor de volgende ronde isboolean
isReturnAfterSubSave()
Configuratie parameter van EditBaseBean welke bepaalt of na een subsave terug naar het hoofdformulier teruggegaan moet worden (true) of dat in de edit mode van het subformulier gebleven moet worden (false).protected org.apache.struts.action.ActionForward
newButton()
protected org.apache.struts.action.ActionForward
newJoinButton(int subNum, org.apache.struts.action.ActionErrors validateErrors)
protected void
populateForm()
Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het hoofdobject.protected org.apache.struts.action.ActionForward
populateMainForm()
Deze functie vult het hoofdformulier met de bijgewerkte informatie uit de database.protected void
populateObject()
Een concrete implementatie van deze functie vult het hoofdobject vanuit het form.protected void
populateSubForm(int subForm)
Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het subobjectprotected org.apache.struts.action.ActionForward
populateSubForms(int subNum)
Deze functie vult een subformulieren met de bijgewerkte informatie uit de database.protected void
populateSubObject(int subForm)
Een concrete implementatie van deze functie vult het subobject vanuit het form.org.apache.struts.action.ActionForward
process(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
Deze functie procest een request, welke is opgeslagen bij de constructie van de bean.protected boolean
reduceMainErrors(org.apache.struts.action.ActionErrors ve)
Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.protected boolean
reduceSubErrors(int subForm, org.apache.struts.action.ActionErrors ve)
Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.protected org.apache.struts.action.ActionForward
saveAction(org.apache.struts.action.ActionErrors validateErrors)
Deze functie voert de SAVE_ACTION uit.protected org.apache.struts.action.ActionForward
saveAllAction(org.apache.struts.action.ActionErrors validateErrors)
Deze functie bewaart het hoofdformulier met alle subformulieren.protected org.apache.struts.action.ActionForward
saveButton(org.apache.struts.action.ActionErrors validateErrors)
protected org.apache.struts.action.ActionForward
saveNewButton(org.apache.struts.action.ActionErrors validateErrors)
void
setAllowEdits(boolean allowEdits)
Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet.void
setDirectDelete(boolean directDelete)
Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).void
setDirectSave(boolean directSave)
Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).void
setDirectSubDelete(boolean directSubDelete)
Configuratie parameter van EditBaseBean welke bepaalt of een subdelete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).void
setDirectSubSave(boolean directSubSave)
Configuratie parameter van EditBaseBean welke bepaalt of een subsave meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).protected void
setID(String id)
Een concrete implementatie van deze functie plaatst een nieuw id in het id veld.protected void
setNewAction(String newAction)
setter voor newActionvoid
setReturnAfterSubSave(boolean returnAfterSubSave)
Configuratie parameter van EditBaseBean welke bepaalt of na een subsave terug naar het hoofdformulier teruggegaan moet worden (true) of dat in de edit mode van het subformulier gebleven moet worden (false).protected void
setSubID(int subForm, String subid)
Een concrete implementatie van deze functie plaatst een subid in het subid veld.protected org.apache.struts.action.ActionForward
subDeleteAction(int subNum)
Deze functie wist een subrecord.protected org.apache.struts.action.ActionForward
subDeleteButton(int subNum)
protected org.apache.struts.action.ActionForward
subEditButton(int subNum)
protected org.apache.struts.action.ActionForward
subNewButton(int subNum)
protected org.apache.struts.action.ActionForward
subSaveAction(int subNum, org.apache.struts.action.ActionErrors validateErrors)
Deze functie bewaart een subrecord.protected org.apache.struts.action.ActionForward
subSaveButton(int subNum, org.apache.struts.action.ActionErrors validateErrors)
protected org.apache.struts.action.ActionForward
subSaveNewButton(int subNum, org.apache.struts.action.ActionErrors validateErrors)
protected void
syncID()
Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.protected void
syncSubID(int subForm)
Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.protected org.apache.struts.action.ActionForward
userProcess(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
Een subclass kan deze methode overriden om extra acties te doen, bijvoorbeeld bij de save-actie (bevestiging) of code voor een nieuwe knop.-
Methods inherited from class nl.b3p.commons.services.FormBaseBean
buttonPressed, getAction, getErrors, getForm, getForm, getFormAsBoolean, getFormAsFormFile, getFormAsInteger, getFormAsObject, getFormAsStringArray, getLocale, getMapping, getMessages, getParamAsObject, getParamAsString, getParamAsStringArray, getRequest, getRequestParams, getResponse, getSession, isAction, nullOrEmpty, setAction, setErrors, setForm, setForm, setLocale, setMapping, setMessages, setRequest, setRequestParams, setResponse, setSession
-
-
-
-
Field Detail
-
log
protected org.apache.commons.logging.Log log
-
theObject
protected Object theObject
-
subObjects
protected ArrayList subObjects
-
INVALID_ACTION
public static final String INVALID_ACTION
- See Also:
- Constant Field Values
-
CANCELLED_ACTION
public static final String CANCELLED_ACTION
- See Also:
- Constant Field Values
-
START_ACTION
public static final String START_ACTION
- See Also:
- Constant Field Values
-
EDIT_ACTION
public static final String EDIT_ACTION
- See Also:
- Constant Field Values
-
NEW_ACTION
public static final String NEW_ACTION
- See Also:
- Constant Field Values
-
SAVE_ACTION
public static final String SAVE_ACTION
- See Also:
- Constant Field Values
-
SAVENEW_ACTION
public static final String SAVENEW_ACTION
- See Also:
- Constant Field Values
-
DELETE_ACTION
public static final String DELETE_ACTION
- See Also:
- Constant Field Values
-
SUBDELETE_ACTION
public static final String SUBDELETE_ACTION
- See Also:
- Constant Field Values
-
SUBNEW_ACTION
public static final String SUBNEW_ACTION
- See Also:
- Constant Field Values
-
SUBSAVENEW_ACTION
public static final String SUBSAVENEW_ACTION
- See Also:
- Constant Field Values
-
SUBSAVE_ACTION
public static final String SUBSAVE_ACTION
- See Also:
- Constant Field Values
-
SUBEDIT_ACTION
public static final String SUBEDIT_ACTION
- See Also:
- Constant Field Values
-
OK_BUTTON
public static final String OK_BUTTON
- See Also:
- Constant Field Values
-
CANCEL_BUTTON
public static final String CANCEL_BUTTON
- See Also:
- Constant Field Values
-
DELETE_BUTTON
public static final String DELETE_BUTTON
- See Also:
- Constant Field Values
-
NEW_BUTTON
public static final String NEW_BUTTON
- See Also:
- Constant Field Values
-
SAVE_BUTTON
public static final String SAVE_BUTTON
- See Also:
- Constant Field Values
-
SAVENEW_BUTTON
public static final String SAVENEW_BUTTON
- See Also:
- Constant Field Values
-
EDIT_BUTTON
public static final String EDIT_BUTTON
- See Also:
- Constant Field Values
-
SUBNEW_BUTTON
public static final String SUBNEW_BUTTON
- See Also:
- Constant Field Values
-
SUBSAVE_BUTTON
public static final String SUBSAVE_BUTTON
- See Also:
- Constant Field Values
-
SUBSAVENEW_BUTTON
public static final String SUBSAVENEW_BUTTON
- See Also:
- Constant Field Values
-
SUBDELETE_BUTTON
public static final String SUBDELETE_BUTTON
- See Also:
- Constant Field Values
-
SUBEDIT_BUTTON
public static final String SUBEDIT_BUTTON
- See Also:
- Constant Field Values
-
NEWJOIN_BUTTON
public static final String NEWJOIN_BUTTON
- See Also:
- Constant Field Values
-
DELETEJOIN_BUTTON
public static final String DELETEJOIN_BUTTON
- See Also:
- Constant Field Values
-
MAIN_MESSAGE
public static final String MAIN_MESSAGE
- See Also:
- Constant Field Values
-
SUB_MESSAGE
public static final String SUB_MESSAGE
- See Also:
- Constant Field Values
-
TEMPNEW_ID
protected static int TEMPNEW_ID
-
-
Constructor Detail
-
EditBaseBean
public EditBaseBean(javax.servlet.http.HttpServletRequest req, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
Deze minimale constructor kent geen locale instelling, geen message resources en geen foutterugmelding en zal niet vaak gebruikt worden.- Parameters:
req
- de request waarmee het struts formulier gepost isdform
- het struts formulier zelfmapp
- de mapping voor deze struts action
-
EditBaseBean
public EditBaseBean(javax.servlet.http.HttpServletRequest req, Locale loc, org.apache.struts.util.MessageResources mess, org.apache.struts.action.ActionMessages err, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
De constructor bepaalt uit de request de parameters welke gepost zijn en slaat deze lokaal op. Hiernaast wordt het struts formulier zelf lokaal opgeslagen.Indien locale, message resources en foutterugmelding null zijn, wordt een default waarde hiervoor vastgesteld, zodat de class verder kan functioneren.
- Parameters:
req
- de request waarmee het struts formulier gepost isloc
- de locale zoals door struts bepaaldmess
- de message resources waaruit de foutmelding worden gehaalderr
- de reeks van foutmeldingen, zoals deze tijdens de uitvoer van de functies wordt opgebouwddform
- het struts formulier zelfmapp
- de mapping voor deze struts action
-
-
Method Detail
-
process
public org.apache.struts.action.ActionForward process(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
Deze functie procest een request, welke is opgeslagen bij de constructie van de bean.Afhankelijk van de waarde van action en de waarden in de request wordt een record in de tabel bewerkt, gewist of nieuw aangemaakt.
In deze functie worden een aantal functies aangeroepen, die weer abstracte functies aanroepen die bij een concrete implementatie moeten worden gedefinieerd.
- Parameters:
tokenValid
- wordt false indien dit formulier een tweede keer wordt geposttransactionCancelled
- wordt true indien de cancel knop is gekliktvalidateErrors
- bevat alle validatie errors, zoals door struts vastgesteld- Returns:
- een struts actionforward, zoals door deze functie vastgesteld.
-
determineAction
protected org.apache.struts.action.ActionErrors determineAction(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
Deze functie bepaalt de waarde van action. Indien er nog geen action gedefinieerd is krijgt deze de waarde START_ACTION. Deze functie weet dan dat er niet op token gecontroleerd moet worden. Als de cancel knop is geklikt dan wordt de action veranderd in CANCELLED_ACTION. De waarde voor newAction, de action voor de volgende ronde, komt default op EDIT_ACTION; dit kan later nog worden aangepast.- Parameters:
validateErrors
- bekende foutmeldingentokenValid
- false indien het formulier 2x gepost wordttransactionCancelled
- true als de cancel knop geklikt is- Returns:
- foutenmeldingen van formulier
- Throws:
B3pCommonsException
-
determineObjects
protected void determineObjects()
Deze functie haalt het hoofdobject op en de subobjecten worden in een array bewaard voor gebruik later.
-
userProcess
protected org.apache.struts.action.ActionForward userProcess(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
Een subclass kan deze methode overriden om extra acties te doen, bijvoorbeeld bij de save-actie (bevestiging) of code voor een nieuwe knop. Deze methode wordt na het uitvoeren van alle standaardacties aangeroepen door EditBaseBean.process(). Indien deze methode een niet-null ActionForward returnt wordt die ActionForward als resultaat van de EditBaseBean.process() geretourneerd, anders wordt naar "success" geforward. Een speciaal geval is indien deuserProcess()
een ActionForward met dename
property"none"
teruggeeft. De EditBaseBean.process() zal dan een null ActionForward retourneren wat betekent dat Struts verder niet naar de response zal schrijven.- Returns:
- Deze implementatie retourneert altijd
null
. - Throws:
B3pCommonsException
-
confirmButton
protected org.apache.struts.action.ActionForward confirmButton(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
cancelButton
protected org.apache.struts.action.ActionForward cancelButton() throws B3pCommonsException
- Throws:
B3pCommonsException
-
deleteButton
protected org.apache.struts.action.ActionForward deleteButton() throws B3pCommonsException
- Throws:
B3pCommonsException
-
newButton
protected org.apache.struts.action.ActionForward newButton() throws B3pCommonsException
- Throws:
B3pCommonsException
-
saveButton
protected org.apache.struts.action.ActionForward saveButton(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
saveNewButton
protected org.apache.struts.action.ActionForward saveNewButton(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
editButton
protected org.apache.struts.action.ActionForward editButton(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
subNewButton
protected org.apache.struts.action.ActionForward subNewButton(int subNum) throws B3pCommonsException
- Throws:
B3pCommonsException
-
subSaveButton
protected org.apache.struts.action.ActionForward subSaveButton(int subNum, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
subSaveNewButton
protected org.apache.struts.action.ActionForward subSaveNewButton(int subNum, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
subDeleteButton
protected org.apache.struts.action.ActionForward subDeleteButton(int subNum) throws B3pCommonsException
- Throws:
B3pCommonsException
-
subEditButton
protected org.apache.struts.action.ActionForward subEditButton(int subNum) throws B3pCommonsException
- Throws:
B3pCommonsException
-
newJoinButton
protected org.apache.struts.action.ActionForward newJoinButton(int subNum, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
deleteJoinButton
protected org.apache.struts.action.ActionForward deleteJoinButton(int subNum, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
- Throws:
B3pCommonsException
-
deleteAction
protected org.apache.struts.action.ActionForward deleteAction() throws B3pCommonsException
Het hoofdrecord met alle bijbehorende subrecords wordt gewist. In de vorige ronde is een waarschuwing gegeven!- Returns:
- niet null bij fouten
- Throws:
B3pCommonsException
-
subDeleteAction
protected org.apache.struts.action.ActionForward subDeleteAction(int subNum) throws B3pCommonsException
Deze functie wist een subrecord.- Parameters:
subNum
- rangnummer van formulier- Returns:
- niet null bij fouten
- Throws:
B3pCommonsException
-
saveAction
protected org.apache.struts.action.ActionForward saveAction(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
Deze functie voert de SAVE_ACTION uit. Er wordt gecontroleerd of struts fouten in de invoer van het formulier heeft geconstateerd. Als dit zo is wordt verder verwerking afgebroken en gaat men meteen terug naar het formulier. Als er geen fouten zijn dan wordt de database gevuld met de informatie in het formulier.- Parameters:
validateErrors
- zoals deze door struts zijn vastgesteld- Returns:
- niet null bij validatie errors
- Throws:
B3pCommonsException
-
subSaveAction
protected org.apache.struts.action.ActionForward subSaveAction(int subNum, org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
Deze functie bewaart een subrecord.- Parameters:
subNum
- rangnummer van formuliervalidateErrors
- foutenmeldingen van formulier- Returns:
- niet null bij fouten
- Throws:
B3pCommonsException
-
saveAllAction
protected org.apache.struts.action.ActionForward saveAllAction(org.apache.struts.action.ActionErrors validateErrors) throws B3pCommonsException
Deze functie bewaart het hoofdformulier met alle subformulieren. Er wordt dan gecontroleerd of struts fouten in de invoer van het formulier heeft geconstateerd. Als dit zo is wordt verder verwerking afgebroken en gaat men meteen terug naar het formulier. Als er geen fouten zijn dan wordt de database gevuld met de informatie in het formulier. Dit is een alternatief voor de saveAction, waarbij alle subrecords ook worden gesaved.- Parameters:
validateErrors
- zoals deze door struts zijn vastgesteld- Returns:
- niet null bij validatie errors
- Throws:
B3pCommonsException
-
populateMainForm
protected org.apache.struts.action.ActionForward populateMainForm() throws B3pCommonsException
Deze functie vult het hoofdformulier met de bijgewerkte informatie uit de database.- Returns:
- niet null bij fouten
- Throws:
B3pCommonsException
-
populateSubForms
protected org.apache.struts.action.ActionForward populateSubForms(int subNum) throws B3pCommonsException
Deze functie vult een subformulieren met de bijgewerkte informatie uit de database.- Returns:
- niet null bij fouten
- Throws:
B3pCommonsException
-
reduceMainErrors
protected boolean reduceMainErrors(org.apache.struts.action.ActionErrors ve)
Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.- Parameters:
ve
-- Returns:
- true indien relevante fouten
-
reduceSubErrors
protected boolean reduceSubErrors(int subForm, org.apache.struts.action.ActionErrors ve)
Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.- Parameters:
subForm
- rangnummer van deze subtabelvalidateErrors
- volledige lijst foutmeldingen- Returns:
- lijst met omgevormde foutmeldingen
-
determineNewAction
protected void determineNewAction() throws B3pCommonsException
Deze functie vult de nieuwe actie in op het struts form, zodat de volgende ronde hiermee gewerkt wordt.- Throws:
B3pCommonsException
-
getNoSubFormException
protected B3pCommonsException getNoSubFormException(int subForm)
-
getNewAction
protected String getNewAction()
Tijdens de uitvoer van de functies zal een nieuwe actie berekend worden voor de volgende post. Deze nieuwe actie wordt hieropgeslagen en juist voor het beeindigen van de process-functie wordt het action-veld op deze nieuwe waarde gezet, zodat het formulier de volgende keer deze actie zal hebben.- Returns:
- nieuwe actie voor de ronde
-
setNewAction
protected void setNewAction(String newAction)
setter voor newAction- Parameters:
newAction
- zet een nieuwe actie voor de volgende ronde
-
isNewAction
protected boolean isNewAction(String lact)
test of een actie de huidige actie voor de volgende ronde is- Parameters:
lact
- te testen actie- Returns:
- true indien huidige actie voor de volgende ronde gelijk is aan de te testen actie
-
getMainID
protected String getMainID() throws B3pCommonsException
Een concrete implementatie van deze functie haalt het id op van de hoofdtabel uit het struts formulier dat getoond wordt, bijvoorbeeld via:return getForm("id");
- Returns:
- het id of null, indien onbekend
- Throws:
B3pCommonsException
- bij fouten
-
getMainObject
protected Object getMainObject() throws B3pCommonsException
Een concrete implementatie van deze functie haalt het eerst het id op van de hoofdrecord uit het struts formulier dat getoond wordt, bijvoorbeeld via:int id = getMainObjectID();
Vervolgens wordt het bijbehorende object (persistence laag class) welke een record uit de tabel beschrijft opgehaald, bijvoorbeeld via:return hsession.createQuery("from tabel where id = id");
- Returns:
- het tabelobject
- Throws:
B3pCommonsException
- bij fouten
-
getMainProperties
protected ArrayList getMainProperties()
Deze functie geeft lijst van veldnamen, waarop gecheckt moet worden bij validatie. Indien null, worden alle velden meegenomen.- Returns:
- lijst met veldnamen (properties) in formulier
-
getNewObject
protected Object getNewObject() throws B3pCommonsException
Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de hoofdtabel.- Returns:
- het nieuwe persistent object
- Throws:
B3pCommonsException
- bij fouten
-
getSubID
protected String getSubID(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie bepaalt het id in het struts formulier voor de gezochte subtabel.De code kan er als volgt uitzien:
switch (subForm) { case 1: return FormUtils.StringToInt(getForm("selected_sub1_id")); break; case 2: return FormUtils.StringToInt(getForm("selected_sub2_id")); break; default: throw new B3pCommonsException("Subform bestaat niet!"); }
Voor een niet bestaand subform moet de functie een B3pCommonsException geven, anders loopt de functie onnodig lang door.- Parameters:
subForm
- rangnummer van deze subtabel- Returns:
- id van het tabelobject van de subtabel of null, indien onbekend
- Throws:
B3pCommonsException
- bij niet bestaan van het subform
-
getSubObject
protected Object getSubObject(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie haalt het tabelobject op van de gekoppelde subtabel met een subid als aangegeven. Indien de waarde van het veld met de subid gelijk is aan TEMPNEW_ID, dan moet deze functie null retourneren om het juist aanmaken van nieuwe subrecords te garanderen.De code kan er als volgt uitzien:
int subid = getSubObjectID(subForm); switch (subForm) { case 1: return hsession.createQuery("from subtabel1 where id = subid"); break; case 2: return hsession.createQuery("from subtabel2 where id = subid"); break; default: throw new B3pCommonsException("Subform bestaat niet!"); }
Voor een niet bestaand subform moet de functie een B3pCommonsException geven, anders loopt de functie onnodig lang door.- Parameters:
subForm
- rangnummer van deze subtabel- Returns:
- het tabelobject van de subtabel
- Throws:
B3pCommonsException
- bij niet bestaan van het subform
-
getSubProperties
protected ArrayList getSubProperties(int subForm)
Deze functie geeft lijst van veldnamen, waarop gecheckt moet worden bij validatie. Indien null, worden alle velden meegenomen.- Parameters:
subForm
- rangnummer van deze subtabel- Returns:
- lijst met veldnamen (properties) in formulier
-
getSubNames
protected String getSubNames(int subForm)
Deze functie geeft de naam van het subformulier, zoals dat bij foutmeldingen moet worden geroond. Indien deze functie niet overklast wordt, wordt simpelweg het rangnummer getoond.- Parameters:
subForm
- rangnummer van deze subtabel- Returns:
- naam van het subformulier
-
getNewSubObject
protected Object getNewSubObject(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de gevraagde subtabel.- Parameters:
subForm
- rangnummer van deze subtabel- Returns:
- het nieuwe persistent subobject
- Throws:
B3pCommonsException
- bij fouten
-
setSubID
protected void setSubID(int subForm, String subid) throws B3pCommonsException
Een concrete implementatie van deze functie plaatst een subid in het subid veld. Indien subid null is, wordt het veld leeg gemaakt.- Parameters:
subid
- waarde van nieuw subidsubForm
- rangnummer van deze subtabel- Throws:
B3pCommonsException
- bij fouten
-
setID
protected void setID(String id) throws B3pCommonsException
Een concrete implementatie van deze functie plaatst een nieuw id in het id veld. Indien subid null is, wordt het veld leeg gemaakt.- Parameters:
id
- waarde van nieuw id- Throws:
B3pCommonsException
- bij fouten
-
syncID
protected void syncID() throws B3pCommonsException
Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.De code kan er als volgt uitzien:
if (theObject!=null) { int id = ((Cast)theObject).getId(); setID(id); } else { setID(null); }
- Throws:
B3pCommonsException
- bij fouten
-
syncSubID
protected void syncSubID(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.De code kan er als volgt uitzien:
Object subObject = subObjects.get(subForm-1); if (subObject!=null) { switch (subForm) { case 1: int subid = ((Cast1)subObject).getSub1Id(); setSubID(subForm, new Integer(subid)); break; case 2: int subid = ((Cast2)subObject).getSub2Id(); setSubID(subForm, new Integer(subid)); break; default: throw new B3pCommonsException("Subform bestaat niet!"); } } else { setSubID(subForm, null); }
- Parameters:
subForm
- rangnummer van deze subtabel- Throws:
B3pCommonsException
- bij fouten
-
deleteObject
protected void deleteObject() throws B3pCommonsException
Een concrete implementatie van deze functie moet het hoofdobject verwijderen uit de database, alle afhankelijke subrecords dienen vooraf al verwijderd te of the database moet on delete cascade in gesteld hebben.- Throws:
B3pCommonsException
- bij fouten
-
deleteSubObject
protected void deleteSubObject(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie wist een record uit een subtabel op basis van het opgegeven record. Het rangnummer van de subtabel is nodig om te bepalen uit welke subtabel gewist moet worden. De sessie kan gebruikt worden om lijsten te wissen of te updaten.- Parameters:
subForm
- het rangnummer van de subtabel- Throws:
B3pCommonsException
- bij fouten
-
populateObject
protected void populateObject() throws B3pCommonsException
Een concrete implementatie van deze functie vult het hoofdobject vanuit het form.- Throws:
B3pCommonsException
- bij fouten
-
populateSubObject
protected void populateSubObject(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie vult het subobject vanuit het form.- Parameters:
subForm
- het rangnummer van de subtabel- Throws:
B3pCommonsException
- bij fouten
-
populateForm
protected void populateForm() throws B3pCommonsException
Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het hoofdobject.- Throws:
B3pCommonsException
- bij fouten
-
populateSubForm
protected void populateSubForm(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het subobject- Parameters:
subForm
- het rangnummer van de subtabel- Throws:
B3pCommonsException
- bij fouten
-
createLists
protected void createLists() throws B3pCommonsException
Elk struts formulier maakt gebruik van een aantal lijsten. Ieder dropdown zal via een lijst gevuld worden. Bij gebruik van subtabellen zal voor iedere subtabel een lijst gemaakt moeten worden waarin alle subrecords staan die bij het huidige hoofdrecord horen. Deze lijsten worden op de sessie gezet en door het formulier later gebruikt.De namen van de lijsten moeten afgestemd worden met het gebruik in de jsp's waarin het struts formulier wordt gebruikt.
- Throws:
B3pCommonsException
- bij fout ophalen lijsten
-
createJoinList
protected void createJoinList() throws B3pCommonsException
Bij een many-to-many relatie wordt voor het hoofdrecord van het struts formulier opgezocht welke records uit de tabel aan de andere zijde van de many-to-many relatie hierbij horen.De namen van de lijsten moeten afgestemd worden met het gebruik in de jsp's waarin het struts formulier wordt gebruikt.
- Throws:
B3pCommonsException
- bij fout ophalen lijsten
-
createJoin
protected void createJoin(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie creeert een koppeling tussen het hoofdobject en het koppelobject in de database.- Parameters:
subForm
- het rangnummer van de subtabel- Throws:
B3pCommonsException
- bij fouten
-
deleteJoin
protected void deleteJoin(int subForm) throws B3pCommonsException
Een concrete implementatie van deze functie verbreekt een koppeling tussen het hoofdobject en het koppelobject in de database.- Parameters:
subForm
- het rangnummer van de subtabel- Throws:
B3pCommonsException
- bij fouten
-
isDirectSave
public boolean isDirectSave()
Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Returns:
- meteen bewaren of niet
-
setDirectSave
public void setDirectSave(boolean directSave)
Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Parameters:
directSave
- meteen bewaren of niet
-
isDirectDelete
public boolean isDirectDelete()
Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Returns:
- meteen wissen of niet
-
setDirectDelete
public void setDirectDelete(boolean directDelete)
Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Parameters:
directDelete
- meteen wissen of niet
-
isDirectSubSave
public boolean isDirectSubSave()
Configuratie parameter van EditBaseBean welke bepaalt of een subsave meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Returns:
- meteen bewaren of niet
-
setDirectSubSave
public void setDirectSubSave(boolean directSubSave)
Configuratie parameter van EditBaseBean welke bepaalt of een subsave meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Parameters:
directSubSave
- meteen bewaren of niet
-
isDirectSubDelete
public boolean isDirectSubDelete()
Configuratie parameter van EditBaseBean welke bepaalt of een subdelete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Returns:
- meteen wissen of niet
-
setDirectSubDelete
public void setDirectSubDelete(boolean directSubDelete)
Configuratie parameter van EditBaseBean welke bepaalt of een subdelete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).- Parameters:
directSubDelete
- meteen wissen of niet
-
isReturnAfterSubSave
public boolean isReturnAfterSubSave()
Configuratie parameter van EditBaseBean welke bepaalt of na een subsave terug naar het hoofdformulier teruggegaan moet worden (true) of dat in de edit mode van het subformulier gebleven moet worden (false).- Returns:
- naar edit of niet
-
setReturnAfterSubSave
public void setReturnAfterSubSave(boolean returnAfterSubSave)
Configuratie parameter van EditBaseBean welke bepaalt of na een subsave terug naar het hoofdformulier teruggegaan moet worden (true) of dat in de edit mode van het subformulier gebleven moet worden (false).- Parameters:
returnAfterSubSave
- naar edit of niet
-
isAllowEdits
public boolean isAllowEdits()
Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet. Indien niet worden de knoppen niet actief.- Returns:
- edit of niet
-
setAllowEdits
public void setAllowEdits(boolean allowEdits)
Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet. Indien niet worden de knoppen niet actief.- Parameters:
allowEdits
- edit of niet
-
-