You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by ab...@apache.org on 2011/02/16 13:26:42 UTC
svn commit: r1071224 [2/2] - in /incubator/celix/site/trunk/content/celix:
./ community/ community/boardreports/ community/contributing/ css/
documentation/ examples/ images/ js/ js/superfish-1.4.8/
js/superfish-1.4.8/css/ js/superfish-1.4.8/images/ js...
Added: incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,84 @@
+(function($){
+ /* hoverIntent by Brian Cherne */
+ $.fn.hoverIntent = function(f,g) {
+ // default configuration options
+ var cfg = {
+ sensitivity: 7,
+ interval: 100,
+ timeout: 0
+ };
+ // override configuration options with user supplied object
+ cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+ // instantiate variables
+ // cX, cY = current X and Y position of mouse, updated by mousemove event
+ // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+ var cX, cY, pX, pY;
+
+ // A private function for getting mouse position
+ var track = function(ev) {
+ cX = ev.pageX;
+ cY = ev.pageY;
+ };
+
+ // A private function for comparing current and previous mouse position
+ var compare = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ // compare mouse positions to see if they've crossed the threshold
+ if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+ $(ob).unbind("mousemove",track);
+ // set hoverIntent state to true (so mouseOut can be called)
+ ob.hoverIntent_s = 1;
+ return cfg.over.apply(ob,[ev]);
+ } else {
+ // set previous coordinates for next time
+ pX = cX; pY = cY;
+ // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+ ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+ }
+ };
+
+ // A private function for delaying the mouseOut function
+ var delay = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ ob.hoverIntent_s = 0;
+ return cfg.out.apply(ob,[ev]);
+ };
+
+ // A private function for handling mouse 'hovering'
+ var handleHover = function(e) {
+ // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
+ var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
+ while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
+ if ( p == this ) { return false; }
+
+ // copy objects to be passed into t (required for event object to be passed in IE)
+ var ev = jQuery.extend({},e);
+ var ob = this;
+
+ // cancel hoverIntent timer if it exists
+ if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+ // else e.type == "onmouseover"
+ if (e.type == "mouseover") {
+ // set "previous" X and Y position based on initial entry point
+ pX = ev.pageX; pY = ev.pageY;
+ // update "current" X and Y position based on mousemove
+ $(ob).bind("mousemove",track);
+ // start polling interval (self-calling timeout) to compare mouse coordinates over time
+ if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+ // else e.type == "onmouseout"
+ } else {
+ // unbind expensive mousemove event
+ $(ob).unbind("mousemove",track);
+ // if hoverIntent state is true, then call the mouseOut function after the specified delay
+ if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+ }
+ };
+
+ // bind the function to the two event listeners
+ return this.mouseover(handleHover).mouseout(handleHover);
+ };
+
+})(jQuery);
\ No newline at end of file
Propchange: incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,240 @@
+/**
+ * @author Jason Roy for CompareNetworks Inc.
+ * Thanks to mikejbond for suggested udaptes
+ *
+ * Version 1.1
+ * Copyright (c) 2009 CompareNetworks Inc.
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+(function($)
+{
+
+ // Private variables
+
+ var _options = {};
+ var _container = {};
+ var _breadCrumbElements = {};
+ var _autoIntervalArray = [];
+ var _easingEquation;
+
+ // Public functions
+
+ jQuery.fn.jBreadCrumb = function(options)
+ {
+ _options = $.extend({}, $.fn.jBreadCrumb.defaults, options);
+
+ return this.each(function()
+ {
+ _container = $(this);
+ setupBreadCrumb();
+ });
+
+ };
+
+ // Private functions
+
+ function setupBreadCrumb()
+ {
+ //Check if easing plugin exists. If it doesn't, use "swing"
+ if(typeof(jQuery.easing) == 'object')
+ {
+ _easingEquation = 'easeOutQuad'
+ }
+ else
+ {
+ _easingEquation = 'swing'
+ }
+
+ //The reference object containing all of the breadcrumb elements
+ _breadCrumbElements = jQuery(_container).find('li');
+
+ //Keep it from overflowing in ie6 & 7
+ jQuery(_container).find('ul').wrap('<div style="overflow:hidden; position:relative; width: ' + jQuery(_container).css("width") + ';"><div>');
+ //Set an arbitrary width width to avoid float drop on the animation
+ jQuery(_container).find('ul').width(5000);
+
+ //If the breadcrumb contains nothing, don't do anything
+ if (_breadCrumbElements.length > 0)
+ {
+ jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).addClass('last');
+ jQuery(_breadCrumbElements[0]).addClass('first');
+
+ //If the breadcrumb object length is long enough, compress.
+
+ if (_breadCrumbElements.length > _options.minimumCompressionElements)
+ {
+ compressBreadCrumb();
+ };
+ };
+ };
+
+ function compressBreadCrumb()
+ {
+
+ // Factor to determine if we should compress the element at all
+ var finalElement = jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]);
+
+
+ // If the final element is really long, compress more elements
+ if (jQuery(finalElement).width() > _options.maxFinalElementLength)
+ {
+ if (_options.beginingElementsToLeaveOpen > 0)
+ {
+ _options.beginingElementsToLeaveOpen--;
+
+ }
+ if (_options.endElementsToLeaveOpen > 0)
+ {
+ _options.endElementsToLeaveOpen--;
+ }
+ }
+ // If the final element is within the short and long range, compress to the default end elements and 1 less beginning elements
+ if (jQuery(finalElement).width() < _options.maxFinalElementLength && jQuery(finalElement).width() > _options.minFinalElementLength)
+ {
+ if (_options.beginingElementsToLeaveOpen > 0)
+ {
+ _options.beginingElementsToLeaveOpen--;
+
+ }
+ }
+
+ var itemsToRemove = _breadCrumbElements.length - 1 - _options.endElementsToLeaveOpen;
+
+ // We compress only elements determined by the formula setting below
+
+ //TODO : Make this smarter, it's only checking the final elements length. It could also check the amount of elements.
+ jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).css(
+ {
+ background: 'none'
+ });
+
+ $(_breadCrumbElements).each(function(i, listElement)
+ {
+ if (i > _options.beginingElementsToLeaveOpen && i < itemsToRemove)
+ {
+
+ jQuery(listElement).find('a').wrap('<span></span>').width(jQuery(listElement).find('a').width() + 10);
+
+ // Add the overlay png.
+ jQuery(listElement).append(jQuery('<div class="' + _options.overlayClass + '"></div>').css(
+ {
+ display: 'block'
+ })).css(
+ {
+ background: 'none'
+ });
+ if (isIE6OrLess())
+ {
+ fixPNG(jQuery(listElement).find('.' + _options.overlayClass).css(
+ {
+ width: '20px',
+ right: "-1px"
+ }));
+ }
+ var options =
+ {
+ id: i,
+ width: jQuery(listElement).width(),
+ listElement: jQuery(listElement).find('span'),
+ isAnimating: false,
+ element: jQuery(listElement).find('span')
+
+ };
+ jQuery(listElement).bind('mouseover', options, expandBreadCrumb).bind('mouseout', options, shrinkBreadCrumb);
+ jQuery(listElement).find('a').unbind('mouseover', expandBreadCrumb).unbind('mouseout', shrinkBreadCrumb);
+ listElement.autoInterval = setInterval(function()
+ {
+ clearInterval(listElement.autoInterval);
+ jQuery(listElement).find('span').animate(
+ {
+ width: _options.previewWidth
+ }, _options.timeInitialCollapse, _options.easing);
+ }, (150 * (i - 2)));
+
+ }
+ });
+
+ };
+
+ function expandBreadCrumb(e)
+ {
+ var elementID = e.data.id;
+ var originalWidth = e.data.width;
+ jQuery(e.data.element).stop();
+ jQuery(e.data.element).animate(
+ {
+ width: originalWidth
+ },
+ {
+ duration: _options.timeExpansionAnimation,
+ easing: _options.easing,
+ queue: false
+ });
+ return false;
+
+ };
+
+ function shrinkBreadCrumb(e)
+ {
+ var elementID = e.data.id;
+ jQuery(e.data.element).stop();
+ jQuery(e.data.element).animate(
+ {
+ width: _options.previewWidth
+ },
+ {
+ duration: _options.timeCompressionAnimation,
+ easing: _options.easing,
+ queue: false
+ });
+ return false;
+ };
+
+ function isIE6OrLess()
+ {
+ var isIE6 = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
+ return isIE6;
+ };
+ // Fix The Overlay for IE6
+ function fixPNG(element)
+ {
+ var image;
+ if (jQuery(element).is('img'))
+ {
+ image = jQuery(element).attr('src');
+ }
+ else
+ {
+ image = $(element).css('backgroundImage');
+ image.match(/^url\(["']?(.*\.png)["']?\)$/i);
+ image = RegExp.$1;
+ ;
+ }
+ $(element).css(
+ {
+ 'backgroundImage': 'none',
+ 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='" + image + "')"
+ });
+ };
+
+ // Public global variables
+
+ jQuery.fn.jBreadCrumb.defaults =
+ {
+ maxFinalElementLength: 400,
+ minFinalElementLength: 200,
+ minimumCompressionElements: 4,
+ endElementsToLeaveOpen: 1,
+ beginingElementsToLeaveOpen: 1,
+ timeExpansionAnimation: 800,
+ timeCompressionAnimation: 500,
+ timeInitialCollapse: 600,
+ easing: _easingEquation,
+ overlayClass: 'chevronOverlay',
+ previewWidth: 5
+ };
+
+})(jQuery);
Propchange: incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt Wed Feb 16 12:26:40 2011
@@ -0,0 +1,74 @@
+Changelog for Superfish - a jQuery menu plugin
+
+v1.2.1: altered 2nd July 07. added hide() before animate to make work for jQuery 1.1.3.
+
+v1.2.2: altered 2nd August 07. changed over function .find('ul') to .find('>ul') for smoother animations
+ Also deleted the iframe removal lines - not necessary it turns out
+
+v1.2.3: altered jquery 1.1.3.1 broke keyboard access - had to change quite a few things and set display:none on the
+ .superfish rule in CSS instead of top:-999em
+
+v1.3: Pretty much a complete overhaul to make all original features work in 1.1.3.1 and above.
+ .superfish rule reverted back to top:-999em (which is better).
+
+v1.3.1: altered 'li[ul]' to $('li:has(ul)') to work with jQuery 1.2
+
+v1.3.2: added onshow callback option as requested - 'this' keyword refers to revealed ul.
+ fixed bug whereby multiple menus on a page shared options. Now each menu can have separate options.
+ fixed IE6 and IE7 bug whereby under certain circumstances => 3rd tier menus appear instantly with text missing when revisited
+
+v1.3.3: altered event attachment selectors for performance increase on menu setup.
+
+v1.3.4: fixed pathClass bug as current path was not being restored. Still doesn't if using keyboard nav (will work on that).
+
+v1.4: store options objects in array $.superfish.o. Also provide public access to $.superfish.defaults
+ provided backward compat for jQuery versions less than 1.2 via oldJquery option - will use li[ul] or li:has(ul) as needed
+ added more callbacks, also added option to disable hoverIntent usage if that plugin is detected
+
+v1.4.1: fixed current path not being restored when using keyboard to tab away from the menu completely
+ optimised code further - now less code
+ removed addself() in favour of backward compatible add(this)
+ also remove new mouseenter/mouseleave events on window.unload (due to paranoia)
+
+v1.4.2: 3rd July 2008. added semi-colon at start of superfish.js file to avert script concatenation errors
+ added pathLevels option to limit the depth of submenus that get restored by pathClass
+ CSS of main example hugely simplified - other example CSS files less-so.
+ - top level menu items are not fixed width
+ - only need to set submenu widths in one place.
+ - various other improvements.
+ - class names used in all CSS files are changed to be less generic
+ released optional Supersubs plugin which dynamically adjusts submenu widths
+ attach everything to jQuery.fn.superfish to clean up jQuery namespace
+ removed the multi-tier-all-horizontal-example as it was never a great idea and doesn't seem to be in use
+ Update documentation text and remove certain caveats which were there to support users of much older versions of Superfish
+ Documentation now show how to apply bgIgrame 2.1 - it's much easier than before
+ Add all links and their focus and blur events to the onunload unbind - paranoid about memory leaks
+
+v1.4.3 5th July 2008. documentation completely redone using Mike Alsup's templates.
+ CSS revised so that all types of menu use superfish.css as a base. Include additional CSS files to acheive alternate styles.
+ class="sf-menu sf-vertical" creates vertical menu, class="sf-menu sf-navbar" creates nav-bar style menu
+
+v1.4.4 7th July 2008. arrows feature added. If option 'autoArrows' is true, auto-appends (spans) to anchors that have a ul submenu sibling,
+ and adds class 'sf-with-ul' to anchor.
+ CSS added to style new arrows, including an 8-bit alpha (NOT INDEXED!) transparent png of arrow - degrades to solid for IE6.
+ Manually add arrow mark-up to docs and disable autoArrows (via defaults option) to maintain decent performance (for docs page)
+ Update docs, including zip download, to suit.
+ Fix CSS bug that had the third tier of the navbar-style menu visible when JS not available.
+
+v1.4.5 9 July 2008. decreased code weight
+ added drop shadows for capable browsers - added css and 8-bit alpha transparent png image for shadow
+ remove support for jQuery v<1.2
+ remove unload clean-up which was there to solve garbage collection problems in early jQuery versions
+ remove toggling 'visibility' on hide and show which as a fix for an IE bug that is no longer exhibited
+ removed need for getOpts, rewrote getMenu
+ use [].join('') instead of string concatenation for performance increase - probably very slight in this case
+ change selector in 'over' function from '.'+o.hoverClass to 'li.'+o.hoverClass
+
+v1.4.6 added workaround for IE7 shadows. If animation alters opacity then shadow is hidden during the animation and appears after.
+ This required some JS and a line of CSS, so created shortcut references to lighten code further.
+
+v1.4.7 added back in the visibility toggle that was removed in 1.4.5 as the bug is indeed still exhibited by IE6 & 7
+ tweaked the look of the shadow slightly and use nicer 32bit png as I now find they behave the same as 8bit png with regard to fades in IE7
+
+v1.4.8 fix over-sight: using 32bit png meant that the shadow image did show in IE6. Rather than go back to 8bit, add code to exclude IE6 from getting shadow class.
+ use new folder structure recommended by Matt from TopicTrack, for easier updates.
\ No newline at end of file
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,93 @@
+
+/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
+.sf-navbar {
+ background: #BDD2FF;
+ height: 2.5em;
+ padding-bottom: 2.5em;
+ position: relative;
+}
+.sf-navbar li {
+ background: #AABDE6;
+ position: static;
+}
+.sf-navbar a {
+ border-top: none;
+}
+.sf-navbar li ul {
+ width: 44em; /*IE6 soils itself without this*/
+}
+.sf-navbar li li {
+ background: #BDD2FF;
+ position: relative;
+}
+.sf-navbar li li ul {
+ width: 13em;
+}
+.sf-navbar li li li {
+ width: 100%;
+}
+.sf-navbar ul li {
+ width: auto;
+ float: left;
+}
+.sf-navbar a, .sf-navbar a:visited {
+ border: none;
+}
+.sf-navbar li.current {
+ background: #BDD2FF;
+}
+.sf-navbar li:hover,
+.sf-navbar li.sfHover,
+.sf-navbar li li.current,
+.sf-navbar a:focus, .sf-navbar a:hover, .sf-navbar a:active {
+ background: #BDD2FF;
+}
+.sf-navbar ul li:hover,
+.sf-navbar ul li.sfHover,
+ul.sf-navbar ul li:hover li,
+ul.sf-navbar ul li.sfHover li,
+.sf-navbar ul a:focus, .sf-navbar ul a:hover, .sf-navbar ul a:active {
+ background: #D1DFFF;
+}
+ul.sf-navbar li li li:hover,
+ul.sf-navbar li li li.sfHover,
+.sf-navbar li li.current li.current,
+.sf-navbar ul li li a:focus, .sf-navbar ul li li a:hover, .sf-navbar ul li li a:active {
+ background: #E6EEFF;
+}
+ul.sf-navbar .current ul,
+ul.sf-navbar ul li:hover ul,
+ul.sf-navbar ul li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+}
+ul.sf-navbar .current ul ul {
+ top: -999em;
+}
+
+.sf-navbar li li.current > a {
+ font-weight: bold;
+}
+
+/*** point all arrows down ***/
+/* point right for anchors in subs */
+.sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; }
+.sf-navbar ul a > .sf-sub-indicator { background-position: 0 -100px; }
+/* apply hovers to modern browsers */
+.sf-navbar ul a:focus > .sf-sub-indicator,
+.sf-navbar ul a:hover > .sf-sub-indicator,
+.sf-navbar ul a:active > .sf-sub-indicator,
+.sf-navbar ul li:hover > a > .sf-sub-indicator,
+.sf-navbar ul li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/*** remove shadow on first submenu ***/
+.sf-navbar > li > ul {
+ background: transparent;
+ padding: 0;
+ -moz-border-radius-bottomleft: 0;
+ -moz-border-radius-topright: 0;
+ -webkit-border-top-right-radius: 0;
+ -webkit-border-bottom-left-radius: 0;
+}
\ No newline at end of file
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,23 @@
+/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
+.sf-vertical, .sf-vertical li {
+ width: 10em;
+}
+/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */
+.sf-vertical li:hover ul,
+.sf-vertical li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+
+/*** alter arrow directions ***/
+.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */
+.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/
+
+/* hover arrow direction for modern browsers*/
+.sf-vertical a:focus > .sf-sub-indicator,
+.sf-vertical a:hover > .sf-sub-indicator,
+.sf-vertical a:active > .sf-sub-indicator,
+.sf-vertical li:hover > a > .sf-sub-indicator,
+.sf-vertical li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
\ No newline at end of file
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,136 @@
+
+/*** ESSENTIAL STYLES ***/
+.sf-menu, .sf-menu * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.sf-menu {
+ line-height: 1.0;
+}
+.sf-menu ul {
+ position: absolute;
+ top: -999em;
+ width: 10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+ width: 100%;
+}
+.sf-menu li:hover {
+ visibility: inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+ float: left;
+ position: relative;
+}
+.sf-menu a {
+ display: block;
+ position: relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+ z-index: 99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+
+/*** DEMO SKIN ***/
+.sf-menu {
+ float: left;
+ margin-bottom: 1em;
+}
+.sf-menu a {
+ border-left: 1px solid #fff;
+ border-top: 1px solid #CFDEFF;
+ padding: .75em 1em;
+ text-decoration:none;
+}
+.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/
+ color: #13a;
+}
+.sf-menu li {
+ background: #BDD2FF;
+}
+.sf-menu li li {
+ background: #AABDE6;
+}
+.sf-menu li li li {
+ background: #9AAEDB;
+}
+.sf-menu li:hover, .sf-menu li.sfHover,
+.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
+ background: #CFDEFF;
+ outline: 0;
+}
+
+/*** arrows **/
+.sf-menu a.sf-with-ul {
+ padding-right: 2.25em;
+ min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */
+}
+.sf-sub-indicator {
+ position: absolute;
+ display: block;
+ right: .75em;
+ top: 1.05em; /* IE6 only */
+ width: 10px;
+ height: 10px;
+ text-indent: -999em;
+ overflow: hidden;
+ background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+}
+a > .sf-sub-indicator { /* give all except IE6 the correct values */
+ top: .8em;
+ background-position: 0 -100px; /* use translucent arrow for modern browsers*/
+}
+/* apply hovers to modern browsers */
+a:focus > .sf-sub-indicator,
+a:hover > .sf-sub-indicator,
+a:active > .sf-sub-indicator,
+li:hover > a > .sf-sub-indicator,
+li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/* point right for anchors in subs */
+.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
+.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
+/* apply hovers to modern browsers */
+.sf-menu ul a:focus > .sf-sub-indicator,
+.sf-menu ul a:hover > .sf-sub-indicator,
+.sf-menu ul a:active > .sf-sub-indicator,
+.sf-menu ul li:hover > a > .sf-sub-indicator,
+.sf-menu ul li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
+
+/*** shadows for all but IE6 ***/
+.sf-shadow ul {
+ background: url('../images/shadow.png') no-repeat bottom right;
+ padding: 0 8px 9px 0;
+ -moz-border-radius-bottomleft: 17px;
+ -moz-border-radius-topright: 17px;
+ -webkit-border-top-right-radius: 17px;
+ -webkit-border-bottom-left-radius: 17px;
+}
+.sf-shadow ul.sf-shadow-off {
+ background: transparent;
+}
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html Wed Feb 16 12:26:40 2011
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+ <head>
+ <title>A very basic Superfish menu example</title>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8">
+ <link rel="stylesheet" type="text/css" href="css/superfish.css" media="screen">
+ <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
+ <script type="text/javascript" src="js/hoverIntent.js"></script>
+ <script type="text/javascript" src="js/superfish.js"></script>
+ <script type="text/javascript">
+
+ // initialise plugins
+ jQuery(function(){
+ jQuery('ul.sf-menu').superfish();
+ });
+
+ </script>
+ </head>
+ <body>
+ <ul class="sf-menu">
+ <li class="current">
+ <a href="#a">menu item</a>
+ <ul>
+ <li>
+ <a href="#aa">menu item that is quite long</a>
+ </li>
+ <li class="current">
+ <a href="#ab">menu item</a>
+ <ul>
+ <li class="current"><a href="#">menu item</a></li>
+ <li><a href="#aba">menu item</a></li>
+ <li><a href="#abb">menu item</a></li>
+ <li><a href="#abc">menu item</a></li>
+ <li><a href="#abd">menu item</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">short</a></li>
+ <li><a href="#">short</a></li>
+ <li><a href="#">short</a></li>
+ <li><a href="#">short</a></li>
+ <li><a href="#">short</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ <ul>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ <li><a href="#">menu item</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="#">menu item</a>
+ </li>
+ </ul>
+ </body>
+</html>
\ No newline at end of file
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/arrows-ffffff.png
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/arrows-ffffff.png?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/arrows-ffffff.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/shadow.png
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/shadow.png?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/shadow.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/celix/site/trunk/content/celix/js/superfish.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/superfish.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/superfish.js (added)
+++ incubator/celix/site/trunk/content/celix/js/superfish.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+ $.fn.superfish = function(op){
+
+ var sf = $.fn.superfish,
+ c = sf.c,
+ $arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')),
+ over = function(){
+ var $$ = $(this), menu = getMenu($$);
+ clearTimeout(menu.sfTimer);
+ $$.showSuperfishUl().siblings().hideSuperfishUl();
+ },
+ out = function(){
+ var $$ = $(this), menu = getMenu($$), o = sf.op;
+ clearTimeout(menu.sfTimer);
+ menu.sfTimer=setTimeout(function(){
+ o.retainPath=($.inArray($$[0],o.$path)>-1);
+ $$.hideSuperfishUl();
+ if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+ },o.delay);
+ },
+ getMenu = function($menu){
+ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+ sf.op = sf.o[menu.serial];
+ return menu;
+ },
+ addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+
+ return this.each(function() {
+ var s = this.serial = sf.o.length;
+ var o = $.extend({},sf.defaults,op);
+ o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+ $(this).addClass([o.hoverClass,c.bcClass].join(' '))
+ .filter('li:has(ul)').removeClass(o.pathClass);
+ });
+ sf.o[s] = sf.op = o;
+
+ $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+ if (o.autoArrows) addArrow( $('>a:first-child',this) );
+ })
+ .not('.'+c.bcClass)
+ .hideSuperfishUl();
+
+ var $a = $('a',this);
+ $a.each(function(i){
+ var $li = $a.eq(i).parents('li');
+ $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+ });
+ o.onInit.call(this);
+
+ }).each(function() {
+ var menuClasses = [c.menuClass];
+ if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+ $(this).addClass(menuClasses.join(' '));
+ });
+ };
+
+ var sf = $.fn.superfish;
+ sf.o = [];
+ sf.op = {};
+ sf.IE7fix = function(){
+ var o = sf.op;
+ if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+ this.toggleClass(sf.c.shadowClass+'-off');
+ };
+ sf.c = {
+ bcClass : 'sf-breadcrumb',
+ menuClass : 'sf-js-enabled',
+ anchorClass : 'sf-with-ul',
+ arrowClass : 'sf-sub-indicator',
+ shadowClass : 'sf-shadow'
+ };
+ sf.defaults = {
+ hoverClass : 'sfHover',
+ pathClass : 'overideThisToUse',
+ pathLevels : 1,
+ delay : 800,
+ animation : {opacity:'show'},
+ speed : 'normal',
+ autoArrows : true,
+ dropShadows : true,
+ disableHI : false, // true disables hoverIntent detection
+ onInit : function(){}, // callback functions
+ onBeforeShow: function(){},
+ onShow : function(){},
+ onHide : function(){}
+ };
+ $.fn.extend({
+ hideSuperfishUl : function(){
+ var o = sf.op,
+ not = (o.retainPath===true) ? o.$path : '';
+ o.retainPath = false;
+ var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+ .find('>ul').hide().css('visibility','hidden');
+ o.onHide.call($ul);
+ return this;
+ },
+ showSuperfishUl : function(){
+ var o = sf.op,
+ sh = sf.c.shadowClass+'-off',
+ $ul = this.addClass(o.hoverClass)
+ .find('>ul:hidden').css('visibility','visible');
+ sf.IE7fix.call($ul);
+ o.onBeforeShow.call($ul);
+ $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+ return this;
+ }
+ });
+
+})(jQuery);
Propchange: incubator/celix/site/trunk/content/celix/js/superfish.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/js/supersubs.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/supersubs.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/supersubs.js (added)
+++ incubator/celix/site/trunk/content/celix/js/supersubs.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,90 @@
+
+/*
+ * Supersubs v0.2b - jQuery plugin
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ *
+ * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
+ * their longest list item children. If you use this, please expect bugs and report them
+ * to the jQuery Google Group with the word 'Superfish' in the subject line.
+ *
+ */
+
+;(function($){ // $ will refer to jQuery within this closure
+
+ $.fn.supersubs = function(options){
+ var opts = $.extend({}, $.fn.supersubs.defaults, options);
+ // return original object to support chaining
+ return this.each(function() {
+ // cache selections
+ var $$ = $(this);
+ // support metadata
+ var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
+ // get the font size of menu.
+ // .css('fontSize') returns various results cross-browser, so measure an em dash instead
+ var fontsize = $('<li id="menu-fontsize">—</li>').css({
+ 'padding' : 0,
+ 'position' : 'absolute',
+ 'top' : '-999em',
+ 'width' : 'auto'
+ }).appendTo($$).width(); //clientWidth is faster, but was incorrect here
+ // remove em dash
+ $('#menu-fontsize').remove();
+ // cache all ul elements
+ $ULs = $$.find('ul');
+ // loop through each ul in menu
+ $ULs.each(function(i) {
+ // cache this ul
+ var $ul = $ULs.eq(i);
+ // get all (li) children of this ul
+ var $LIs = $ul.children();
+ // get all anchor grand-children
+ var $As = $LIs.children('a');
+ // force content to one line and save current float property
+ var liFloat = $LIs.css('white-space','nowrap').css('float');
+ // remove width restrictions and floats so elements remain vertically stacked
+ var emWidth = $ul.add($LIs).add($As).css({
+ 'float' : 'none',
+ 'width' : 'auto'
+ })
+ // this ul will now be shrink-wrapped to longest li due to position:absolute
+ // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
+ .end().end()[0].clientWidth / fontsize;
+ // add more width to ensure lines don't turn over at certain sizes in various browsers
+ emWidth += o.extraWidth;
+ // restrict to at least minWidth and at most maxWidth
+ if (emWidth > o.maxWidth) { emWidth = o.maxWidth; }
+ else if (emWidth < o.minWidth) { emWidth = o.minWidth; }
+ emWidth += 'em';
+ // set ul to width in ems
+ $ul.css('width',emWidth);
+ // restore li floats to avoid IE bugs
+ // set li width to full width of this ul
+ // revert white-space to normal
+ $LIs.css({
+ 'float' : liFloat,
+ 'width' : '100%',
+ 'white-space' : 'normal'
+ })
+ // update offset position of descendant ul to reflect new width of parent
+ .each(function(){
+ var $childUl = $('>ul',this);
+ var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
+ $childUl.css(offsetDirection,emWidth);
+ });
+ });
+
+ });
+ };
+ // expose defaults
+ $.fn.supersubs.defaults = {
+ minWidth : 9, // requires em unit.
+ maxWidth : 25, // requires em unit.
+ extraWidth : 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
+ };
+
+})(jQuery); // plugin code ends
Propchange: incubator/celix/site/trunk/content/celix/js/supersubs.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/celix/site/trunk/content/celix/links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,13 @@
+
+## Download Celix
+- [Celix SVN][]
+## Mailing Lists
+- [Developers List](mailto:celix-dev@incubator.apache.org)
+ ([Archives](http://incubator.markmail.org/search/+list:org.apache.incubator.celix-dev))
+- [Commits List](mailto:celix-commits@incubator.apache.org)
+ ([Archives](http://incubator.markmail.org/search/+list:org.apache.incubator.celix-commits))
+
+- [Apache Mail Archives](http://mail-archives.apache.org/mod_mbox/)
+
+
+[Celix SVN]: https://svn.apache.org/repos/asf/incubator/celix/trunk
\ No newline at end of file
Added: incubator/celix/site/trunk/content/celix/support/issuetracking.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/support/issuetracking.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/support/issuetracking.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/support/issuetracking.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,16 @@
+Title: Issue Tracking
+
+Celix uses Jira for bug reports, feature requests, enhancements and tasks of all kind.
+
+Anyone can use Jira to report bugs. But before doing so, please make sure that:
+
+- the bug isn't already reported,
+- the problem is actually a bug (the [mailing list](/celix/support/mailinglist.html) can be used for support),
+- you attach enough information to replicate the bug (preferably a unit test)
+
+If you have fixed a bug, the patch can be attached to a bug report.
+
+The Celix Jira Issue Tracker can be found at:
+
+ - <https://issues.apache.org/jira/browse/celix>
+
\ No newline at end of file
Added: incubator/celix/site/trunk/content/celix/support/links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/support/links.mdtext?rev=1071224&view=auto
==============================================================================
(empty)
Added: incubator/celix/site/trunk/content/celix/support/mailinglist.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/support/mailinglist.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/support/mailinglist.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/support/mailinglist.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,19 @@
+Title: Mailing List
+
+Celix users and developers can be reached using mailing lists. Currently there is only one list for development and
+support questions.
+
+- [Celix Developers Mailing List](mailto:celix-dev@incubator.apache.org)
+ - [Subscribe](mailto:celix-dev-subscribe@incubator.apache.org)
+ - [Unsubscribe](mailto:celix-dev-unsubscribe@incubator.apache.org)
+ - [Archives](http://incubator.markmail.org/search/+list:org.apache.incubator.celix-dev)
+
+If the Celix community grows, and there is a need for a dedicated users mailing list, it will be created.
+
+There is a second mailing list which is used to publish changes from the
+[Issue Tracker](/celix/support/issuetracking.html).
+
+- [Celix Commits Mailing List](mailto:celix-commits@incubator.apache.org)
+ - [Subscribe](mailto:celix-commits-subscribe@incubator.apache.org)
+ - [Unsubscribe](mailto:celix-commits-unsubscribe@incubator.apache.org)
+ - [Archives](http://incubator.markmail.org/search/+list:org.apache.incubator.celix-commits)
\ No newline at end of file
Added: incubator/celix/site/trunk/content/celix/support/support.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/support/support.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/support/support.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/support/support.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,11 @@
+Title: Support
+Links: /support/links.mdtext
+
+As detailed on the [Community](/celix/community/community.html) page, Celix is a community driven project. Support is
+given by developers and users.
+
+To get in touch with developers and users, please use our:
+
+- [Mailing List](/celix/support/mailinglist.html)
+- [Issue Tracking](/celix/support/issuetracking.html)
+