From c667a7e4bad3e876f821a12ad9cd77c6bd05acb2 Mon Sep 17 00:00:00 2001 From: administrateur Date: Wed, 24 Jan 2007 15:09:28 +0100 Subject: [PATCH] Manage de hashtable list tag. --- build/classes/xid/Presenter.class | Bin 17291 -> 18278 bytes build_test/classes/xid/test/Test.class | Bin 6334 -> 7375 bytes dist/test.jar | Bin 29476 -> 29876 bytes dist/xid.jar | Bin 39945 -> 40238 bytes src/xid/Presenter.java | 163 +++++++++++++++++++------ test/xid/test/Test.java | 28 +++++ test/xid/test/Test.java~ | 142 +++++++++++++++++++-- 7 files changed, 288 insertions(+), 45 deletions(-) diff --git a/build/classes/xid/Presenter.class b/build/classes/xid/Presenter.class index 473dcc85cae927d7a7fb2023a2ce115caf9e26e9..f9621867fea79544ffb50adc3efe1ad0b6eab358 100644 GIT binary patch literal 18278 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 literal 17291 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 Tgg5Xq+yfZ#pc=$Wz5f3P=A!{Y diff --git a/build_test/classes/xid/test/Test.class b/build_test/classes/xid/test/Test.class index 17cec62d9e4b96dd4498f6670ccc0abbcf621a0d..fa0764fcda84d9b7832a4c8a29109c5301f32277 100644 GIT binary patch delta 2232 zcmbVN33OD|8UDVxnR)-bJV=;8jG!po}uo!I(3RddUMID$SOiX4%GDJjS zu#4JK>GCYLv`wqFR@;ipv_tBG#ia}Gw%V$7>27zIbL^s`|9vwF$8+rAoSr#zzwiI= z{qFz2|G)RWJ*|%{EbiNX`yK$T-0EUGMxyv3ZWr9);!fPixA{zJwX@~HV7vQCkY#chX|X5hYBYPrw9)d z9xj|JoFF}h|J}w9y`FVW7;mID~$M+Ln zI-kvT$5Zh_X0YJ!6pvk8PBi*AhZ_CGHPgqRik*bXrdvIp#ua{V&ES%iJl*3;e!$}y zT;=hDJk#M>9?#}E4nO4a!~BTHkMdliz9%)5O7^C5-N`cw0~*KUc|6~r8lGcTGUYE1 zcbhJ*_RHbLW(}A7uZ8DC(;hQiOC096Mke`7BN4wdvRP-l{re-wnRU$iZ$+j?dOTjB zt{Kj3)64GC3a5v10sB1mvd`ZuZ>k_y+8f=(A|csyCRfN7F4D)y<@<>6DVe_2DUWNI zCnEg=nZRp0`_&Aen(xc!i0HC)1KGhsHl^HIHIUD(S(hQ)iZ|bHjlT9mYISd>!;Qz= z3j^_NdhyKBNHaUy3+awrKASGKCzYuc%xj>T9UF3S#dr8CIRsM`TA58220C1&K^USn zohqaT=M82G%ksH`K2v;FVl-l6ZoFk~JfRyaO9T&?n0-7^Y&*E964L6l1cB-xky;N# z3d$8|7QAbqVx{!DxfLCVG*;d~JO5p^W74(*@v5x|R0|KT>MsV}wa<2-b%EHac8^%` zKl=Coc1%y)XwMwZ>i4+b-nRjdgVYPQ!Q&7w^th3F9>bm5N1fTEmmpKy7QdLQiE$gV z>7>1l$yLFXyu{;Xd(F16SlV6tsNo`idR>Fxum9fh6Z{r0T)MojlV@+!mpGt@6raWC zl-1~8uey4CWl2RUhMRYTw<-zYDjg$%a~i&=+^a0W4qUBP6kn={OGivNoxI8)id|i_ z%hqay?`ecDW2b%*zK<*L6?_$fyHLc}Fs#CQw&3gdhOTYmEL?+Yb>kE92Cl<5HS8*V z9e+z_4KjEJ*W=ro>6Iwq2HdFMfF1ab{=Tb;MK#Jzs?_Ymcj`=7b2ht5+Z$d8`E?WB zu09jX#qwqJ&xt8r9~-F98ubp2()F=Ig@)C;VU(_q4Jo|?iF0;i#-f_oh5p?QhZi@N zQF9wYv5Ts>sfrg@@scWTuHw=vZmD9iid(CALIsa5W8PT3c@O%vEJZEXcGPR5nzWEp zwM|E%w6n2GUsnvh$WZ82n$UjMm?*<$A|qxR9n(zL%xA6X;5c&<$D7kwXU=53IhPa6 zTE^pxrtMPHXmavX?9^3Zq`)l%`k4ktyHLWZv zyOqs0&_tHWvnNr}JlUW&n+@71=Fe86Li;?*AA3CeJNw)F-m`7yKuLV-Q2zjc5?zf~_<^h;@Y83XY&ynT zt%CPmd?5Hx@R6msO|ad?4iCka<;NaME$$O*KNWmt^UCsb!51FB#7@Cif?a~I1>Xq1 z6?`{Mu-jJc5qvNB!2*92{3Q6Ri{A#29vUXoy+*bcC_(Slg;4i`7f`0@D zZ2F*JNH8pfkU~co5C(-IVOZ!2MHmr!!Ze}rIEv{WM>8YB!nPphX6Nx;3K{(6r3$0#4+PnL~E^E!pehw(K(PumQJW6;|s*+Kd};y^82dh~q}A zQD6p(aT9LV+FTZ*3%BUS)i{7#73H7~`>|F}18Br9+zwxvb|HZ~aHl?G34yUaB85k6lM_j;y&e) z;q1iyctCH=b#`dS2bD{?vk~i+a{w`?9}lS))JYybw6*10W4AV)wSBmv53RM)Ud&J8 z%4p_-B-)~x?J3=n(pM$1Fe?L#l33h_t84$`=C8_&jsJhWj=r#wuR}bd_d0m=UuW3% A-2eap diff --git a/dist/test.jar b/dist/test.jar index 5fbd7babf3a9ffc1bb64ddb4dd402b9e7b5133d1..5f1b4d3a7802b831fac3ae7bfa505f905bf06eec 100644 GIT binary patch delta 3583 zcmVVkvG=@CwH?D0T=-SCwG%70+|9Q zceBL;F98B4ceC~bMF9dQce6bO1OW~wcQ`gK{xFgl4FCYo9FtE58h=;`d=%vs|G$~t z?6=DTVZs$aSrNzuSqLB)l86M5KoSrlD4vt-Bw5_-gxy&VwW2*dYDG~?i*0GO^=j2t zTUQh>RJ>ZRR_lGV^+2oE`#$=>9RQ}%83Am< zc0X>xtpYm&xDB`aaDPVtUTpW_&H#MaE^wEh;ZA|OCH)?Odj)p+a9;p}c2s zL0&-xf_#DmD%sB1rdbfBQIf`3AS4iYp@(7{r4yr2n!CJHJMR4S-UP`RKAL6Zbc7E~!HENF_Lse-Bm zO%pUdKr`r&0L`RXemaz@B{o}7jfAy=>I5AoXpUSR?xVQ@s;7B!G2cfE2x`piAQU&6 ziH@+|t+#a=VWv!99d0x`I*i0@LP1S59<}P2wX|#n!GBY4MhwE>#%SDVPIa{!i59&z z#uTm5Y|~>a^h8vyU82Y8j3y=b`e-C<8A&VL!jIWSPgqK^1 zXuN|tRI_z;@2w@RtBp1(>}xZ-x{Nr>kIa#rn`&>j?eOPBGHtuN^k|%wmL8iM6*~cXLi$ydXPe-Suz^V#Hfd5He+OoW8814mt{5R`Bobz# z$w(&k4o;b6l#gXWT23uNI*L~KXl0O&rel1xDoDrDaX~tsP9PNa zReu$v6X_)OJbz6RsFba!tqbvUa$QIs!j=zei|NT^C>x8xS%T|aQ6GvE$6+~ftTz*! zsDYv0Ybui&Y2`#MG-5F`w9-t(A_uYgeM^KeV2=Xf$S+TI8;LGG9;7yzQBPd&Vtr$3 zBGI*>Xr#78u1o6lkc2g1N#&w}k0L=bsDGU~C-?J@Fv>30P;Dq~tP5ofX^4bM%eXj) zaW=ABa>t>MVR~iKuBGH4#>@ECgS$~ zfqN!3H?uqO)P3h*H$G%E0LOTELs<+2{Q|G<_W0H%?3?jo9x4Fd-~&?Dho|oW`A>*^}|^u z9d>Nrr`BoAYkOyN=6mfkoYR?8`foE%=!bEJouu_PpQpx-z?lBR#PM|lCAhHSR@CCL zM~$0Yirz&=SF4>D4tqg&!mz38{BB-)o6Ihg)8()4Ohl7bRA=1Rk}%^ur}5|6p_<)t z(N$x~k;~4Om9WjooK#X*V}C{J;%1a>VT2b>_cpsq>QeC#!(Md91bfRto!zjNklA)l zAxzB^oy>u5&RJBJqwSv^sj7X;I44Rm4uCDRkAtRW53+-0%goxhO!lCj*xI7g`WLOr z9_Qx4mO6CbQhg7UX|rX0HJO+$*-P&J*L2BY&P|w)x`VVvj%|q`C4Y(Mv{aDR(z+n6 zCoV~NnR;Ll-n?R_YhrbZ_qb}X5tgPfxi#tp_j^VdhMAe}0O z2KJipeRNuoz9Yw{(`jR`Ny!=Fdk;?=l9nNB-c0evFlVlfn&G89J6SwI8G09osVEPb zgV!xrF@7(GmFAz9<$sK&c1z8(N^>t0xs z&tCMlsV6*YhdgZJK78$ApR}JrbZ>IQ^6BNw2C}c4TYpOvMt{47KuJ;wp=Li=Svev?Y` z$Ts9>t=>P@{KDgMercGiC!=kg$M$GP%B?7AyBRjs7NEY zGD{t3QwO=!!Avb|D%XZga@Mwv=5kG&?5vA;J+#_Wt_>^pND7~}1H+j(LK~Szad{e} z(iqLhGd8B$TkO3B2XN&T6c^lr0|{Gkxx~g2?n0>AS6=K(1LIi5!PWj^e@5GQ z)+Tq0wSNf`6RcR9$e69YWM#3~3Ex%>D)wuoa(xvhO44A5ROXP1B+0uK1DI5vk*aXk zlkBx$`c)#mDE6mOdDSA|f=BA59cQ zGY!R38iVCD9!Jq698J@44Ao#29fo7=8ffP{U(4mQ6_>)t8qdMc@N>5Ec5K8iu#Kyt zkfz|5d?qlGN^u!3=Ng%ZFY#;qhJ9(aR;gxPHUQ^O;2M+g?0$Xb>_-UK0Vs33hmHh z&vsNdOUc;mp( z7jiG#%)RVl?qZj4x7vca{7qTJUzBCsSypjxY307MnmbE^yUHotSI*=RMN%70kAqLkoO zWeQ$X4#n%rTKY7)mRG^L}pIS}u8|5fCj0}G+13hh3W}3M1O53O^s8Lx|W8jr_(U?EE=wEq7mvA8mVrhV)aTIrC!HT zlf8es(}g+0zvoqcX9cR_+A>{FV}vM##!as+4l1s`+05}KP5@DW~J0w{NrP;WT` zCwG&JZ>a(&cat`7LjosvlY4MS0w;Hq#Bf9cCwG$yaYzCucav0cMh+);I5sZ+Fp?Mz z007S%lc;e~0)P{f`*At~{2P-uayeqX0Sr(}0|W{H00000NEwj~DFR0skvG=@M;Wsa0T=-SM;VhU0+|9w z8MDO#F98Ba8MF2SMF9dw8M8eF1OX0588|lIqRXd<3jhGV7?V#18h=*_d{pHT|If=N z@7ra8u;B_sSR;@NvK&DmBoPuo0!cuEps2Mk*_UMFW;gD^VGnB$uhy$tTB_B0-&#=@ z5K&R_YQ0*mx6;-Fty=H<=*-)A2s8LXp~|@PNXDGJ8njVTDH& z{;cCK3Xdv0CLTVn@Pv*hU6?LT{?&z_*~%&g)bGp67tsy-za>m2#QFNrYK91Ls7P(97Vb!rO2tsrD%vE zw~L0-Fc%G{Tz@BxAdg^qibe_?rD(LGF^a~@EMKQ_E*eh-GC4@6352X*xSf#S5RSC_ zjBcZ~!}KwwqSMz9Zf`du^9easflwe;!>q+6YY2|Iu-_yMZwQ3Urg&G28Ch+#1exM# z2)7!+HAW;LbDQXhbp)cqy)oeT#ms2Tx0;9fvcQmao_}C&646d$z2OTQp>|($ED{K{ zGe=gqrL+Iiik42ZRfP4{a95WZV)?OYlC|-+Hp_2E%xI4aN3ZGCOj%^ajM`20ezCwD zguMO?vTjSyB#g`;ZLiKsf(pXu0Zfesd$Lj3I65nO%gJ~w5cD;h5`Y$niSAx*l&G()GEZkk0EZkkPp5^@Ksa?>1| z%aLd9Ndjv{R&|Y+$7wZQF*1)ZtTkvvqu$KX~>Fv651Yd>AK zM1P&m=I(&sPQ(IQ$ej|6ZIUf9qQz)Ep*<3ghy0b^mSEhRuT!m?>O^~P8z(=t7BOZ2 zWm{!rePX3fa5pUyUT*PdEScQNJ;_bcB*B9B&vLb-q1}uvjB$sx#JLSPJrYX~fq$d1 z>`6E&U6xTRrbQX$jqYwUtvRX2sHSPylPqq73I(tJn;^(f* zHiF$9hV=dtp0q@a^JIvM&UdU<-^O0Fp6%W?9yxyu{z{;+r zN>VFGl`j~maaH-4g*h`M)Z%7`rn66$am$~(^9!T>)o`BmVfKi;HE}u za?=W0$xMscP{d6~$ZnRPASRs@XJZ=AHuXuRx-Q=t*d?h0R9XX z2J)*|I7#ByL~%N!xWaEcE)ZV=sr5eZyP^FEtS(@`@8n%qlKI`|NvCpNJB(1`!!}iA9=|{tO|!?srh(L#QwhsN2f2D z>rMWWaMU*~Ss|ZXnSU8%UvZ{v=JCb*W3#?;0-?6Bbt|>Rc@qxr%|Ko95v8-sP1cji z$ymzq%;&=XLV*_>a1sD+V*CIkx$&C3J@{1PPrQ1NaFrwinJmy%$i8zHv zcai}=#m^Wz@$;0hwh~#a7PMe1G*4Cnj-ALpdK+?KRg&fO~B( zb*M!hW>beVHMg36x*`?YiE){~D8coCJj;G7OJrsHTWYI;07$jZK%U8mUtaY@P96r;uF;4b1Wl513A%1ZZy$I ztfT@o(t%J9<9`z7$>zkoDc$9>x@$U@X-30N%w#yLajK^xf!SrALpiT=)~4#|@XRgq%*%Id zM`e>p&Sy!1RW_`)VT}zBv*7|8&b8sfB;;C^rwp?xF>J zpx=h34clzkZo>{61_n6XX~Pq27)%c!Wv=HKpiZn~{AAu>XY(;|4j%*O@-c889|Py} z0e^4-Z}iQmPlX{ipOhkBd*2m zyxDf)dhFp1{U}qO#!Yw;Tk$Gy$G3TFf504HBS8w=C=c6dJa+Q2a3}e27tO)ld?egM zhhsObz`e8<_tEjVpW3m9!gzo-;6XYW4}Z~Vc$m({qqG^1(ZzV2uE7(u6;INgc#8Jm zX?g?lMli+YU0!JB>8*!-uM;VjGaYF(}8IucgM*>F~lT>m<0!JB>nsP`2M;Vjk zaz+kE88|lIqRXd<3jhGV7?U`2Q3CK0lZ$gY0&E(S$8$Xb5+IWXbUXs$Et5oaKLW8% SlU-05lb&=C210KD0000mX98gW diff --git a/dist/xid.jar b/dist/xid.jar index a30bc7978972eb37673b9e2e4b538db22a5d194f..10790f7a59d74352e1bad5f191d2cce974f9d94f 100644 GIT binary patch delta 9223 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 delta 8925 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 rI+F#QIs(-~lR=z40((f4fSf!6OIDM\n"); - } - else - { - result.append ('>'); + TagData data = (TagData) tags.elementAt (nLine); - // Insert data. - if ((data == null) || - (data.display ().equals (""))) + // Open the tag. + result.append ("<"); + result.append (node.getNodeName()); + + // Build attributes. + result.append (processAttributes (attrs, data, Integer.toString (nLine))); + + if ((node.getChildNodes () == null) && + ((data == null) || data.display ().equals (""))) { - result.append (processChildren (node, datas, webappPath, errorOutput)); + // Close the tag. + result.append (" />\n"); } else { - result.append (data.display ()); + result.append ('>'); + + // Insert data. + if ((data == null) || + (data.display ().equals (""))) + { + result.append (processChildren (node, datas, webappPath, prefix, errorOutput)); + } + else + { + result.append (data.display ()); + } + + // Close the tag. + result.append ("\n"); } + } + else + { + // Manage a Hashmap. + TagsDataById data = (TagsDataById) tags.elementAt (nLine); - // Close the tag. - result.append ("\n"); + result.append (Presenter.processElementWithId (node, attrs, idAttr, data, webappPath, Integer.toString (nLine), errorOutput)); + result.append ('\n'); } } } @@ -542,10 +596,24 @@ public class Presenter /** - * Recursive method that processes a node and any child nodes. * */ static protected StringBuffer process (Node node, TagsDataById datas, String webappPath, StringBuffer errorOutput) + { + StringBuffer result; + + result = Presenter.process (node, datas, webappPath, "", errorOutput); + + // + return (result); + } + + + /** + * Recursive method that processes a node and any child nodes. + * + */ + static protected StringBuffer process (Node node, TagsDataById datas, String webappPath, String prefix, StringBuffer errorOutput) { log.debug ("Enter"); String TRANSITIONAL_DTD = "xhtml1-transitional.dtd"; @@ -590,7 +658,7 @@ public class Presenter // Log.write(Log.TRACE,"systemId = " + systemId); } - result.append (Presenter.process (((Document) node).getDocumentElement(), datas, webappPath, errorOutput)); + result.append (Presenter.process (((Document) node).getDocumentElement(), datas, webappPath, prefix, errorOutput)); break; } @@ -604,11 +672,11 @@ public class Presenter if (idAttr != null) { - result.append (Presenter.processElementWithId (node, attrs, idAttr, datas, webappPath, errorOutput)); + result.append (Presenter.processElementWithId (node, attrs, idAttr, datas, webappPath, prefix, errorOutput)); } else { - result.append (Presenter.processElementBasically (node, datas, webappPath, errorOutput)); + result.append (Presenter.processElementBasically (node, datas, webappPath, prefix, errorOutput)); } break; @@ -673,8 +741,23 @@ public class Presenter /* + * */ static StringBuffer processElementBasically (Node node, TagsDataById datas, String webappPath, StringBuffer errorOutput) + { + StringBuffer result; + + result = processElementBasically (node, datas, webappPath, "", errorOutput); + + // + return (result); + } + + + /* + * + */ + static StringBuffer processElementBasically (Node node, TagsDataById datas, String webappPath, String prefix, StringBuffer errorOutput) { StringBuffer result; result = new StringBuffer (); @@ -694,6 +777,14 @@ public class Presenter result.append (attr.getNodeName()); result.append ("=\""); result.append (restoreEntities(new StringBuffer(attr.getNodeValue()))); + + // Don't forget the list case. + if ((attr.getNodeName ().equals ("id")) && (prefix.length () != 0)) + { + result.append ('_'); + result.append (prefix); + } + result.append ("\""); } @@ -718,7 +809,7 @@ public class Presenter for (int i = 0; i < childrenCount; i++) { - result.append (process (children.item(i), datas, webappPath, errorOutput)); + result.append (process (children.item(i), datas, webappPath, prefix, errorOutput)); } result.append(" attribute = (Map.Entry) iterator.next(); - if (attribute.getKey ().equals ("id")) + if ((attribute.getKey ().equals ("id")) && (prefix.length () != 0)) { result.append(" " + attribute.getKey () + "=\"" + attribute.getValue () + '_' + prefix + "\""); } diff --git a/test/xid/test/Test.java b/test/xid/test/Test.java index 2d03921..fb7c0f7 100644 --- a/test/xid/test/Test.java +++ b/test/xid/test/Test.java @@ -251,6 +251,34 @@ class Test System.out.println (""); System.out.println ("=>"); System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + datas.setContent ("identity", 0, "nom", "Jemba"); + datas.setContent ("identity", 0, "prenom", "Epo"); + datas.setContent ("identity", 1, "nom", "Momon"); + datas.setContent ("identity", 1, "prenom", "Christian"); + datas.setContent ("identity", 2, "nom", "Tronche"); + datas.setContent ("identity", 2, "prenom", "Christophe"); + + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("\n \n
noidun nomun prenom
", datas, "", errorMessage); + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas.setContent (\"identity\", 0, \"nom\", \"Jemba\");"); + System.out.println ("datas.setContent (\"identity\", 0, \"prenom\", \"Epo\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"nom\", \"Momon\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"prenom\", \"Christian\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"nom\", \"Tronche\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"prenom\", \"Christophe\");"); + System.out.println ("+"); + System.out.println (""); + System.out.println (" "); + System.out.println ("
un nomun prenom
"); + System.out.println ("=>"); + System.out.println (html); } } diff --git a/test/xid/test/Test.java~ b/test/xid/test/Test.java~ index 8d5d95c..2d03921 100644 --- a/test/xid/test/Test.java~ +++ b/test/xid/test/Test.java~ @@ -90,10 +90,31 @@ class Test } } + static private org.apache.log4j.Logger log; static { + // Initialize log. + org.apache.log4j.Logger log = null; + + org.apache.log4j.BasicConfigurator.configure (); + + + log = org.apache.log4j.Logger.getRootLogger (); + //log.setLevel (org.apache.log4j.Level.INFO); + log.setLevel (org.apache.log4j.Level.INFO); + + log.info ("Enter"); + + // + log.info ("Set the log file format..."); + + + // log = org.apache.log4j.Category.getInstance(Application.class.getName()); + log.info ("... done."); + + log.debug ("Exit"); log = org.apache.log4j.Logger.getLogger (Test.class.getName ()); } @@ -108,24 +129,127 @@ class Test //test (); // - TagsDataById datas = new TagsDataById (); + TagsDataById datas; TagData tag; - // Populate attributes of Test 03. - tag = new TagData (); - tag.setContent ("hello"); - tag.getAttributes ().appendAttribute ("style", "background: blue;"); - tag.getAttributes ().appendAttribute ("style", "foreground: red;"); - tag.getAttributes ().setAttribute ("class", "totoClass"); - datas.put ("test03", tag); + + StringBuffer html; StringBuffer errorMessage; + // Populate attributes of Test 03. + datas = new TagsDataById (); + tag = new TagData (); + tag.setContent ("Superman"); + datas.put ("name", tag); + errorMessage = new StringBuffer (); - html = Presenter.doXid ("bla", datas, "", errorMessage); + html = Presenter.doXid ("
a name
", datas, "", errorMessage); System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("tag = new TagData ();"); + System.out.println ("tag.setContent (\"Superman\");"); + System.out.println ("datas.put (\"name\", tag););"); + System.out.println ("+"); + System.out.println ("
a name
"); + System.out.println ("=>"); + System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + datas.setContent ("name", "Superman"); + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("
a name
", datas, "", errorMessage); + + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas.setContent (\"name\", \"Superman\");"); + System.out.println ("+"); + System.out.println ("
a name
"); + System.out.println ("=>"); + System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + tag = new TagData (); + tag.setContent ("Spiderman"); + tag.getAttributes ().appendAttribute ("style", "background: blue;"); + tag.getAttributes ().appendAttribute ("style", "foreground: red;"); + tag.getAttributes ().setAttribute ("class", "nameClass"); + datas.put ("lastname", tag); + + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("
a last name
", datas, "", errorMessage); + + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("tag = new TagData ();"); + System.out.println ("tag.getAttributes ().setAttribute (\"class\", \"lastnameClass\");"); + System.out.println ("tag.getAttributes ().appendAttribute (\"style\", \"background: blue;\");"); + System.out.println ("tag.getAttributes ().appendAttribute (\"style\", \"foreground: red;\");"); + System.out.println ("tag.setContent (\"Spiderman\");"); + System.out.println ("datas.put (\"lastname\", tag););"); + System.out.println ("+"); + System.out.println ("
a last name
"); + System.out.println ("=>"); + System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + datas.setContent ("lastname", "Spiderman"); + datas.appendAttribute ("lastname", "style", "background: blue;"); + datas.appendAttribute ("lastname", "style", "foreground: red;"); + datas.setAttribute ("lastname", "class", "nameClass"); + + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("
a last name
", datas, "", errorMessage); + + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas.setContent (\"lastname\", \"Spiderman\");"); + System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"foreground: red;\");"); + System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"foreground: red;\""); + System.out.println ("datas.setAttribute (\"lastname\", \"class\", \"nameClass\");"); + System.out.println ("+"); + System.out.println ("
a last name
"); + System.out.println ("=>"); + System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + datas.setContent ("words", 0, "alpha"); + datas.setContent ("words", 1, "bravo"); + datas.setContent ("words", 2, "charlie"); + datas.setContent ("words", 3, "delta"); + datas.setContent ("words", 4, "echo"); + datas.setContent ("words", 5, "fox"); + + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("
    \n
  • a word
  • \n
", datas, "", errorMessage); + + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas.setContent (\"words\", 0, \"alpha\");"); + System.out.println ("datas.setContent (\"words\", 1, \"bravo\");"); + System.out.println ("datas.setContent (\"words\", 2, \"charlie\");"); + System.out.println ("datas.setContent (\"words\", 3, \"delta\");"); + System.out.println ("datas.setContent (\"words\", 4, \"echo\");"); + System.out.println ("datas.setContent (\"words\", 5, \"fox\");"); + System.out.println ("+"); + System.out.println ("
    "); + System.out.println ("
  • a word
  • "); + System.out.println ("
"); + System.out.println ("=>"); System.out.println (html); System.out.println ("----------------------------"); }