<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Okay, I will try the new syntax and report back.  It appears to work on one case.  Whee!  Way to go!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Wednesday, February 22, 2017 9:51 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>; <a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: X3DJSAIL. Handling of MFStrings. using string constants, settingan array value with brackets?</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>hmmm.  the enumerations are autogenerated and available as string constants at</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Text/FontStyleObject.html#field.summary</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Text/FontStyleObject.html#JUSTIFY_MIDDLE_MIDDLE</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>btw programmers can avoid string-syntax errors entirely by using such a value, e.g.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                FontStyleObject.JUSTIFY_MIDDLE_MIDDLE</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>i prefer this style because typos are caught at compile time, rather than run time.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Wondering, do you have ["square" "brackets"] in the value you are setting?  if so those are illegal.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Am hesitant to strip out square brackets, those would be caught by prior XML validation (and perhaps JSON validation).  Better to fix such errors by not producing them...  this would also be a characteristic of all MF types...</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Could put a more descriptive warning in MFString set methods (or perhaps all of the MF set methods) if that seems advisable.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So please let me know what went wrong here (source excerpt would help).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I elaborated the following excerpt from HelloWorldProgram.java</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>myFontStyle.setFamily (FontStyleObject.FAMILY_SERIF)</p><p class=MsoNormal>                                   .setJustify(new String[] {"MIDDLE","MIDDLE"}) // alternate form, but no error checking until run time</p><p class=MsoNormal>                                   .setJustify(FontStyleObject.JUSTIFY_MIDDLE_MIDDLE)  // preferred form, error checking at compile time</p><p class=MsoNormal>                                   .setTopToBottom(FontStyleObject.TOPTOBOTTOM_DEFAULT_VALUE);</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 2/20/2017 8:39 PM, yottzumm@gmail.com wrote:</p><p class=MsoNormal>> This error came back:</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> CoordinateAxes.java</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: FontStyle justify newValue="["MIDDLE","MIDDLE"]" has illegal value, must use a valid enumeration string.^M</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>         at org.web3d.x3d.jsail.Text.FontStyleObject.setJustify(FontStyleObject.java:653)^M</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>         at CoordinateAxes.main(CoordinateAxes.java:135)^M</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Will send a new batch of error reports when they finish running.  Checking code into X3DJSONLD.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> John</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> *From: *Don Brutzman <mailto:brutzman@nps.edu></p><p class=MsoNormal>> *Sent: *Monday, February 20, 2017 12:55 AM</p><p class=MsoNormal>> *To: *yottzumm@gmail.com <mailto:yottzumm@gmail.com>; Roy Walmsley <mailto:roy.walmsley@ntlworld.com>; X3D Graphics public mailing list <mailto:x3d-public@web3d.org></p><p class=MsoNormal>> *Subject: *Re: X3DJSAIL. Handling of MFStrings. First non-quote char trimmedoff.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> bug fixed in recently posted build - thanks!</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> On 2/15/2017 7:01 PM, yottzumm@gmail.com wrote:</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Here’s what output looks like in the JSON:</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> "@justify":["IDDLE","MIDDLE\""]</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> *From: *yottzumm@gmail.com <mailto:yottzumm@gmail.com></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> *Sent: *Wednesday, February 15, 2017 8:27 PM</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> *To: *Don Brutzman <mailto:brutzman@nps.edu>; Roy Walmsley <mailto:roy.walmsley@ntlworld.com>; X3D Graphics public mailing list <mailto:x3d-public@web3d.org></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> *Subject: *X3DJSAIL. Handling of MFStrings. First non-quote char trimmed off.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> I notice a problem with the handling of my MFStrings.  Namely, the first character of the first SFString in an MFString is trimmed off, and the final \” is kept on when converting to a JSON array.  It also looks like it happens when defaults are introduced, see @transitionType in cobweb.output.json.  Attached.  No errors on output.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Need to verify if this is correct way to specify MFStrings, and if not, can we make it the same between all MFStrings, including text justify constants?  Is append or setString preferred?  Can we reduce the special cases, if any?  If below is the correct way, we need to repair the above paragraph.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setBackUrl(new String[] {"\"cubemap/BK.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/BK.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setBottomUrl(new String[] {"\"cubemap/BT.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/BT.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setFrontUrl(new String[] {"\"cubemap/FR.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/FR.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setLeftUrl(new String[] {"\"cubemap/LF.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/LF.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setRightUrl(new String[] {"\"cubemap/RT.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/RT.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 Background0_2_4.setTopUrl(new String[] {"\"cubemap/TP.png\",\"http://coderextreme.net/X3DJSONLD/cubemap/TP.png\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>>                 NavigationInfo0_2_0.setType(new String[] {"\"EXAMINE\""});</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Thanks,</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> John</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> all the best, Don</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> --</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>