JavaObjects.net User Documentation Sliding Arrow Menu Note : Graphics only available on on-line or Word document formats http://www.javaobjects.net (c) Fugazi Consulting Ltd 2003 Overview A compact, attractive menu with interactive sliding arrow showing current selection. Has the following features : • Infinite number of menu options, URLs and target windows • 8 arrow styles, 3 line styles and 5 line end styles • Text, background and 'arrow' color all configurable • Choose font, font style, size and spacing of text • Any size menu • Tooltips for each menu option, displayed in browser status bar • Settable Initial selected menu option (to signify current page) HTML Example Installation and Configuration Copy the above code (in bold) into your HTML (note, not the content !) of your web page, then copy the class file purchased from http://www.javaobjects.net into the same directory on your web server. You may wish to adjust the WIDTH and/or HEIGHT in the first line of the HTML to suit your web page, and the size of menu you wish to display. Lengthy menu text will need a bigger WIDTH, more menu options will need a bigger HEIGHT. Finding the right size is a little bit “try it and see”, but try not to make the applet much bigger than the size of the menu options being displayed. You can customise your applet further by changing the following parameters (some of which are optional, i.e. can be omitted) : forecolor backcolor insertcolor The colour of the text/lines, background and the insert on the position pointer (arrow) respectively. Defaults to black, white and orange if any of these parameters are omitted. arrowtype linetype lineend Numeric value to signify which arrow type, line ends and line type should be used. See below. startpos Which menu option the pointer (arrow) is pointing at as a default. There will be no initial selection if parameter is omitted (in other words, no arrow will be shown on the menu unless the user points at the menu). Can be useful for indicating which page the user is currently on within your site, as an initial state. textspace The amount of free space between each menu option, defaults to 20 pixels if parameter is omitted. fontstyle Helvetica, TimesRoman or Courier. Defaults to Helvetica if parameter is omitted. Note that these are the only three fonts which are guaranteed to be on all web browsers, hence why only these fonts are offered (other fonts would cause unpredictable results on certain browsers / machines) fonttype Plain, Bold, Italic. Defaults to Bold if parameter is omitted. fontsize The size of the menu text. Defaults to 11 if omitted. arrowpos "left" or "right", the side the arrow should appear on. If “left”, the arrow and bar will appear to the left of the menu options. If “right” the arrow and bar will appear on the right of the options. menu_n A list of the menu option texts, starting at 1. So, your first menu option would be on parameter menu_1, your second menu option would be on parameter menu_2, and so on. url_n The URL to go to if the user clicks on the corresponding menu option. Can also include an email address (as above, see example) target_n The target window to open the URL in. Valid values of _top _self _parent or _blank. See URL Targets below for more info. tooltip_n Tooltip to be displayed in the browsers status bar for the menu option being pointed at. Optional Note : ideally there should always be one url_n and one target_n parameter for every menu_n parameter, as shown above, for example : So, if you have 5 menu options you will have five parameters called menu_1 through menu_5, five parameters called url_1 through url_5 and five parameters called target_1 through target_5. We recommend, for clarity of reading the HTML, that all the menu parameters are grouped together, and all the url and target parameters are grouped together, however this is not necessary for the applet to work. Notes on Color : the color values are hex values of RGB (red, green, blue). A value of FF8844 means a red value of FF, a green value of 88 and a blue value of 44. In decimal, this hex converts to 256, 128 and 64. For a full description on working out color values, refer to the full explaination later in this document. Arrow, Line and Line End Combinations Arrow Types : 0 no arrow 1 arrow, infilled 2 single line 3 double line 4 solid box 5 box, infilled 6 arrow 7 double arrow Line Types : 0 no line 1 single line 2 double line Line Ends : 0 no end 1 solid box end 2 line end T 3 solid box, infilled 4 arrow Support Remember, if you are struggling to set up your applet, or are having problems, we are here to help. Our support team can be contacted on support@javaobjects.net. Please supply as much information about your problem as possible, including the applet name you are having problems with, the HTML code you are using, and if relevant the URL of the site where the applet is being used. URL Targets URL Target Window parameters specify which browser window the destination URL will open up in, when the user clicks on a menu option or graphic (depending on the applet in question). Valid values : _blank – open in a brand new window, leaving this window still open _top – open in the current window, whole page _self – open in the current frame. Only really used when using frames on your page. _parent - open in the parent window. The most commonly used options will be _blank (new window) and _top (same window) which should cater for most scenarios. Color Hexadecimal Values : Color values used on HTML pages and Java applets are represented as six character hexadecimal values, where “000000” is pure black, “FFFFFF” is pure white, and ever other possible color combination can be found in between. The six digits in each colour value can be split into three 2 character Red, Green and Blue values. So, a value of “112233” means a Red value of 11, a Green value of 22 and a Blue value of 33. A note on Hexadecimal representation : As humans with, generally speaking, 10 fingers and 10 toes, we are used to the decimal number system, that is, a ten digit number system starting at 0 and going up to 9. When we reach 9, we “roll over” back to zero again and, of course, add a 1 to the left hand side to give 10. Whereas decimal has ten values per digit, hexadecimal has sixteen values per digit. The standard ten from 0 to 9, but then of course we run out of occidental numbers. So, we start using letters …. A for value 10, B for 11, C for 12, D for 13, E for 14 and F for 15. Once we reach ‘15’ (or F) we “roll over” back to zero again, and add that one to the left, giving 10 (which is the equivalent of value 16 in decimal) Here are a few example of hexadecimal (or “hex”) values and decimal values : Hex 1 = Decimal 1 Hex 9 = Decimal 9 Hex A = Decimal 10 Hex 10 = Decimal 16 Hex 1F = Decimal 31 Hex FF = Decimal 255 So, how do we turn “slightly light blue” into a series of 6 hexadecimal characters ? Well, the easiest way to do this, if you have a Windows operating system, is using the Paint package. Open up Paint, then choose the menu options Colors / Edit Colors. Click on the Define Custom Colors button to bring the color wheel up like this : Choose the desired color you are after using the large color area, and chose the shade using the slider on the right. Here we have chosen that light blue colour we love so much. On the bottom right hand side you can see that there are three values – Red, Green and Blue. But these values are represented in decimal (not hex) which is no use for web work. We know our RGB values, we just need to convert them to hex ! The easiest way to do this is as follows. Let’s take the Red value, 84. Divide 84 by 16 to get 5.25. At this point all we are bothered about is the integer part of this result, i.e. the 5. That’s our first digit. Take the 5 and times that by 16 to give 80. Take 80 from the original number (84) to give a remainder of 4. That’s our second digit. So, the two characters which represent Red in hexadecimal is “54”. Carry on and do the same for Green and Blue. Let’s work through Green first. 175 / 16 = 10.9375. Forget the .9375 and concentrate on 10. We already know that in hex the value 10 is represented by the letter A so ‘A’ is our first digit. 10 * 16 = 160. 175 – 160 equals a remainder of 15. 15 we know is F in hex. So, our Green value is ‘AF’ Finally blue. 203 / 16 = 12.6875. Drop the .6875 to give 12, which is ‘C’. 12 * 16 = 192. 203 – 192 = 11 (or ‘B’). So, our Green value is ‘CB’ Put the three values together, and we arrive at a color value for “slightly light blue” of “54AFCB” ….. result ! If this seems a little long winded or complicated, don’t worry. Try this a few times, and pretty soon this will become second nature. Examples : Black 000000 White FFFFFF Light Gray B0B0B0 Dark Gray 808080 Red FF0000 Green 008000 Blue 0000FF Dark Blue 000080 Bright Green 00FF00 Purple 800080 Light Purple FF00FF Brown 800000 Cyan 00FFFF Yellow FFFF00 License Information Standard Software Disclaimers and Conditions Fugazi Consulting Ltd hereby grants you a non-exclusive license to use its accompanying software product provided that : 1. The Licensee does not redistribute the software, unless authorised to do so by Fugazi Consulting Ltd. 2. The Licensee does not utilize the software in a manner which is disparaging to Fugazi Consulting Limited. 3. No attempt is made to modify, translate, reverse engineer, decompile, disassemble or create derivative works based on the software. 4. No attempt is made to rent, lease, transfer or otherwise transfer rights to the software, or remove any proprietary notices or labels on the software. This license does not grant you any automatic right to any enhancement or update. Title, ownership rights, and intellectual property rights in and to the Software shall remain with Fugazi Consulting Ltd. The Software is protected by the international copyright laws. Title, ownership rights, and intellectual property rights in and to the content accessed through the software is the property of the applicable content owner and may be protected by applicable copyright or other law. This License gives you no rights to such content. Java applets which are provided by this site on a free basis are offered "as is" without a warranty of any kind. Pertaining to all software, all expressed or implied conditions, representations and warranties, including any implied warranty of merchantability, fitness for a particular purpose or non-infringement, are hereby excluded. Fugazi Consulting Ltd and it's licensors shall not be liable for any damages suffered by licensee as a result of using, modifying or distributing the software or it's derivatives. In no event will Fugazi Consulting or it's licensors be liable for any lost revenue, profit or data, or for direct, indirect, special, consequential, incidental or punitive damages, however caused and regardless of the theory of liability, arising out of the use of or inability to use software, even if Fugazi Consulting has been advised of the possibility of such damages. This software is not designed or intended for use in on-line control of aircraft, air traffic, aircraft navigation or aircraft communications; or in the design, construction, operation or maintenance of any nuclear facility. Licensee represents and warrants that it will not use or redistribute the software for such purposes.