JBoss Rich Faces SVN: r4056 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-16 15:25:49 -0500 (Fri, 16 Nov 2007)
New Revision: 4056
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
Log:
cosmetic changes
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-16 20:23:28 UTC (rev 4055)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-16 20:25:49 UTC (rev 4056)
@@ -569,6 +569,13 @@
Shuttle.prototype.focusListener = function(e) {
e = e || window.event;
this.focusKeeper.focusused = false;
+ if (this.activeItem != null) {
+ if (this.getSelectItemByNode(this.activeItem)._selected) {
+ Richfaces.SelectItems.doSelect(this.activeItem);
+ } else {
+ Richfaces.SelectItems.doNormal(this.activeItem);
+ }
+ }
this.shuttleTable.className = Shuttle.ORDERING_LIST_CLASSES.normal;
}
18 years, 5 months
JBoss Rich Faces SVN: r4055 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-11-16 15:23:28 -0500 (Fri, 16 Nov 2007)
New Revision: 4055
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
Log:
Vertical align for ordering list controls.
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 20:09:43 UTC (rev 4054)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 20:23:28 UTC (rev 4055)
@@ -15,8 +15,10 @@
.ol_center_button_col_valign{vertical-align : middle}
.ol_right_button_col_valign{vertical-align : middle}
.ol_button_content{font-family : Arial; font-size :11px; padding : 0px 4px 0px 1px; text-align : left;}
+
.ol_button_content img {
margin-right: 2px;
+ vertical-align: middle;
}
/*
18 years, 5 months
JBoss Rich Faces SVN: r4054 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-16 15:09:43 -0500 (Fri, 16 Nov 2007)
New Revision: 4054
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
Log:
the corrected event handling
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-16 20:06:14 UTC (rev 4053)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-16 20:09:43 UTC (rev 4054)
@@ -144,24 +144,6 @@
}
}
-Shuttle.prototype.add = function(selectItem) {
- this.createShuttleItem(selectItem, this.shuttle);
-}
-
-Shuttle.prototype.addList = function(shuttleItems) {
- for (var i = 0; i < shuttleItems.length; i++) {
- this.add(shuttleItems[i]);
- }
-}
-
-Shuttle.prototype.remove = function() {
-
-}
-
-Shuttle.prototype.removeList = function() {
-
-}
-
Shuttle.prototype.sort = function() {
if (this.sortOrder == Shuttle.ASC) {
this.shuttleItems.sort(this.compareByLabel);
@@ -216,9 +198,9 @@
if (action != null)
this.autoScrolling(action, event);
- this.onorderchanged();
this.controlListManager();
this.saveState();
+ this.onorderchanged();
}
}
18 years, 5 months
JBoss Rich Faces SVN: r4053 - in trunk/sandbox/ui/orderingList/src/main: java/org/richfaces/renderkit/html/gradientimages and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-11-16 15:06:14 -0500 (Fri, 16 Nov 2007)
New Revision: 4053
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/html/gradientimages/OrderingListClickedGradient.java
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
Log:
Ordering list - background gradient for clicked button.
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-16 19:43:56 UTC (rev 4052)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-16 20:06:14 UTC (rev 4053)
@@ -101,6 +101,11 @@
private final static String CONTROL_ID_BOTTOM = "last";
+ private final static String DEFAULT_LABEL_TOP = "First";
+ private final static String DEFAULT_LABEL_UP = "Up";
+ private final static String DEFAULT_LABEL_DOWN = "Down";
+ private final static String DEFAULT_LABEL_BOTTOM = "Last";
+
protected static abstract class ControlsHelper {
private String name;
@@ -189,7 +194,7 @@
};
protected static final ControlsHelper[] HELPERS = new ControlsHelper[] {
- new ControlsHelper("top", "TOP_LABEL", "Top", OrderingListIconTop.class.getName(), FACET_TOP,
+ new ControlsHelper("top", "TOP_LABEL", DEFAULT_LABEL_TOP, OrderingListIconTop.class.getName(), FACET_TOP,
" rich-ordering-control-top", ATTRIBUTE_CLASS_TOP_CONTROL, "ol_control_bn_top",
CONTROL_ID_TOP, ATTRIBUTE_CE_ONTOPCLICK, true) {
@@ -198,7 +203,7 @@
}
},
- new ControlsHelper("disabledTop", "TOP_LABEL", "Top", OrderingListIconTopDisabled.class.getName(), FACET_DIS_TOP,
+ new ControlsHelper("disabledTop", "TOP_LABEL", DEFAULT_LABEL_TOP, OrderingListIconTopDisabled.class.getName(), FACET_DIS_TOP,
" rich-ordering-control-disabled", ATTRIBUTE_CLASS_DISABLED_CONTROL, "ol_control_dbn_top",
DIS_CONTROL_ID_PREFIX.concat(CONTROL_ID_TOP), null, false) {
@@ -207,7 +212,7 @@
}
},
- new ControlsHelper("up", "UP_LABEL", "Up", OrderingListIconUp.class.getName(), FACET_UP,
+ new ControlsHelper("up", "UP_LABEL", DEFAULT_LABEL_UP, OrderingListIconUp.class.getName(), FACET_UP,
" rich-ordering-control-up", ATTRIBUTE_CLASS_UP_CONTROL, "ol_control_bn_up",
CONTROL_ID_UP, ATTRIBUTE_CE_ONUPCLICK ,true) {
@@ -216,7 +221,7 @@
}
},
- new ControlsHelper("disabledUp", "UP_LABEL", "Up", OrderingListIconUpDisabled.class.getName(), FACET_DIS_UP,
+ new ControlsHelper("disabledUp", "UP_LABEL", DEFAULT_LABEL_UP, OrderingListIconUpDisabled.class.getName(), FACET_DIS_UP,
" rich-ordering-control-disabled", ATTRIBUTE_CLASS_DISABLED_CONTROL, "ol_control_dbn_up",
DIS_CONTROL_ID_PREFIX.concat(CONTROL_ID_UP), null, false) {
@@ -225,7 +230,7 @@
}
},
- new ControlsHelper("down", "DOWN_LABEL", "Down", OrderingListIconDown.class.getName(), FACET_DOWN,
+ new ControlsHelper("down", "DOWN_LABEL", DEFAULT_LABEL_DOWN, OrderingListIconDown.class.getName(), FACET_DOWN,
" rich-ordering-control-down", ATTRIBUTE_CLASS_DOWN_CONTROL, "ol_control_bn_down",
CONTROL_ID_DOWN, ATTRIBUTE_CE_ONDOWNCLICK, true) {
@@ -234,7 +239,7 @@
}
},
- new ControlsHelper("disabledDown", "DOWN_LABEL", "Down", OrderingListIconDownDisabled.class.getName(), FACET_DIS_DOWN,
+ new ControlsHelper("disabledDown", "DOWN_LABEL", DEFAULT_LABEL_DOWN, OrderingListIconDownDisabled.class.getName(), FACET_DIS_DOWN,
" rich-ordering-control-disabled", ATTRIBUTE_CLASS_DISABLED_CONTROL, "ol_control_dbn_down",
DIS_CONTROL_ID_PREFIX.concat(CONTROL_ID_DOWN), null, false) {
@@ -243,7 +248,7 @@
}
},
- new ControlsHelper("bottom", "BOTTOM_LABEL", "Bottom", OrderingListIconBottom.class.getName(), FACET_BOTTOM,
+ new ControlsHelper("bottom", "BOTTOM_LABEL", DEFAULT_LABEL_BOTTOM, OrderingListIconBottom.class.getName(), FACET_BOTTOM,
" rich-ordering-control-bottom", ATTRIBUTE_CLASS_BOTTOM_CONTROL, "ol_control_bn_bottom",
CONTROL_ID_BOTTOM, ATTRIBUTE_CE_ONBOTTOMCLICK, true) {
@@ -252,7 +257,7 @@
}
},
- new ControlsHelper("disabledBottom", "BOTTOM_LABEL", "Bottom", OrderingListIconBottomDisabled.class.getName(), FACET_DIS_BOTTOM,
+ new ControlsHelper("disabledBottom", "BOTTOM_LABEL", DEFAULT_LABEL_BOTTOM, OrderingListIconBottomDisabled.class.getName(), FACET_DIS_BOTTOM,
" rich-ordering-control-disabled", ATTRIBUTE_CLASS_DISABLED_CONTROL, "ol_control_dbn_bottom",
DIS_CONTROL_ID_PREFIX.concat(CONTROL_ID_BOTTOM), null, false) {
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/html/gradientimages/OrderingListClickedGradient.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/html/gradientimages/OrderingListClickedGradient.java 2007-11-16 19:43:56 UTC (rev 4052)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/html/gradientimages/OrderingListClickedGradient.java 2007-11-16 20:06:14 UTC (rev 4053)
@@ -25,16 +25,22 @@
import java.awt.geom.AffineTransform;
import org.ajax4jsf.resource.ResourceContext;
+import org.richfaces.renderkit.html.BaseGradient;
+import org.richfaces.skin.Skin;
/**
* @author Siarhej Chalipau
*
*/
-public class OrderingListClickedGradient extends OrderingListHeaderGradient {
+public class OrderingListClickedGradient extends BaseGradient {
@Override
protected void paint(ResourceContext resourceContext, Graphics2D g2d) {
- g2d.transform(new AffineTransform(1., 0., 0., -1., 0., 18.));
+ g2d.transform(new AffineTransform(1., 0., 0., -1., 0., 15.));
super.paint(resourceContext, g2d);
}
+
+ public OrderingListClickedGradient() {
+ super(7, 15, 9, "headerGradientColor", Skin.headerBackgroundColor);
+ }
}
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 19:43:56 UTC (rev 4052)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 20:06:14 UTC (rev 4053)
@@ -176,13 +176,20 @@
<u:style name="background-color" skin="headerBackgroundColor" />
</u:selector>
-<u:selector name=".ol_button_clicked">
+<u:selector name=".ol_button_light">
<u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListClickedGradient" />
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListHeaderGradient" />
</u:style>
<u:style name="background-color" skin="headerBackgroundColor" />
</u:selector>
+<u:selector name=".ol_button_press">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListClickedGradient" />
+ </u:style>
+ <u:style name="background-color" skin="headerGradientColor" />
+</u:selector>
+
<u:selector name=".ol_internal_header_tab th">
<u:style name="background-image">
<f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListHeaderGradient" />
18 years, 5 months
JBoss Rich Faces SVN: r4052 - trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-16 14:43:56 -0500 (Fri, 16 Nov 2007)
New Revision: 4052
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
Log:
rendering of facets was corrected
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-16 19:19:33 UTC (rev 4051)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-16 19:43:56 UTC (rev 4052)
@@ -392,25 +392,23 @@
String htmlElem = HTML.a_ELEMENT;
UIComponent facet = orderingList.getFacet(helper.getFacetName());
String customEvent = null;
- if (useFacet) {
- renderChild(context, facet);
- } else {
- Map attributes = orderingList.getAttributes();
- if (helper.customEvent != null) {
- customEvent = (String) attributes.get(helper.customEvent);
- }
+ Map attributes = orderingList.getAttributes();
+ if (helper.customEvent != null) {
+ customEvent = (String) attributes.get(helper.customEvent);
+ }
- String styleFromAttribute = (String) attributes
- .get(helper.styleFromAttribute);
- String currentStyle = helper.getStyleClassName();
+ String styleFromAttribute = (String) attributes
+ .get(helper.styleFromAttribute);
+ String currentStyle = helper.getStyleClassName();
- if (styleFromAttribute != null) {
- currentStyle = styleFromAttribute.concat(currentStyle);
- }
+ if (styleFromAttribute != null) {
+ currentStyle = styleFromAttribute.concat(currentStyle);
+ }
- writer.startElement(HTML.DIV_ELEM, orderingList);
- writer.writeAttribute(HTML.id_ATTRIBUTE, clientId + helper.getIdSuffix(), null); //FIXME:
- writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button_border " + (enabled ? "ol_control_shown" : "ol_control_hidden"), null);
+ writer.startElement(HTML.DIV_ELEM, orderingList);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, clientId + helper.getIdSuffix(), null); //FIXME:
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button_border " + (enabled ? "ol_control_shown" : "ol_control_hidden") + currentStyle, null);
+ if (!useFacet) {
writer.startElement(HTML.DIV_ELEM, orderingList);
writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button", null);
@@ -424,16 +422,16 @@
writer.startElement(HTML.DIV_ELEM, orderingList);
writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button_content", null);
- writer.startElement(htmlElem, orderingList);
- // writer.writeAttribute(HTML.id_ATTRIBUTE, clientId +
- // helper.getIdSuffix(), null);
- if (customEvent != null) {
- writer
- .writeAttribute(HTML.onclick_ATTRIBUTE, customEvent,
- null);
- }
+ }
- // writer.writeAttribute(HTML.class_ATTRIBUTE, currentStyle, null);
+ writer.startElement(htmlElem, orderingList);
+ if (customEvent != null) {
+ writer.writeAttribute(HTML.onclick_ATTRIBUTE, customEvent,null);
+ }
+
+ if (useFacet) {
+ renderChild(context, facet);
+ } else {
writer.startElement(HTML.IMG_ELEMENT, orderingList);
writer.writeAttribute(HTML.width_ATTRIBUTE, "15", null);
writer.writeAttribute(HTML.height_ATTRIBUTE, "15", null);
@@ -462,12 +460,18 @@
writer.writeText(label, null);
}
- writer.endElement(htmlElem);
+ }
+ // writer.writeAttribute(HTML.id_ATTRIBUTE, clientId +
+ // helper.getIdSuffix(), null);
+ // writer.writeAttribute(HTML.class_ATTRIBUTE, currentStyle, null);
+ writer.endElement(htmlElem);
+
+ if (!useFacet) {
writer.endElement(HTML.DIV_ELEM);
writer.endElement(HTML.DIV_ELEM);
- writer.endElement(HTML.DIV_ELEM);
}
+ writer.endElement(HTML.DIV_ELEM);
}
protected void encodeHeaderFacets(FacesContext context, ResponseWriter writer,
18 years, 5 months
JBoss Rich Faces SVN: r4051 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-16 14:19:33 -0500 (Fri, 16 Nov 2007)
New Revision: 4051
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
Log:
margin for control label
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 19:14:12 UTC (rev 4050)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-16 19:19:33 UTC (rev 4051)
@@ -6,7 +6,7 @@
<f:verbatim><![CDATA[
-ol_button_layout{padding : 15px 8px 15px 0px;}
+.ol_button_layout{padding : 15px 8px 15px 0px;}
.ol_button_border{border : 1px solid #bfbfc0; margin-bottom : 3px;}
.ol_button{background : top left #C6D6EA repeat-x; cursor : pointer; padding : 2px; font-family : Arial; font-size :11px;}
.ol_button_light{background : top left #C6D6EA repeat-x; border : 1px solid #E79A00;cursor : pointer; padding : 1px; font-family : Arial; font-size :11px;}
@@ -15,6 +15,9 @@
.ol_center_button_col_valign{vertical-align : middle}
.ol_right_button_col_valign{vertical-align : middle}
.ol_button_content{font-family : Arial; font-size :11px; padding : 0px 4px 0px 1px; text-align : left;}
+.ol_button_content img {
+ margin-right: 2px;
+}
/*
.ol_button_clicked {
18 years, 5 months
JBoss Rich Faces SVN: r4050 - in trunk: framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts and 10 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-11-16 14:14:12 -0500 (Fri, 16 Nov 2007)
New Revision: 4050
Added:
trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuContentHandler.java
trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/Lifo.java
trunk/sandbox/ui/contextMenu/src/main/resources/org/
trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/
trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/
trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/html/
trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/html/context-menu.js
Modified:
trunk/framework/impl/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java
trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js
trunk/sandbox/samples/contextMenuDemo/pom.xml
trunk/sandbox/samples/contextMenuDemo/src/main/java/org/richfaces/Bean.java
trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp
trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/component/UIContextMenu.java
trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuRendererBase.java
Log:
Added special content handler
Modified: trunk/framework/impl/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -73,9 +73,9 @@
this.epilog = epilog;
}
- private List parseExpressiion(String expressionString) throws SAXException {
+ protected List<?> parseExpressiion(String expressionString) throws SAXException {
try {
- List result = new RichMacroDefinition(new StringReader(expressionString)).expression();
+ List<?> result = new RichMacroDefinition(new StringReader(expressionString)).expression();
return result;
} catch (Exception e) {
@@ -90,10 +90,10 @@
this.outputWriter.write("\'\'");
}
- List parsedExpressiion = parseExpressiion(string);
+ List<?> parsedExpressiion = parseExpressiion(string);
boolean isExpression = false;
- for (Iterator iterator = parsedExpressiion.iterator(); iterator
+ for (Iterator<?> iterator = parsedExpressiion.iterator(); iterator
.hasNext();) {
Object next = (Object) iterator.next();
if (next instanceof Expression) {
@@ -107,7 +107,7 @@
}
boolean first = true;
- for (Iterator iterator = parsedExpressiion.iterator(); iterator
+ for (Iterator<?> iterator = parsedExpressiion.iterator(); iterator
.hasNext();) {
Object next = (Object) iterator.next();
@@ -155,9 +155,9 @@
outputWriter = new WellFormedWriter(oldWriter);
try {
- List parsedExpression = parseExpressiion(new String(ch, start,
+ List<?> parsedExpression = parseExpressiion(new String(ch, start,
length));
- for (Iterator iterator = parsedExpression.iterator(); iterator
+ for (Iterator<?> iterator = parsedExpression.iterator(); iterator
.hasNext();) {
Object next = iterator.next();
Modified: trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -7,6 +7,7 @@
import java.io.InputStream;
import java.io.StringReader;
import java.io.StringWriter;
+import java.io.Writer;
import java.util.Properties;
import javax.faces.component.UIComponent;
@@ -26,11 +27,11 @@
import org.ajax4jsf.webapp.tidy.TidyParser;
import org.ajax4jsf.webapp.tidy.TidyXMLFilter;
import org.richfaces.component.TemplateComponent;
-import org.richfaces.json.JSContentHandler;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.ContentHandler;
/**
* @author Nick Belaevski - mailto:nbelaevski@exadel.com
@@ -95,7 +96,7 @@
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- JSContentHandler contentHandler = new MacroDefinitionJSContentHandler(writer, "Richfaces.evalMacro(\"", "\", context)");
+ ContentHandler contentHandler = createContentHandler(writer);
Result result = new SAXResult(contentHandler);
for (int i = 0; i < bodyChildrenLength; i++) {
@@ -158,4 +159,9 @@
writer.write(";\n new Insertion.Top($('" + component.getClientId(context) + "'), evaluator.invoke('getContent', window).join(''));");
writer.endElement("script");
}
+
+
+ protected ContentHandler createContentHandler(Writer writer) {
+ return new MacroDefinitionJSContentHandler(writer, "Richfaces.evalMacro(\"", "\", context)");
+ }
}
Modified: trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js
===================================================================
--- trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js 2007-11-16 19:14:12 UTC (rev 4050)
@@ -175,6 +175,18 @@
return value;
};
+Richfaces.interpolate = function (placeholders, context) {
+
+ for(var k in context) {
+ var v = context[k];
+ var regexp = new RegExp("\\{" + k + "\\}", "g");
+ placeholders = placeholders.replace(regexp, v);
+ }
+
+ return placeholders;
+
+};
+
if (!Richfaces.position) Richfaces.Position={};
Richfaces.Position.setElementPosition = function(element, baseElement, jointPoint, direction, offset)
Modified: trunk/sandbox/samples/contextMenuDemo/pom.xml
===================================================================
--- trunk/sandbox/samples/contextMenuDemo/pom.xml 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/sandbox/samples/contextMenuDemo/pom.xml 2007-11-16 19:14:12 UTC (rev 4050)
@@ -5,7 +5,7 @@
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces</groupId>
+ <groupId>org.richfaces.sandbox.samples</groupId>
<artifactId>contextMenuDemo</artifactId>
<packaging>war</packaging>
<name>contextMenuDemo Maven Webapp</name>
Modified: trunk/sandbox/samples/contextMenuDemo/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/sandbox/samples/contextMenuDemo/src/main/java/org/richfaces/Bean.java 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/sandbox/samples/contextMenuDemo/src/main/java/org/richfaces/Bean.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -24,6 +24,8 @@
import java.util.ArrayList;
import java.util.List;
+import javax.faces.event.ActionEvent;
+
/**
* @author k
*
@@ -60,6 +62,16 @@
private List<Pair> model = new ArrayList<Pair>();
+ private String param;
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
public Bean() {
for (int i = 0; i < 100; i++) {
model.add(new Pair(i));
@@ -73,5 +85,15 @@
public void setModel(List<Pair> model) {
this.model = model;
}
+
+ public void actionListener(ActionEvent event) {
+ System.out.println("Bean.actionListener()" + event.getComponent());
+ }
+
+ public void action() {
+ System.out.println("Bean.action()" + param);
+ }
+
+
}
\ No newline at end of file
Modified: trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp 2007-11-16 19:14:12 UTC (rev 4050)
@@ -1,5 +1,6 @@
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib uri="http://labs.jboss.com/jbossrichfaces/ui/dataTable" prefix="dt"%>
<%@ taglib uri="http://labs.jboss.com/jbossrichfaces/ui/ui/contextMenu" prefix="cm"%>
<%@ taglib uri="http://labs.jboss.com/jbossrichfaces/ui/menu-components" prefix="mc" %>
@@ -23,15 +24,24 @@
<h:form>
<h:panelGroup id="outputText">
<h:outputText value="Right Click Here" />
- <cm:contextMenu submitMode="none">
- <mc:menuItem id="menuItem11" value="Active11: ajax" submitMode="ajax" />
- <mc:menuItem id="menuItem12" value="Active12" immediate="true"/>
- <mc:menuItem id="menuItem14" value="Active14"/>
+ <cm:contextMenu submitMode="ajax">
+ <mc:menuItem id="menuItem11" action="#{bean.action}" value="Active11: ajax" submitMode="ajax" actionListener="#{bean.actionListener}">
+ <a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
+ </mc:menuItem>
+ <mc:menuItem id="menuItem12" action="#{bean.action}" value="Active12" immediate="true" actionListener="#{bean.actionListener}">
+ <a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
+ </mc:menuItem>
+ <mc:menuItem id="menuItem14" action="#{bean.action}" value="Active14" actionListener="#{bean.actionListener}">
+ <a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
+ </mc:menuItem>
<mc:menuSeparator id="menuSeparator11"/>
- <mc:menuItem id="menuItem16" value="Disable16" disabled="true"/>
- <mc:menuItem id="menuItem17" value="">
+ <mc:menuItem id="menuItem16" action="#{bean.action}" value="Disable16" disabled="true" actionListener="#{bean.actionListener}">
+ <a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
+ </mc:menuItem>
+ <mc:menuItem id="menuItem17" action="#{bean.action}" actionListener="#{bean.actionListener}">
+ <a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
<h:inputText value="xXx"/>
</mc:menuItem>
</cm:contextMenu>
Modified: trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/component/UIContextMenu.java
===================================================================
--- trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/component/UIContextMenu.java 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/component/UIContextMenu.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -29,5 +29,9 @@
*/
public abstract class UIContextMenu extends UIComponentBase implements MenuComponent {
public static final String COMPONENT_TYPE = "org.richfaces.ContextMenu";
+
+ public abstract boolean isAttached();
+
+ public abstract void setAttached(boolean b);
}
Added: trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuContentHandler.java
===================================================================
--- trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuContentHandler.java (rev 0)
+++ trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuContentHandler.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -0,0 +1,119 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit.html;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.renderkit.MacroDefinitionJSContentHandler;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class ContextMenuContentHandler extends MacroDefinitionJSContentHandler {
+
+
+ private static final Set<String> INTERPOLATED_ATTRIBUTES = new HashSet<String>();
+
+ static {
+ String[] attrs = {
+ HTML.onblur_ATTRIBUTE,
+ HTML.onchange_ATTRIBUTE,
+ HTML.onclick_ATTRIBUTE,
+ HTML.onfocus_ATTRIBUTE,
+ HTML.onkeydown_ATTRIBUTE,
+ HTML.onkeypress_ATTRIBUTE,
+ HTML.onkeyup_ATTRIBUTE,
+ HTML.onmousedown_ATTRIBUTE,
+ HTML.onmousemove_ATTRIBUTE,
+ HTML.onmouseout_ATTRIBUTE,
+ HTML.onmouseover_ATTRIBUTE,
+ HTML.onmouseup_ATTRIBUTE,
+ HTML.onselect_ATTRIBUTE
+ };
+
+ for (String string : attrs) {
+ INTERPOLATED_ATTRIBUTES.add(string);
+ }
+ }
+
+ private Lifo<String> elementStack = new Lifo<String>();
+
+
+ /**
+ * @param writer
+ * @param prolog
+ * @param epilog
+ */
+ public ContextMenuContentHandler(Writer writer, String prolog, String epilog) {
+ super(writer, prolog, epilog);
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String name,
+ Attributes attributes) throws SAXException {
+ elementStack.push(localName);
+ super.startElement(uri, localName, name, attributes);
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String name)
+ throws SAXException {
+ elementStack.pop();
+ super.endElement(uri, localName, name);
+ }
+
+ @Override
+ protected List<?> parseExpressiion(String expressionString)
+ throws SAXException {
+
+ if (HTML.SCRIPT_ELEM.equals(elementStack.peek())) {
+ return Collections.singletonList(expressionString);
+ } else {
+ return super.parseExpressiion(expressionString);
+ }
+ }
+
+ @Override
+ protected void encodeAttributeValue(Attributes attributes, int idx)
+ throws SAXException, IOException {
+
+ if (INTERPOLATED_ATTRIBUTES.contains(attributes.getQName(idx))) {
+ outputWriter.write("function (context) { return Richfaces.interpolate(\"");
+
+ String value = attributes.getValue(idx);
+ outputWriter.write(value);
+ outputWriter.write("\", context);}");
+ } else {
+ super.encodeAttributeValue(attributes, idx);
+ }
+
+ }
+}
Modified: trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuRendererBase.java
===================================================================
--- trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuRendererBase.java 2007-11-16 19:13:18 UTC (rev 4049)
+++ trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/ContextMenuRendererBase.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -22,6 +22,7 @@
package org.richfaces.renderkit.html;
import java.io.IOException;
+import java.io.Writer;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -30,6 +31,7 @@
import org.ajax4jsf.renderkit.RendererUtils.HTML;
import org.ajax4jsf.resource.InternetResource;
import org.richfaces.renderkit.TemplateEncoderRendererBase;
+import org.xml.sax.ContentHandler;
/**
* @author Maksim Kaszynski
@@ -42,7 +44,10 @@
new ContextMenuRendererDelegate();
private final InternetResource[] ownScripts = {
- getResource("/org/richfaces/renderkit/html/scripts/json/json-dom.js")
+ getResource("/org/richfaces/renderkit/html/scripts/json/json-dom.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/utils.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/context-menu.js")
+
};
private final InternetResource[] scripts;
@@ -84,10 +89,27 @@
delegate.encodeChildren(context, component);
}
+
+ public void encodeChildren(FacesContext context, UIComponent component)
+ throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("script", component);
+ writer.write("var evaluator = ");
+ writeScriptBody(context, component, true);
+ writer.write(";\n new Insertion.Top($('" + component.getClientId(context) + "'), evaluator.invoke('getContent', window).join(''));");
+ writer.endElement("script");
+ }
+
+
@Override
protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
UIComponent component) throws IOException {
writer.endElement(HTML.DIV_ELEM);
}
+
+ @Override
+ protected ContentHandler createContentHandler(Writer writer) {
+ return new ContextMenuContentHandler(writer, "Richfaces.evalMacro(\"", "\", context)");
+ }
}
Added: trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/Lifo.java
===================================================================
--- trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/Lifo.java (rev 0)
+++ trunk/sandbox/ui/contextMenu/src/main/java/org/richfaces/renderkit/html/Lifo.java 2007-11-16 19:14:12 UTC (rev 4050)
@@ -0,0 +1,63 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit.html;
+
+public class Lifo<T> {
+
+ private class Element {
+ private T content;
+ private Element next;
+
+ public Element(Element next, T content) {
+ super();
+ this.next = next;
+ this.content = content;
+ }
+
+ }
+
+ private Element top = null;
+
+ public void push(T element) {
+ top = new Element(top, element);
+ }
+
+ public T pop() {
+ if (top == null) {
+ return null;
+ }
+
+ Element e = top;
+ top = top.next;
+
+ return e.content;
+ }
+
+ public T peek() {
+ if (top == null) {
+ return null;
+ }
+
+ return top.content;
+ }
+
+}
\ No newline at end of file
Added: trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/html/context-menu.js
===================================================================
--- trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/html/context-menu.js (rev 0)
+++ trunk/sandbox/ui/contextMenu/src/main/resources/org/richfaces/renderkit/html/context-menu.js 2007-11-16 19:14:12 UTC (rev 4050)
@@ -0,0 +1,4 @@
+if (!window.Richfaces) var Richfaces = {};
+Richfaces.ContextMenu = {
+ //show
+};
\ No newline at end of file
18 years, 5 months
JBoss Rich Faces SVN: r4049 - in trunk/sandbox/ui/listShuttle/src/main: resources/org and 8 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-16 14:13:18 -0500 (Fri, 16 Nov 2007)
New Revision: 4049
Added:
trunk/sandbox/ui/listShuttle/src/main/resources/org/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/css/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/css/listShuttle.xcss
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListBase.js
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
trunk/sandbox/ui/listShuttle/src/main/templates/org/
trunk/sandbox/ui/listShuttle/src/main/templates/org/richfaces/
trunk/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx
Log:
list shuttle
Added: trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/css/listShuttle.xcss
===================================================================
--- trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/css/listShuttle.xcss (rev 0)
+++ trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/css/listShuttle.xcss 2007-11-16 19:13:18 UTC (rev 4049)
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<f:template xmlns:f='http:/jsf.exadel.com/template'
+ xmlns:u='http:/jsf.exadel.com/template/util'
+ xmlns="http://www.w3.org/1999/xhtml" >
+
+<f:verbatim><![CDATA[
+
+
+.ol_button_layout{padding : 15px 8px 15px 0px;}
+.ol_button_border{border : 1px solid #bfbfc0; margin-bottom : 3px;}
+.ol_button{background : url(ol_images/bg_header.png) top left #C6D6EA repeat-x; cursor : pointer; padding : 2px; font-family : Arial; font-size :11px;}
+.ol_button_light{background : url(ol_images/bg_header.png) top left #C6D6EA repeat-x; border : 1px solid #E79A00;cursor : pointer; padding : 1px; font-family : Arial; font-size :11px;}
+.ol_button_dis{background : #bfbfc0; border : 1px solid #bfbfc0; margin-bottom : 3px; padding : 1px}
+.ol_button_press{background : url(ol_images/bg_press.png) top left repeat-x #EAF0F8; border : 1px solid #E79A00; padding : 2px 0px 0px 2px;font-family : Arial; font-size :11px;}
+.ol_center_button_col_valign{vertical-align : middle}
+.ol_right_button_col_valign{vertical-align : middle}
+.ol_button_content{font-family : Arial; font-size :11px; padding : 0px 0px 0px 0px; text-align : center;}
+
+/*
+.ol_button_clicked {
+ background : repeat scroll left top;
+ border : 1px solid #bfbfc0;
+ margin-bottom : 3px;
+ cursor : pointer;
+ padding : 1px;
+}
+
+.ol_button_dis {
+ background : #bfbfc0;
+ border : 1px solid #bfbfc0;
+ margin-bottom : 3px;
+ padding : 1px;
+}
+
+.ol_button_press {
+ background : #4A75B5;
+ border : 1px solid #bfbfc0;
+ margin-bottom : 3px;
+ padding : 2px 0px 0px 2px;
+}
+*/
+
+.ol_caption {
+ padding : 1px;
+ height: 8px;
+}
+
+.ol_body{border : 0px solid #bfbfc0;}
+
+.ol_label{font-family : Arial; font-size :11px; font-weight : bold;}
+
+.ol_out_label{padding : 3px 3px 3px 8px}
+
+.ol_list{background : #FFFFFF; border : 1px solid #bfbfc0;}
+
+.ol_outputlist{ margin : 0px 8px 8px 8px;}
+
+.ol_list_content {
+ overflow-y : scroll;
+ overflow-x: auto;
+ /*width: 300px;
+ height: 232px;*/
+ width: 200px;
+ height: 150px;
+}
+
+.ol_list_header {
+ overflow: hidden;
+ /*width: 300px;*/
+ height: 18px;
+}
+
+.ol_internal_header_tab {
+ background : repeat scroll left top;
+ /*width : 100%;*/
+}
+
+.ol_internal_header_tab th{background : url(ol_images/bg_header.png) top left repeat-x #C6D6EA; color : #000000; font-family : Arial; font-size :11px; font-weight : normal; border-bottom : 1px solid #bfbfc0;border-right : 1px solid #bfbfc0;border-left : 1px solid #EAF0F8;border-top : 1px solid #FFFFFF; padding : 2px}
+
+.ol_internal_header_tab .ol_endcol {
+ border-right : 0px;
+ white-space: nowrap;
+}
+
+.ol_internal_tab {
+ width : 100%;
+}
+
+.ol_internal_tab .ol_endcol{border-right : 0px;}
+
+.ol_internal_tab td{font-family : Arial; font-size :11px; border-bottom : 1px solid #bfbfc0; border-top : 1px solid #FFFFFF; padding : 2px;}
+
+.ol_internal_tab tr.ol_select{background : #EAF0F8}
+
+.ol_internal_tab tr.ol_active {
+ background : #EAF0F8; color : #4A75B5;
+}
+
+.ol_internal_tab tr.ol_active td{
+ color : #4A75B5;
+}
+
+.ol_internal_tab tr.ol_normal {
+}
+
+.ol_control_shown {
+ /*visibility: visible;*/
+ display: block;
+}
+.ol_control_hidden {
+ /*visibility: hidden;*/
+ display: none;
+}
+
+.body {
+ -moz-user-select: none;
+}
+]]>
+</f:verbatim>
+
+<u:selector name=".ol_cell, .ol_cell *">
+ <u:style name="color" skin="generalTextColor"/>
+ <u:style name="font-size" skin="generalSizeFont"/>
+ <u:style name="font-family" skin="generalFamilyFont"/>
+ <u:style name="border" value="0"/>
+ <u:style name="white-space" value="nowrap"/>
+</u:selector>
+<u:selector name=".ol_control_bn_up">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconUp" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_bn_down">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconDown" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_bn_top">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconTop" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_bn_bottom">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconBottom" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_dbn_up">
+ <u:style name="disabled" value="true"/>
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconUpDisabled" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_dbn_down">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconDownDisabled" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_dbn_top">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconTopDisabled" />
+ </u:style>
+</u:selector>
+<u:selector name=".ol_control_dbn_bottom">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.images.OrderingListIconBottomDisabled" />
+ </u:style>
+</u:selector>
+
+<u:selector name=".ol_button">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListHeaderGradient" />
+ </u:style>
+ <u:style name="background-color" skin="headerBackgroundColor" />
+</u:selector>
+
+<u:selector name=".ol_button_clicked">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListClickedGradient" />
+ </u:style>
+ <u:style name="background-color" skin="headerBackgroundColor" />
+</u:selector>
+
+<u:selector name=".ol_internal_header_tab th">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListHeaderGradient" />
+ </u:style>
+ <u:style name="background-color" skin="headerBackgroundColor" />
+</u:selector>
+
+<u:selector name=".ol_internal_tab tr.ol_select">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListSelectGradient" />
+ </u:style>
+ <u:style name="background-color" skin="additionalBackgroundColor" />
+</u:selector>
+
+<u:selector name=".ol_internal_tab tr.ol_active">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.html.gradientimages.OrderingListSelectGradient" />
+ </u:style>
+ <u:style name="background-color" skin="additionalBackgroundColor" />
+</u:selector>
+</f:template>
\ No newline at end of file
Added: trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListBase.js
===================================================================
--- trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListBase.js (rev 0)
+++ trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListBase.js 2007-11-16 19:13:18 UTC (rev 4049)
@@ -0,0 +1,310 @@
+if(!window.Richfaces) window.Richfaces = {};
+
+Richfaces.ListBase.prototype = {
+ initialize : function(containerId, contentTableId, headerTableId, focusKeeperId, valueKeeperId,
+ onclickControlId) {
+ this.container = $(containerId);
+ this.shuttleTable = $(contentTableId);
+ this.valueKeeper = $(valueKeeperId);
+ this.focusKeeper = $(focusKeeperId);
+ this.focusKeeper.focused = false;
+ this.setFocus();
+ this.focusKeeper.observe("keydown", (function(e) {this.onkeydownHandler(window.event || e)}).bindAsEventListener(this));
+ this.focusKeeper.observe("blur", function (e) {this.focusListener(e);}.bindAsEventListener(this));
+
+ this.shuttleTbody = this.shuttleTable.tBodies[0];
+
+ this.items = null;
+ this.selectedItems = new Array();
+ this.retrieveShuttleItems(containerId);
+
+ this.shuttle = null;
+ this.sortOrder = Shuttle.ASC;
+
+ this.activeItem = null;
+
+ this.onorderchanged = onorderchanged;
+
+ this.shuttleTop = LayoutManager.getElemXY(this.shuttleTable).top;
+
+ $(contentTableId).observe("click", function(e) {this.onclickHandler(window.event || e)}.bindAsEventListener(this));
+ },
+
+ retrieveShuttleItems : function(containerId) {
+ var rows = this.shuttleTbody.rows;
+ this.shuttleItems = new Array();
+ var id;
+
+ for (var i = 0; i < rows.length; i++) {
+ var row = rows[i];
+ id = row.id.split(containerId + ":")[1];
+ this.shuttleItems[i]
+ = new Richfaces.SelectItem(null, (id || i),
+ ((Richfaces.SelectItems.isSelected(row)) ? true : false), row);
+ if (Richfaces.SelectItems.isSelected(row)) {
+ this.selectedItems.push(row);
+ }
+ if (Richfaces.SelectItems.isActive(row)) {
+ this.activeItem = row;
+ }
+ }
+ },
+
+ getExtremeItem : function(position) { //FIXME
+ var extremeItem = this.selectedItems[0];
+ var currentItem;
+
+ for (var i = 1; i < this.selectedItems.length; i++) {
+ currentItem = this.selectedItems[i];
+ if (position == "first") {
+ if (currentItem.rowIndex < extremeItem.rowIndex) {
+ extremeItem = currentItem;
+ }
+ } else {
+ if (currentItem.rowIndex > extremeItem.rowIndex) {
+ extremeItem = currentItem;
+ }
+ }
+ }
+ return extremeItem;
+ },
+
+ getEventTargetRow : function(event) {
+ var activeElem;
+ if (event.rangeParent) {
+ //activeElem = event.rangeParent.parentNode;
+ activeElem = event.target;
+ } else {
+ activeElem = event.srcElement;
+ }
+
+ if (activeElem == null) {
+ return;
+ }
+
+ if (activeElem.tagName && Shuttle.CONTROL_SET.indexOf(activeElem.tagName) != -1) {
+ return;
+ }
+
+ while (activeElem.tagName.toLowerCase() != "tr") {
+ activeElem = activeElem.parentNode;
+ if (!activeElem.tagName) {
+ return; //for IE
+ }
+ }
+
+ return activeElem;
+ },
+
+ onkeydownHandler : function(event) {
+ var action = null;
+ switch (event.keyCode) {
+ case 34 : action = 'last'; this.moveSelectedItems(action ,event); break; //page down
+ case 33 : action = 'first'; this.moveSelectedItems(action, event); break; //page up
+ case 38 : //up arrow
+ action = 'up';
+ this.moveActiveItem(action, event);
+ break;
+ case 40 : //down arrow
+ action = 'down';
+ this.moveActiveItem(action, event);
+ break;
+ case 65 : // Ctrl + A
+ if (event.ctrlKey) {
+ this.selectAll();
+ Shuttle.stopPropogation(event);
+ }
+ Richfaces.SelectItems.doActive(this.activeItem);
+ this.saveState();
+ break;
+ case 32 : this.invertSelection(event); this.saveState(); break; //blank
+ }
+ },
+
+ invertSelection : function(event) {
+ var eventItem = this.activeItem;
+ var eventShuttleItem = this.getSelectItemByNode(eventItem);
+ if (eventShuttleItem._selected) {
+ eventShuttleItem._selected = false;
+ this.selectedItems.remove(eventShuttleItem);
+ } else {
+ eventShuttleItem._selected = true;
+ this.selectedItems.push(eventShuttleItem);
+ }
+ },
+
+ moveActiveItem : function(action, event) {
+ var item = this.activeItem;
+ var rows = this.shuttleTbody.rows;
+ if ((action == 'up') && (item.rowIndex > 0)) {
+ this.changeActiveItems(rows[item.rowIndex - 1], item);
+ } else if ((action == 'down') && (item.rowIndex < this.shuttleItems.length - 1)) {
+ this.changeActiveItems(rows[item.rowIndex + 1], item);
+ }
+
+ this.saveState();
+ this.autoScrolling(action, event);
+ this.controlListManager();
+ },
+
+ changeActiveItems : function(newItem, item) {
+ var shuttleItem = this.getSelectItemByNode(item);
+ var newShuttleItem = this.getSelectItemByNode(newItem);
+
+ this.resetMarked();
+
+ Richfaces.SelectItems.doActive(newItem);
+ newItem._selected = true;
+ this.activeItem = newItem;
+ this.selectedItems.push(newItem);
+ },
+
+ selectAll : function() {
+ var startIndex = 0;
+ var endIndex = this.shuttleItems.length - 1;
+ this.selectItemRange(startIndex, endIndex);
+ },
+
+ /**
+ * Click handler
+ */
+ selectionItem : function(activeItem) {
+ var markedItem = this.getSelectItemByNode(activeItem);
+ var markedShuttleItem = activeItem;
+
+ if (markedItem != null) {
+ this.resetMarked();
+ if (markedItem._selected) {
+ markedItem._selected = false;
+ } else {
+ markedItem._selected = true;
+ this.selectedItems[0] = markedShuttleItem;
+ }
+ }
+ },
+
+ /**
+ * CTRL+Click handler
+ */
+ addSelectedItem : function(activeItem) {
+ var markedItem = this.getSelectItemByNode(activeItem);
+ var markedShuttleItem = activeItem;
+
+ if (markedItem._selected) {
+ this.selectedItems.remove(markedShuttleItem);
+ markedItem._selected = false;
+ } else {
+ markedItem._selected = true;
+ this.selectedItems.push(markedShuttleItem);
+ }
+
+ Richfaces.SelectItems.doSelect(this.activeItem);
+
+ if (this.activeItem && !this.getSelectItemByNode(this.activeItem)._selected) {
+ Richfaces.SelectItems.doNormal(this.activeItem);
+ }
+ },
+
+ /**
+ * Shift+Click handler
+ */
+ selectItemGroup : function(currentItem) {
+ //FIXME
+ var activeItemIndex = this.activeItem.rowIndex;
+ var startIndex;
+ var endIndex;
+
+ if (currentItem.rowIndex > activeItemIndex) {
+ startIndex = activeItemIndex;
+ endIndex = currentItem.rowIndex;
+ } else {
+ startIndex = currentItem.rowIndex;
+ endIndex = activeItemIndex;
+ }
+
+ this.resetMarked();
+
+ this.selectItemRange(startIndex, endIndex);
+ },
+
+ selectItemRange : function(startIndex, endIndex) {
+ var rows = this.shuttleTbody.rows;
+ for (var i = startIndex; i <= endIndex; i++) {
+ Richfaces.SelectItems.doSelect(rows[i]);
+ this.selectedItems.push(rows[i]);
+ this.getSelectItemByNode(rows[i])._selected = true;
+ }
+ },
+
+ resetMarked : function() {
+ var rows = this.shuttleTbody.rows;
+ for (var i = 0; i < rows.length; i++) {
+ var shuttleItem = rows[i];
+ Richfaces.SelectItems.doNormal(shuttleItem);
+ this.getSelectItemByNode(shuttleItem)._selected = false; //FIXME
+ }
+ this.selectedItems.length = 0;
+ },
+
+ getSelectItemByNode : function(selectItemNode) {
+ for (var i = 0; i < this.shuttleItems.length; i++) {
+ var item = this.shuttleItems[i];
+ if (selectItemNode.rowIndex == item._node.rowIndex) {
+ return item;
+ }
+ }
+ return null;
+ },
+
+ autoScrolling : function(action, event) {
+ this.selectedItems.sort(this.compareByRowIndex);
+ var increment;
+ var scrollTop = this.shuttleTable.parentNode.scrollTop;
+ if (action == 'up' || action == 'first') {
+ var targetItemTop = LayoutManager.getElemXY(this.selectedItems[0]).top;
+ increment = (targetItemTop - scrollTop) - this.shuttleTop;
+ if (increment < 0) {
+ this.shuttleTable.parentNode.scrollTop += increment;
+ }
+ } else if (action == 'down' || action == 'last') {
+ var item = this.selectedItems[this.selectedItems.length - 1];
+ targetItemBottom = LayoutManager.getElemXY(this.selectedItems[this.selectedItems.length - 1]).top + item.offsetHeight;
+ var increment = (targetItemBottom - scrollTop) - (this.shuttleTop + this.shuttleTable.parentNode.offsetHeight - LayoutManager.SCROLL_WIDTH);
+ if (increment > 0) {
+ this.shuttleTable.parentNode.scrollTop += increment;
+ }
+ }
+ Event.stop(event);
+ },
+
+ setFocus : function() {
+ this.focusKeeper.focus();
+ this.focusKeeper.focused = true;
+ if (this.isListActive()) {
+ this.shuttleTable.className = Shuttle.ORDERING_LIST_CLASSES.active;
+ }
+ },
+
+ focusListener : function(e) {
+ e = e || window.event;
+ this.focusKeeper.focusused = false;
+ this.shuttleTable.className = Shuttle.ORDERING_LIST_CLASSES.normal;
+ },
+
+ compareByLabel : function(obj1, obj2) {
+ obj1 = obj1._label;
+ obj2 = obj2._label;
+ return Richfaces.ListBase.compare(obj1, obj2);
+ },
+
+ compareByRowIndex : function(obj1, obj2) {
+ obj1 = obj1.rowIndex;
+ obj2 = obj2.rowIndex;
+ return Richfaces.ListBase.compare(obj1, obj2);
+ }
+}
+
+
+Richfaces.ListBase.compare = function(obj1, obj2) {
+ return ((obj1 == obj2) ? 0 : ((obj1 < obj2) ? -1 : 1));
+}
Added: trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
===================================================================
Added: trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
--- trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js (rev 0)
+++ trunk/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-16 19:13:18 UTC (rev 4049)
@@ -0,0 +1,156 @@
+if(!window.Richfaces) window.Richfaces = {};
+Object.extend(OrderingList, ListBase);
+
+Richfaces.OrderingList = {
+ initialize: function(ids, onorderchanged) {
+ this.controlList = null;
+ this.onorderchanged = onorderchanged;
+
+ this.initControlList(ids);
+ },
+
+ initControlList : function(ids) {
+ for (var i = 0; i < ids.length; i++) {
+ var id = ids[i];
+ var node = document.getElementById(containerId + id[0]);
+ var disNode = document.getElementById(containerId + id[1]);
+ if (node && disNode) {
+ Shuttle.addClickListener(node, Shuttle.HANDLERS[id[0]].bindAsEventListener(this));
+ this.controlList[i] = new Control(node, disNode, false, false, id[0]);
+ }
+ }
+ this.controlListManager();
+ },
+
+ controlListManager : function() {
+ this.selectedItems.sort(this.compareByRowIndex);
+ var control;
+ //FIXME
+ if ((this.shuttleItems.length <= 1) || (this.selectedItems.length == 0)) {
+ this.controlsProcessing(["first", "last", "down", "up"]);
+ } else if (this.selectedItems[0].rowIndex == 0) {
+ this.controlsProcessing(["first", "up"]);
+ } else if (this.selectedItems[this.selectedItems.length - 1].rowIndex == (this.shuttleItems.length - 1)) {
+ this.controlsProcessing(["down", "last"]);
+ } else {
+ this.controlsProcessing();
+ }
+ },
+
+ controlsProcessing : function(disabledControls) {
+ for (var i = 0; i < this.controlList.length; i++) {
+ control = this.controlList[i];
+ if (control != null) {
+ if (disabledControls != null && disabledControls.indexOf(control.action) != -1) control.doDisable();
+ else control.doEnable();
+ }
+ }
+ },
+
+ moveSelectedItems : function(action, event) {
+ event = window.event||event;
+ var rows = this.shuttleTbody.rows;
+ var item;
+ if (this.selectedItems.length > 0) {
+ this.selectedItems.sort(this.compareByRowIndex);
+
+ if ((action == 'up') && this.getExtremeItem("first").previousSibling) {
+ for (var i = 0; i < this.selectedItems.length; i++) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item, item.previousSibling);
+ }
+ } else if ((action == 'down') && this.getExtremeItem("last").nextSibling) {
+ for (var i = this.selectedItems.length - 1; i > -1; i--) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item.nextSibling, item);
+ }
+ } else if (action == 'first') {
+ var incr = this.selectedItems[0].rowIndex;
+ for (var i = 0; i < this.selectedItems.length; i++) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item, rows[item.rowIndex - incr]);
+ }
+ } else if (action == 'last') {
+ var length = this.shuttleItems.length;
+ var incr = length - this.selectedItems[this.selectedItems.length - 1].rowIndex;
+ for (var i = this.selectedItems.length - 1; i > -1; i--) {
+ item = this.selectedItems[i];
+ if (item.rowIndex + incr > length - 1) {
+ item.parentNode.insertBefore(item, null);
+ } else {
+ item.parentNode.insertBefore(item, rows[item.rowIndex + incr]);
+ }
+ }
+ }
+
+ this.shuttleItems = new Array();
+ for (var i = 0; i < rows.length; i++) {
+ this.shuttleItems.push(rows[i].item);
+ }
+ if (action != null)
+ this.autoScrolling(action, event);
+
+ this.onorderchanged();
+ this.controlListManager();
+ this.saveState();
+ }
+ },
+
+ onkeydownHandler : function(event) {
+ var action = null;
+ switch (event.keyCode) {
+ case 34 : action = 'last'; this.moveSelectedItems(action ,event); break; //page down
+ case 33 : action = 'first'; this.moveSelectedItems(action, event); break; //page up
+ case 38 : //up arrow
+ action = 'up';
+ if (event.ctrlKey) {
+ this.moveSelectedItems(action, event);
+ } else {
+ this.moveActiveItem(action, event);
+ }
+ break;
+ case 40 : //down arrow
+ action = 'down';
+ if (event.ctrlKey) {
+ this.moveSelectedItems(action ,event);
+ } else {
+ this.moveActiveItem(action, event);
+ }
+ break;
+ case 65 : // Ctrl + A
+ if (event.ctrlKey) {
+ this.selectAll();
+ Shuttle.stopPropogation(event);
+ }
+ Richfaces.SelectItems.doActive(this.activeItem);
+ this.saveState();
+ break;
+ case 32 : this.invertSelection(event); this.saveState(); break; //blank
+ }
+ },
+
+ toString : function() {
+ var result = new Array();
+ for (var i = 0; i < this.shuttleItems.length; i++) {
+ var item = this.shuttleItems[i];
+ result.push(item._id);
+ if (item._selected) {
+ result.push(Shuttle.SELECTION_MARKER);
+ }
+ if (this.activeItem && (this.activeItem.rowIndex == item._node.rowIndex)) {
+ result.push(Shuttle.ACTIVITY_MARKER);
+ }
+ if (i != (this.shuttleItems.length - 1)) {
+ result.push(Shuttle.ITEM_SEPARATOR);
+ }
+ }
+ return result.join("");
+ },
+
+ saveState : function() {
+ if (this.activeItem != null || (this.selectedItems.length > 0)) {
+ this.valueKeeper.value = this.toString();
+ }
+ }
+
+}
\ No newline at end of file
Added: trunk/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx
===================================================================
--- trunk/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx (rev 0)
+++ trunk/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx 2007-11-16 19:13:18 UTC (rev 4049)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<f:root
+ xmlns:f="http://ajax4jsf.org/cdk/template"
+ xmlns:c=" http://java.sun.com/jsf/core"
+ xmlns:ui=" http://ajax4jsf.org/cdk/ui"
+ xmlns:u=" http://ajax4jsf.org/cdk/u"
+ xmlns:x=" http://ajax4jsf.org/cdk/x"
+ baseclass="org.richfaces.renderkit.OrderingListRendererBase"
+ class="org.richfaces.renderkit.html.OrderingListRenderer"
+ component="org.richfaces.component.UIOrderingList"
+ >
+ <h:styles>css/orderingList.xcss</h:styles>
+
+ <h:scripts>
+ new org.ajax4jsf.javascript.PrototypeScript(),
+ scripts/SelectItem.js,
+ scripts/LayoutManager.js
+ scripts/Control.js,
+ scripts/OrderingList.js,
+ </h:scripts>
+
+ <f:clientId var="clientId"/>
+ <vcp:body>
+ <f:clientId var="clientId"/>
+ <div id="#{clientId}" x:passThruWithExclusions="id">
+ <input id="#{clientId}focusKeeper" type="button" value="" style="width: 1px; position: absolute; left: -32767px;" name="focusKeeper"/>
+ <input id="#{clientId}valueKeeper" type="hidden" name="#{clientId}" value="#{component.submittedString}"/>
+
+ <table id="#{clientId}table" cellpadding="0" cellspacing="0" class="ol_body">
+ <tbody>
+ <tr>
+ <td class="ol_caption">
+ <f:call name="encodeTLCaption"/>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="#{clientId}headerBox" class="ol_list ol_outputlist">
+ <div class="ol_list_header" style="width: #{component.attributes['listWidth']}px;">
+ <table id="#{clientId}internal_header_tab" class="ol_internal_header_tab rich-ordering-list-items" cellpadding="0" cellspacing="0">
+ <f:call name="encodeTLHeader"/>
+ </table>
+ </div>
+ <div id="#{clientId}contentBox" class="ol_list_content" style="width: #{component.attributes['listWidth']}px; height:#{component.attributes['listHeight']}px;">
+ <table id="#{clientId}internal_tab" class="ol_internal_tab" cellpadding="0" cellspacing="0">
+ <tbody id="#{clientId}tbody">
+ <f:call name="encodeTLRows" />
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <a id="#{clientId}sortLabel" href="#">Header</a>
+ </div>
+
+ <div id="#{clientId}" x:passThruWithExclusions="id">
+ <input id="#{clientId}tlFocusKeeper" type="button" value="" style="width: 1px; position: absolute; left: -32767px;" name="focusKeeper"/>
+ <input id="#{clientId}tlValueKeeper" type="hidden" name="#{clientId}" value="#{component.submittedString}"/>
+
+ <table id="#{clientId}tlTable" cellpadding="0" cellspacing="0" class="ol_body">
+ <tbody>
+ <tr>
+ <td colspan="2" class="ol_caption">
+ <f:call name="encodeSLCaption"/>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="#{clientId}tlHeaderBox" class="ol_list ol_outputlist">
+ <div class="ol_list_header" style="width: #{component.attributes['listWidth']}px;">
+ <table id="#{clientId}tlInternal_header_tab" class="ol_internal_header_tab rich-ordering-list-items" cellpadding="0" cellspacing="0">
+ <f:call name="encodeSLHeader"/>
+ </table>
+ </div>
+ <div id="#{clientId}tlContentBox" class="ol_list_content" style="width: #{component.attributes['listWidth']}px; height:#{component.attributes['listHeight']}px;">
+ <table id="#{clientId}tlInternal_tab" class="ol_internal_tab" cellpadding="0" cellspacing="0">
+ <tbody id="#{clientId}tlTbody">
+ <f:call name="encodeSLRows" />
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td class="ol_center_button_col_valign">
+ <div class="ol_button_layout">
+ <f:call name="encodeSLControlsFacets" />
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <a id="#{clientId}sortLabel" href="#">Header</a>
+
+ </div>
+ </vcp:body>
+ <f:clientId var="cId"/>
+ <script type="text/javascript">
+ var clientId = '#{cId}';
+ if (window.attachEvent) {
+ window.attachEvent("onload", init);
+ } else {
+ window.addEventListener("load", init, false);
+ }
+ document.body.onselectstart = function() {return false;};
+ document.body.className = "body";
+ function init() {
+ var cotrolsIdPrefix = [['up', 'disup'], ['down', 'disdown'], ['last', 'dislast'], ['first','disfirst']];
+ var sourceList = new Shuttle('#{cId}', '#{cId}internal_tab', '#{cId}internal_header_tab', '#{cId}focusKeeper', '#{cId}valueKeeper', cotrolsIdPrefix, '#{cId}sortLabel', function() {#{component.attributes['onorderchanged']}});
+ var targetList = new Shuttle('#{cId}', '#{cId}tlInternal_tab', '#{cId}tlInternal_header_tab', '#{cId}tlFocusKeeper', '#{cId}tlValueKeeper', cotrolsIdPrefix, '#{cId}tlSortLabel', function() {#{component.attributes['onorderchanged']}});
+ var sourceLayoutManager = new LayoutManager('#{clientId}internal_header_tab', '#{clientId}internal_tab');
+ var sourceLayoutManager = new LayoutManager('#{clientId}tlInternal_header_tab', '#{clientId}tlInternal_tab');
+ layoutManager.widthSynchronization();
+ }
+ //setTimeout(init, 0);
+ </script>
+</f:root>
\ No newline at end of file
18 years, 5 months
JBoss Rich Faces SVN: r4048 - in trunk/ui/inputnumber-spinner/src/main: resources/org/richfaces/renderkit/html/script and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-11-16 14:06:12 -0500 (Fri, 16 Nov 2007)
New Revision: 4048
Modified:
trunk/ui/inputnumber-spinner/src/main/config/component/inputNumberSpinner.xml
trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js
trunk/ui/inputnumber-spinner/src/main/templates/inputNumberSpinner.jspx
Log:
add clientErrorMessage, fix RF-1370
Modified: trunk/ui/inputnumber-spinner/src/main/config/component/inputNumberSpinner.xml
===================================================================
--- trunk/ui/inputnumber-spinner/src/main/config/component/inputNumberSpinner.xml 2007-11-16 18:04:31 UTC (rev 4047)
+++ trunk/ui/inputnumber-spinner/src/main/config/component/inputNumberSpinner.xml 2007-11-16 19:06:12 UTC (rev 4048)
@@ -114,6 +114,12 @@
<description>HTML: a script expression; event fires whenever an JavaScript error occurs</description>
<defaultvalue><![CDATA[""]]></defaultvalue>
</property>
+ <property>
+ <name>clientErrorMessage</name>
+ <classname>java.lang.String</classname>
+ <description>client error message</description>
+ <defaultvalue><![CDATA[""]]></defaultvalue>
+ </property>
<property>
<name>maxlength</name>
<classname>int</classname>
Modified: trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js
===================================================================
--- trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js 2007-11-16 18:04:31 UTC (rev 4047)
+++ trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js 2007-11-16 19:06:12 UTC (rev 4048)
@@ -27,7 +27,7 @@
var edit = this._getDirectChildrenByTag(this.content,'INPUT')[0];
this.upClick = new Function(events.onup + ";return true;").bindAsEventListener(edit);
this.downClick = new Function(events.ondown + ";return true;").bindAsEventListener(edit);
- this.error = new Function(events.onerr + ";return true;").bindAsEventListener(edit);
+ this.error = new Function("event","clientErrorMessage",events.onerr + ";return true;").bind(edit);
this.data = data;
this.max = null;
@@ -57,9 +57,10 @@
this.controls.edit.value = this.max;
}
} else {
- this.error();
+ this.error(e,this.options.clientErrorMsg);
this.controls.fireEditEvent("error");
this.controls.edit.value = this.max;
+ return true;
}
}
}
@@ -79,13 +80,15 @@
this.controls.edit.value = this.max;
}
} else {
- this.error();
+ this.error(e,this.options.clientErrorMsg);
this.controls.fireEditEvent("error");
this.controls.edit.value = this.min;
+ return true;
}
}
}
}
+ return false;
},
roundFloat: function(x){
@@ -192,22 +195,26 @@
if (e.preventDefault) {
e.preventDefault(); ;
}
- this.spinner.switchItems('up');
+ var isError = this.spinner.switchItems('up');
this.spinner.upClick();
- window.document.onmouseup = this.mouseUp.bindAsEventListener(this);
- this.mousedown=true;
- this.timer = setTimeout(this.continueUpClick.bind(this), 750);
+ if(!isError){
+ window.document.onmouseup = this.mouseUp.bindAsEventListener(this);
+ this.mousedown=true;
+ this.timer = setTimeout(this.continueUpClick.bind(this), 750);
+ }
},
downClick: function(e){
if (e.preventDefault) {
e.preventDefault(); ;
}
- this.spinner.switchItems('down');
+ var isError = this.spinner.switchItems('down');
this.spinner.downClick();
- window.document.onmouseup = this.mouseUp.bindAsEventListener(this);
- this.mousedown=true;
- this.timer = setTimeout(this.continueDownClick.bind(this), 750);
+ if(!isError){
+ window.document.onmouseup = this.mouseUp.bindAsEventListener(this);
+ this.mousedown=true;
+ this.timer = setTimeout(this.continueDownClick.bind(this), 750);
+ }
},
continueUpClick: function(){
Modified: trunk/ui/inputnumber-spinner/src/main/templates/inputNumberSpinner.jspx
===================================================================
--- trunk/ui/inputnumber-spinner/src/main/templates/inputNumberSpinner.jspx 2007-11-16 18:04:31 UTC (rev 4047)
+++ trunk/ui/inputnumber-spinner/src/main/templates/inputNumberSpinner.jspx 2007-11-16 19:06:12 UTC (rev 4048)
@@ -103,7 +103,8 @@
edited:#{component.attributes['enableManualInput']},
disabled:#{component.attributes['disabled']},
chameleon:false,
- required: #{component.attributes['required']}
+ required: #{component.attributes['required']},
+ clientErrorMsg: "#{component.attributes['clientErrorMessage']}"
},
{
min:#{component.attributes['minValue']},
18 years, 5 months
JBoss Rich Faces SVN: r4047 - trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2007-11-16 13:04:31 -0500 (Fri, 16 Nov 2007)
New Revision: 4047
Modified:
trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
Log:
RF-1337
Modified: trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
===================================================================
--- trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-11-16 17:39:20 UTC (rev 4046)
+++ trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-11-16 18:04:31 UTC (rev 4047)
@@ -709,7 +709,7 @@
this.actionUrl = actionUrl;
if (onsubmit && onsubmit != 'null'){
- this.onsubmitFunction = new Function(onsubmit).bind(this.element);
+ this.onsubmitFunction = new Function(onsubmit+';return true;').bind(this.element);
}
return this;
@@ -804,10 +804,12 @@
var ret = new Object(), height = 0;
var left = element.offsetLeft;
var top = element.offsetTop;
- for (var parent = element.offsetParent; parent;
- parent = parent.offsetParent) {
+ var parent = element.offsetParent;
+ while (parent)
+ {
left += parent.offsetLeft;
top += parent.offsetTop;
+ parent = parent.offsetParent;
}
ret["x"] = left;
18 years, 5 months