incubator-celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abroekh...@apache.org
Subject 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...
Date Wed, 16 Feb 2011 12:26:42 GMT
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,'"> &#187;</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">&#8212;</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)
+



Mime
View raw message