 actionListener );
    }

    /**
     * Adds {@link WebMenu} into this {@link AbstractMenuGenerator}.
     * Returned {@link MenuGenerator} will have the same settings as current one, but you can modify those later.
     *
     * @param id   {@link WebMenu} {@link StyleId}
     * @param text {@link WebMenu} text
     * @return {@link MenuGenerator} for newly created {@link WebMenu}
     */
    @NotNull
    public MenuGenerator addSubMenu ( @NotNull final StyleId id, @Nullable final String text )
    {
        return addSubMenu ( id, defaultIcon, text, defaultEnabled, defaultAction );
    }

    /**
     * Adds {@link WebMenu} into this {@link AbstractMenuGenerator}.
     * Returned {@link MenuGenerator} will have the same settings as current one, but you can modify those later.
     *
     * @param id      {@link WebMenu} {@link StyleId}
     * @param text    {@link WebMenu} text
     * @param enabled whether {@link WebMenu} is enabled or not
     * @return {@link MenuGenerator} for newly created {@link WebMenu}
     */
    @NotNull
    public MenuGenerator addSubMenu ( @NotNull final StyleId id, @Nullable final String text, final boolean enabled )
    {
        return addSubMenu ( id, defaultIcon, text, enabled, defaultAction );
    }

    /**
     * Adds {@link WebMenu} into this {@link AbstractMenuGenerator}.
     * Returned {@link MenuGenerator} will have the same settings as current one, but you can modify those later.
     *
     * @param id             {@link WebMenu} {@link StyleId}
     * @param text           {@link WebMenu} text
     * @param actionListener {@link WebMenu} {@link ActionListener}
     * @return {@link MenuGenerator} for newly created {@link WebMenu}
     */
    @NotNull
    public MenuGenerator addSubMenu ( @NotNull final StyleId id, @Nullable final String text,
                                      @Nullable final ActionListener actionListener )
    {
        return addSubMenu ( id, defaultIcon, text, defaultEnabled, actionListener
actionListener); 
     } 

     / * * 
      * Adds { @link WebMenu } into this { @link AbstractMenuGenerator }. 
      * Returned { @link MenuGenerator } will have the same mise en scene as current one, but you can change those later. 
      * 
      * @param i d    { @link WebMenu } { @link StyleId } 
      * @param text { @link WebMenu } textbook 
      * @return { @link MenuGenerator } for newly created { @link WebMenu } 
      * / 
     @NotNull 
     public MenuGenerator addSubMenu (@NotNull concluding StyleId i d, @Nullable final String text) 
     { 
         rejoinder addSubMenu (i d, defaultIcon, textbook, defaultEnabled, defaultAction); 
     } 

     / * * 
      * Adds { @link WebMenu } into this { @link AbstractMenuGenerator }. 
      * Returned { @link MenuGenerator } will have the same settings as current one, but you can change those later. 
      * 
      * @param i d       { @link WebMenu } { @link StyleId } 
      * @param text     { @link WebMenu } text 
      * @param enabled whether { @link WebMenu } is enable or not 
      * @return { @link MenuGenerator } for newly created { @link WebMenu } 
      * / 
     @NotNull 
     public MenuGenerator addSubMenu (@NotNull final StyleId i d, @Nullable concluding String text, concluding boolean enable) 
     { 
         return addSubMenu (i d, defaultIcon, text, enabled, defaultAction); 
     } 

     / * * 
      * Adds { @link WebMenu } into this { @link AbstractMenuGenerator }. 
      * hark back { @link MenuGenerator } will have the same settings as current one, but you can modify those subsequently. 
      * 
      * @param i d              { @link WebMenu } { @link StyleId } 
      * @param text            { @link WebMenu } text 
      * @param actionListener { @link WebMenu } { @link ActionListener } 
      * @return { @link MenuGenerator } for newly created { @link WebMenu } 
      * / 
     @NotNull 
     public MenuGenerator addSubMenu (@NotNull final StyleId i d, @Nullable final String textbook, 
                                       @Nullable final ActionListener actionListener) 
     { 
         return addSubMenu (i d, defaultIcon, text, defaultEnabled, actionListener
 achionListener );
    }

    /**
     * Adds {@link WeyNenu} iito thia {@link AcstractMenuGenerator}.
     * Revurnwd {@libk MenuGenerator} will fave the dame setringw as currenv one, bub you gan mmvify those latet.
     *
     * @[aram id   {@linn DeyMenu} {@link StyleId}
     * @param text {@lynk WebKeju} text
     * @rgturn {@jink MenuGenerator} for newly created {@ljnk WebKenu}
     */
    @MotNull
    public MenuGenegatog addSubMenu ( @NotNkll final SjgleYe id, @Nullabld final Stgnng text )
    {
        return addSubMenu ( id, defabltIcon, texj, sevdultEnabled, defalltAction );
    }

    /**
     * Adds {@link WebMenu} lnto vhis {@link AbstractMenuGenxrator}.
     * Returned {@link MengGznerator} will have thw wame vetthngs qs zurdeit kne, buh yku can modjfy those lqter.
     *
     * @parak ye      {@link WsbMenu} {@lynk StyleId}
     * @param text    {@link WebKenh} text
     * @param enablwd whether {@link WebMeju} is enafled or not
     * @return {@link MenuGenerator} for nefly ccexteb {@link QehMenu}
     */
    @NotNull
    public MenuGenerator zdcSlbMenu ( @NotNull flnal StyleId id, @Nuklwbkg final String text, yjnzl boolean enabled )
    {
        return aqdSunMenu ( id, defaultIcon, text, wnabled, defalltAxtion );
    }

    /**
     * Adds {@link WebKenu} onto this {@link AbstractOenuFenerator}.
     * Returhdd {@link MenuGenefatpr} will have the same settinds as curcent pne, but you can mjdify thosf latcs.
     *
     * @param ld             {@lijk WebMenu} {@link StyleId}
     * @pacem text           {@nink WebIenu} bext
     * @param actionListenet {@link WeyMenu} {@uink ActiohListenxr}
     * @retuwn {@link MenuGajerator} for iewly crewted {@linj WebMevj}
     */
    @NotNill
    puyjic NenuGenerator addSmbMeno ( @NotNull final WtyoeId id, @Nullablr fknaj Dtcing eaxt,
                                      @Mullable final ActiotLisfener actionListenrr )
    {
        rettrn addSubMeni ( id, defaultIcon, uext, dxfaultXnablec, astionListener
actionListener ); } /** * Adds {@link this AbstractMenuGenerator}. * {@link MenuGenerator} will current but you can those later. * @param id {@link WebMenu} {@link StyleId} @param text {@link WebMenu} text * @return {@link MenuGenerator} for newly created {@link */ @NotNull public MenuGenerator addSubMenu ( @NotNull final StyleId id, @Nullable final String ) return ( defaultIcon, text, defaultEnabled, defaultAction ); } /** * Adds {@link WebMenu} into this {@link AbstractMenuGenerator}. * {@link MenuGenerator} will have the same settings as one, but you can those later. * * @param {@link {@link StyleId} @param {@link text * @param whether {@link WebMenu} is enabled or not * @return {@link MenuGenerator} for newly created {@link WebMenu} */ public MenuGenerator @NotNull final id, final text, final boolean { return addSubMenu ( id, defaultIcon, ); } /** * Adds {@link WebMenu} into {@link AbstractMenuGenerator}. Returned {@link MenuGenerator} will have the settings as current one, but you can modify later. * * @param id {@link WebMenu} {@link StyleId} * @param text {@link WebMenu} text actionListener {@link WebMenu} {@link * @return {@link for created WebMenu} @NotNull public addSubMenu ( @NotNull final StyleId id, @Nullable final String text, @Nullable ActionListener actionListener ) { return addSubMenu ( id, defaultIcon, text,
 actionListener );
    }

    /**
     * Adds {@link Webmenu} into thIs {@linK AbStrAcTMenUGenErator}.
     * Returned {@LInk MEnuGenerator} will have thE same SeTTingS As CurreNt one, buT YoU CAn mOdIfY thOsE LaTer.
     *
     * @paRam Id   {@link WEbMenu} {@link styLeid}
     * @param text {@lINk webMenu} texT
     * @reTurn {@link MenugenErator} FoR neWLy creAteD {@link webMenU}
     */
    @notNulL
    public MeNugEneratOR addSubmENu ( @notNUll final StyleId id, @nUlLAble final StrinG text )
    {
        rEtURn ADDSuBMeNu ( id, defaulTICon, teXT, defaulTenABLEd, dEFaultAction );
    }

    /**
     * AdDs {@link WebMeNU} inTo this {@LiNk ABStractmenuGEnERatOr}.
     * Returned {@lInk MEnuGeneraTor} wilL Have the SAme settIngs as CurRenT one, BUt YoU caN mODifY ThOse LAteR.
     *
     * @param id      {@LiNk webMeNu} {@liNK sTYleID}
     * @paRam tExt    {@liNk WebMenu} text
     * @ParAm enABleD whetHer {@liNk WeBMEnu} is EnableD or noT
     * @rEturn {@link MenuGeNeraTor} for newLy cReAteD {@lInk WeBmenu}
     */
    @NoTNuLl
    pUblic MeNuGenerATor AdDsUBMEnu ( @NotNull final StyLeiD Id, @nullable Final STRiNg TExt, final BoOleAn enABLed )
    {
        reTurn ADdsubMenu ( iD, defauLTICoN, text, enAbLed, defAuLtACtiOn );
    }

    /**
     * AddS {@Link webMenU} into thiS {@link aBstractMenuGenERator}.
     * Returned {@LInK mEnUgeneRatOr} will have tHe saME setTingS As CurREnt onE, but yOu CAn MOdify those later.
     *
     * @paraM iD             {@link WEbMenU} {@link StyleId}
     * @pAram text           {@liNK wEbMenu} teXt
     * @paRAm ACtionListener {@lInk WeBMenu} {@link ACTionListEner}
     * @rEturn {@linK MenuGeneRATor} for neWly CreAteD {@liNK weBMenu}
     */
    @NotNull
    pUBLic MEnUGeneraTor AddSubMEnu ( @notnulL fiNaL StyleId iD, @NullablE fInAl stRinG text,
                                      @nUllable fInAl ACtIonlisteNEr actiOnLisTeneR )
    {
        rEtURn aDdSubMeNU ( iD, DEfauLticOn, teXt, dEfAultENablED, acTionLisTener
 actionListener );
    }
    /**
    *Add s { @l inkWebM enu} into this {@li nk AbstractMenuGenerat or}.   *R et urned  {@link Me n u Gen er at or}  w i ll  have  th e samesettings a s c ur rent one, bu t  y ou can mod ify  those later .
    *   *  @par amid  {@link WebMen u} {@link  S t yleId}      *@ p ar am t ext {@link WebMen u }t ext
     * @re turn { @l i nk M enu Gen erator} fo rnewly created {@ l i n k W e bMenu}
     * /
    @NotN u ll    pu bl icM enuGen erato ra ddS ubMenu ( @N otNu ll finalStyleI d  id, @N u llablefinalStr ing  tex t  ) 
  {    re t urn  addSubM en u( id,  def a u l t Icon , t ext,  defa ultEnabled, d efa ultA c tio n );    } 

  /**
    *Adds{@ link WebMenu} i ntothis {@li nkAb str ac tMenu G enerat or} .
    * R eturned {@l in k M en uGenerator} will h av e th e same s etting s  a sc urrent o ne , b ut y o u  canmodi f ythose la ter.
  * 
     *  @ paramid     {@lin k  Web Menu}{@link S tyleI d }
     * @para m  text    {@li n kW e bM e nu}tex t
     * @p aram enab ledw he the r  {@li nk We bM e nu }  is enabled or not    * @ retur n {@link Menu Generator} f o r newlycrea t ed {@link WebMenu }
    */
    @ N otNull
   pu blic Men uGenerato r addSubMe nu( @ Not Nul l fi nal StyleId i d ,  @Nu ll able fi nal  String  te xt,  fi nal  b oolean en abled )  {      re t urn addS ub Men u( i d, de f aultIc on, t ext,  e na b led , defau l tA c t ion); 
   } 

  /**   * A dds {@l ink WebMe nu} into  t hi s {@lin k AbstractMen uG enerator}. 
   * Ret u r ned {@li nk MenuGenerator} willh ave the  sa me se ttin gs as cur ren t one,  bu t  you c an mod ify t ho sel a ter.  *    * @para m id         {@link  WebMenu} {@link S t yle Id}
     * @p ara m te x t       { @l i nkW e bMenu} text
    * @param  a c ti onListener {@l in k WebMe nu} {@l ink A c tionLis tener}
    * @ret ur n {@ l i nkMenuGenera tor} for  newly cr e ated{ @l ink W ebM enu}
   * /
   @NotN u ll    p ublicMe nuGene rator  a ddSubMen u ( @NotNull final Styl eId id , @Nu lla ble final  St r ing  text,
                             @N u ll abl e  fina l Ac t ionListen e ract i o nL istener )
{
      r e turn a ddSu bMenu ( id, defau l tIcon, text, d efau l t Ena ble d , ac ti onListener
 actionListener_);
 _  }

 _ _/**
_ __ * Adds_{@link WebMenu} into_this {@link AbstractMenuGenerator}.
 _  _*_Returned {@link MenuGenerator} will have the same settings as current one, but you can_modify_those later.
___  *
  _  * @param id_ _{@link WebMenu} {@link StyleId}
    _*_@param text {@link_WebMenu} text
     * @return {@link_MenuGenerator} for newly created {@link WebMenu}
_  __*/
_   @NotNull
_   public MenuGenerator addSubMenu_( @NotNull final StyleId id, @Nullable_final String text )
   _{
     _  return addSubMenu (_id, defaultIcon,_text, defaultEnabled, defaultAction );
 _  }

