Class 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 JSP bevat vervolgens voor iedere subtabel een dropdown waarin alle mogelijke subrecords behorende bij dit hoofdrecord zijn opgenomen. Zodra een subrecord uit deze dropdown wordt gekozen wordt het formulier automatisch gesubmit. De nieuwe JSP pagina bevat nu het geselecteerde subrecord als actieve record en de waarden uit dit actieve record zijn in de bijbehorende velden ingevuld.

    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 naam van deze knoppen dienen uitgebreid worden met een rangnummer van de subtabel. De exacte waarde van het rangnummer is niet van belang, zolang dit nummer maar consequent in JSP en deze class wordt doorgevoerd, bijvoorbeeld: subnew1 en subnew2.

    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
    Verder kan nog een cancel-knop worden toegevoegd voor het gehele formulier. Het belangrijk te weten dat altij het gehele formulier wordt gepost; het hoofdrecord met alle actieve subrecords van de verschillende subtabellen. Het is dus niet mogelijk een subrecord te bewaren terwijl aan een ander subrecord nog wordt gewerkt.

    Version:
    $Revision: 1.0 $ $Date: 2005/05/17 12:48:31 $
    Author:
    Chris van Lith
    • 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 is
      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).
      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 subobject
      protected 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 newAction
      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).
      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.
    • 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 is
        dform - het struts formulier zelf
        mapp - 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 is
        loc - de locale zoals door struts bepaald
        mess - de message resources waaruit de foutmelding worden gehaald
        err - de reeks van foutmeldingen, zoals deze tijdens de uitvoer van de functies wordt opgebouwd
        dform - het struts formulier zelf
        mapp - 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 gepost
        transactionCancelled - wordt true indien de cancel knop is geklikt
        validateErrors - 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 foutmeldingen
        tokenValid - false indien het formulier 2x gepost wordt
        transactionCancelled - 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 de userProcess() een ActionForward met de name 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
      • saveNewButton

        protected org.apache.struts.action.ActionForward saveNewButton​(org.apache.struts.action.ActionErrors validateErrors)
                                                                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
      • 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 formulier
        validateErrors - 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 subtabel
        validateErrors - 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
      • 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 subid
        subForm - 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