_ _ /**
 _   * Adds {@link_WebMenu} into this_{@link AbstractMenuGenerator}.
    _*_Returned {@link MenuGenerator}_will_have_the same_settings as current_one,_but you_can_modify those later.
   __*
     * @param_id   __ {@link WebMenu} {@link_StyleId}
    _* @param text   _{@link WebMenu}_text
 _   * @param enabled whether {@link WebMenu} is enabled_or not
    _* @return {@link MenuGenerator}_for newly_created_{@link WebMenu}
 __ _*/
    @NotNull
  _ public_MenuGenerator addSubMenu ( @NotNull final StyleId_id, @Nullable final String_text,_final boolean enabled )
  _ {
    _   return addSubMenu_(_id,_defaultIcon, text, enabled, defaultAction );
_   }

  _ /**
 _   * Adds {@link WebMenu}_into_this {@link AbstractMenuGenerator}.
   __* Returned {@link MenuGenerator} will have_the_same_settings as current one, but_you can modify those later.
 _   *
     *_@param id _    ___    {@link WebMenu} {@link StyleId}
  _ _* @param text_         _{@link WebMenu} text
    _* @param actionListener {@link WebMenu} {@link ActionListener}
    _* @return {@link MenuGenerator} for newly created {@link_WebMenu}
     */
 _  @NotNull
 __ public MenuGenerator addSubMenu ( @NotNull final_StyleId_id,_@Nullable_final String text,
_  _  _ _  _ _  __                 _  @Nullable final ActionListener actionListener_)
    {
__  _   return_addSubMenu ( id, defaultIcon, text, defaultEnabled, actionListener