[jbosstools-commits] JBoss Tools SVN: r6973 - in trunk: jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/META-INF and 7 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Mar 18 04:43:45 EDT 2008


Author: sdzmitrovich
Date: 2008-03-18 04:43:44 -0400 (Tue, 18 Mar 2008)
New Revision: 6973

Added:
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractEditableJsfTemplate.java
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/handler.gif
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/input.gif
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider_old.css
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/numberSlider.css
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/spacer.gif
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/track.gif
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/AbstractEditableRichFacesTemplate.java
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/InputNumberSliderTemplate.java
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/util/
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/util/RichFaces.java
Removed:
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css
Modified:
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractOutputJsfTemplate.java
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/META-INF/MANIFEST.MF
   trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/templates/vpe-templates-richfaces.xml
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeAttributeData.java
   trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/TemplateManagingUtil.java
Log:


Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractEditableJsfTemplate.java (from rev 6822, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractEditableJsfTemplate.java	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractEditableJsfTemplate.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,180 @@
+/******************************************************************************* 
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
+import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.template.EditableTemplateAdapter;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.jboss.tools.vpe.editor.util.TemplateManagingUtil;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMKeyEvent;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.mozilla.interfaces.nsISelection;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * general class for jsf templates
+ * 
+ * @author Sergey Dzmitrovich
+ * 
+ */
+public abstract class AbstractEditableJsfTemplate extends EditableTemplateAdapter {
+
+	// general jsf attributes
+	static private Map<String, String> attributes = new HashMap<String, String>();
+
+	static {
+		attributes.put("style", HTML.ATTR_STYLE);
+		attributes.put("styleClass", HTML.ATTR_CLASS);
+	}
+
+	/**
+	 * copy general
+	 * 
+	 * @param visualElement
+	 * @param sourceElement
+	 */
+	protected void copyGeneralJsfAttributes(nsIDOMElement visualElement,
+			Element sourceElement) {
+
+		Set<String> jsfAttributes = attributes.keySet();
+
+		for (String key : jsfAttributes) {
+
+			copyAttribute(visualElement, sourceElement, key, attributes
+					.get(key));
+		}
+
+	}
+
+	/**
+	 * copy attribute
+	 * 
+	 * @param visualElement
+	 * @param sourceElement
+	 * @param sourceAttributeName
+	 * @param targetAtttributeName
+	 */
+	protected void copyAttribute(nsIDOMElement visualElement,
+			Element sourceElement, String sourceAttributeName,
+			String targetAtttributeName) {
+
+		if (sourceElement.hasAttribute(sourceAttributeName))
+			visualElement.setAttribute(targetAtttributeName, sourceElement
+					.getAttribute(sourceAttributeName));
+
+	}
+
+	protected boolean handleCharacter(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+
+		// get selection
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+		if (elementMapping != null)
+			return super.handleCharacter(pageContext, keyEvent);
+		else
+			return true;
+	}
+
+	protected boolean handleLeftDelete(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+
+		// get selection
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+		if (elementMapping != null)
+			return super.handleLeftDelete(pageContext, keyEvent);
+		else
+			return true;
+
+	}
+
+	protected boolean handleRightDelete(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+
+		// get selection
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+		if (elementMapping != null)
+			return super.handleRightDelete(pageContext, keyEvent);
+		else
+			return true;
+	}
+
+	@Override
+	public void setSelection(VpePageContext pageContext, nsISelection selection) {
+
+		nsIDOMNode focusedVisualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = pageContext.getDomMapping()
+				.getNearElementMapping(focusedVisualNode);
+
+		if (elementMapping != null)
+			super.setSelection(pageContext, selection);
+		else {
+
+			VpeNodeMapping insertedMapping = pageContext.getDomMapping()
+					.getNearNodeMappingAtVisualNode(focusedVisualNode);
+
+			if (insertedMapping != null) {
+
+				Node insertedNode = insertedMapping.getSourceNode();
+
+				int offset = ((IDOMNode) insertedNode).getStartOffset();
+
+				Node realNode = TemplateManagingUtil.getSourceNodeByPosition(
+						pageContext, offset);
+
+				VpeElementMapping mappingRealNode = pageContext.getDomMapping()
+						.getNearElementMapping(realNode);
+
+				if (mappingRealNode != null) {
+
+					Node focusedNode = getFocusedNode(realNode, mappingRealNode
+							.getElementData(), offset);
+
+					setSourceSelection(pageContext, focusedNode, 0,
+							getLengthNode(focusedNode));
+
+					pageContext.getVisualBuilder().setSelectionRectangle(
+							(nsIDOMElement) mappingRealNode.getVisualElement()
+									.queryInterface(
+											nsIDOMElement.NS_IDOMELEMENT_IID));
+				}
+
+			}
+		}
+	}
+}

Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -1,180 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2007 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.jboss.tools.vpe.editor.context.VpePageContext;
-import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
-import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
-import org.jboss.tools.vpe.editor.template.EditableTemplateAdapter;
-import org.jboss.tools.vpe.editor.util.HTML;
-import org.jboss.tools.vpe.editor.util.TemplateManagingUtil;
-import org.mozilla.interfaces.nsIDOMElement;
-import org.mozilla.interfaces.nsIDOMKeyEvent;
-import org.mozilla.interfaces.nsIDOMNode;
-import org.mozilla.interfaces.nsISelection;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * general class for jsf templates
- * 
- * @author Sergey Dzmitrovich
- * 
- */
-public abstract class AbstractJsfTemplate extends EditableTemplateAdapter {
-
-	// general jsf attributes
-	static private Map<String, String> attributes = new HashMap<String, String>();
-
-	static {
-		attributes.put("style", HTML.ATTR_STYLE);
-		attributes.put("styleClass", HTML.ATTR_CLASS);
-	}
-
-	/**
-	 * copy general
-	 * 
-	 * @param visualElement
-	 * @param sourceElement
-	 */
-	protected void copyGeneralJsfAttributes(nsIDOMElement visualElement,
-			Element sourceElement) {
-
-		Set<String> jsfAttributes = attributes.keySet();
-
-		for (String key : jsfAttributes) {
-
-			copyAttribute(visualElement, sourceElement, key, attributes
-					.get(key));
-		}
-
-	}
-
-	/**
-	 * copy attribute
-	 * 
-	 * @param visualElement
-	 * @param sourceElement
-	 * @param sourceAttributeName
-	 * @param targetAtttributeName
-	 */
-	protected void copyAttribute(nsIDOMElement visualElement,
-			Element sourceElement, String sourceAttributeName,
-			String targetAtttributeName) {
-
-		if (sourceElement.hasAttribute(sourceAttributeName))
-			visualElement.setAttribute(targetAtttributeName, sourceElement
-					.getAttribute(sourceAttributeName));
-
-	}
-
-	protected boolean handleCharacter(VpePageContext pageContext,
-			nsIDOMKeyEvent keyEvent) {
-
-		// get selection
-		nsISelection selection = getCurrentSelection(pageContext);
-
-		// get visual node which is focused
-		nsIDOMNode visualNode = selection.getFocusNode();
-
-		VpeElementMapping elementMapping = getElmentMapping(pageContext,
-				visualNode);
-		if (elementMapping != null)
-			return super.handleCharacter(pageContext, keyEvent);
-		else
-			return true;
-	}
-
-	protected boolean handleLeftDelete(VpePageContext pageContext,
-			nsIDOMKeyEvent keyEvent) {
-
-		// get selection
-		nsISelection selection = getCurrentSelection(pageContext);
-
-		// get visual node which is focused
-		nsIDOMNode visualNode = selection.getFocusNode();
-
-		VpeElementMapping elementMapping = getElmentMapping(pageContext,
-				visualNode);
-		if (elementMapping != null)
-			return super.handleLeftDelete(pageContext, keyEvent);
-		else
-			return true;
-
-	}
-
-	protected boolean handleRightDelete(VpePageContext pageContext,
-			nsIDOMKeyEvent keyEvent) {
-
-		// get selection
-		nsISelection selection = getCurrentSelection(pageContext);
-
-		// get visual node which is focused
-		nsIDOMNode visualNode = selection.getFocusNode();
-
-		VpeElementMapping elementMapping = getElmentMapping(pageContext,
-				visualNode);
-		if (elementMapping != null)
-			return super.handleRightDelete(pageContext, keyEvent);
-		else
-			return true;
-	}
-
-	@Override
-	public void setSelection(VpePageContext pageContext, nsISelection selection) {
-
-		nsIDOMNode focusedVisualNode = selection.getFocusNode();
-
-		VpeElementMapping elementMapping = pageContext.getDomMapping()
-				.getNearElementMapping(focusedVisualNode);
-
-		if (elementMapping != null)
-			super.setSelection(pageContext, selection);
-		else {
-
-			VpeNodeMapping insertedMapping = pageContext.getDomMapping()
-					.getNearNodeMappingAtVisualNode(focusedVisualNode);
-
-			if (insertedMapping != null) {
-
-				Node insertedNode = insertedMapping.getSourceNode();
-
-				int offset = ((IDOMNode) insertedNode).getStartOffset();
-
-				Node realNode = TemplateManagingUtil.getSourceNodeByPosition(
-						pageContext, offset);
-
-				VpeElementMapping mappingRealNode = pageContext.getDomMapping()
-						.getNearElementMapping(realNode);
-
-				if (mappingRealNode != null) {
-
-					Node focusedNode = getFocusedNode(realNode, mappingRealNode
-							.getElementData(), offset);
-
-					setSourceSelection(pageContext, focusedNode, 0,
-							getLengthNode(focusedNode));
-
-					pageContext.getVisualBuilder().setSelectionRectangle(
-							(nsIDOMElement) mappingRealNode.getVisualElement()
-									.queryInterface(
-											nsIDOMElement.NS_IDOMELEMENT_IID));
-				}
-
-			}
-		}
-	}
-}

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractOutputJsfTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractOutputJsfTemplate.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractOutputJsfTemplate.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -8,7 +8,7 @@
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 
-public abstract class AbstractOutputJsfTemplate extends AbstractJsfTemplate {
+public abstract class AbstractOutputJsfTemplate extends AbstractEditableJsfTemplate {
 
 	/**
 	 * name of "value" attribute

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/META-INF/MANIFEST.MF
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/META-INF/MANIFEST.MF	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/META-INF/MANIFEST.MF	2008-03-18 08:43:44 UTC (rev 6973)
@@ -13,7 +13,8 @@
  org.eclipse.wst.sse.ui,
  org.eclipse.ui.workbench.texteditor,
  org.eclipse.ui.ide,
- org.mozilla.xpcom
+ org.mozilla.xpcom,
+ org.jboss.tools.vpe.xulrunner
 Eclipse-LazyStart: true
 Bundle-Vendor: Red Hat, Inc.
 Bundle-ClassPath: lib/jhighlight-1.0.jar,

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/handler.gif
===================================================================
(Binary files differ)


Property changes on: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/handler.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/input.gif
===================================================================
(Binary files differ)


Property changes on: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/input.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css	2008-03-18 08:43:44 UTC (rev 6973)
@@ -1,90 +0,0 @@
-.minValueStyle { 
-	border-color: ;
- 	color: #000000;
-	font-family: Arial, Verdana, sans-serif;
- 	font-size: 11px;
-  	line-height: 11px;
-  	border-left:1px solid #b0b0b0;
-  	padding: 0px 3px;
-  	text-align:left;
-}
-
-.maxValueStyle {
-	border-color: ;
-	color: #000000;
-	font-family: Arial, Verdana, sans-serif;
-	font-size: 11px;
-	line-height: 11px;
-	border-right: 1px solid #b0b0b0;
-	padding: 0px 3px;
-	text-align: right;
-}
-
-.inputStyleClass {
-	border: 1px solid;
-	padding: 0px 0px 0px 3px;
-    margin-top: 0px;
-    margin-bottom: 0px;
-	background-position: left top;
-	background-repeat: repeat-x;
-	background-color:#ffffff;
-	font-family:Arial, Verdana, sans-serif ;font-size:11px;
-	color:#000000;
-	border-color:#C4C0B9;
-	border-bottom-color:#ffffff;
-	border-right-color:#ffffff;
-}
-
-.cellForTableStyleClass {
-	width:100%;
-	padding-top:3px;
-}
-
-.dr-insldr-tip {
-	border: 1px solid #E5973E;
-	padding: 0px 2px;
-	position: absolute;
-	top: -17px;
-	white-space: nowrap;
-	font-family: Arial,Verdana,sans-serif;
-	font-size: 11px;
-}
-.dr-insldr-handler {
-	background-color:transparent;
-	background-image: ;
-	font-size:1px;
-	height:8px;
-	position:absolute;
-	text-align:center;
-	width:7px;
-	z-index:1;
-}
-.dr-insldr-track {
-	background-position:left top;
-	background-repeat:repeat-x;
-	font-size:1px;
-	height:8px;
-	vertical-align : bottom;
-	background-color:#FFFFFF;
-	background-image: ; 
-}
-.manualInputFieldTableCellClass{
-vertical-align : bottom;
-}
-.innerTableStyle {
-	border-color:;
-	border:1px solid #b0b0b0;
-	height:100%;
-	width:100%;
-}
-.cell-with-picture {
-	align: left;
-	height: 4px;
-	width: 7px;
-}
-.mainTableStyle{
-width :200px;
-}
-.empty-cell-style {
-font-size: 4px;
-}
\ No newline at end of file

Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider_old.css (from rev 6647, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider_old.css	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider_old.css	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,90 @@
+.minValueStyle { 
+	border-color: ;
+ 	color: #000000;
+	font-family: Arial, Verdana, sans-serif;
+ 	font-size: 11px;
+  	line-height: 11px;
+  	border-left:1px solid #b0b0b0;
+  	padding: 0px 3px;
+  	text-align:left;
+}
+
+.maxValueStyle {
+	border-color: ;
+	color: #000000;
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 11px;
+	line-height: 11px;
+	border-right: 1px solid #b0b0b0;
+	padding: 0px 3px;
+	text-align: right;
+}
+
+.inputStyleClass {
+	border: 1px solid;
+	padding: 0px 0px 0px 3px;
+    margin-top: 0px;
+    margin-bottom: 0px;
+	background-position: left top;
+	background-repeat: repeat-x;
+	background-color:#ffffff;
+	font-family:Arial, Verdana, sans-serif ;font-size:11px;
+	color:#000000;
+	border-color:#C4C0B9;
+	border-bottom-color:#ffffff;
+	border-right-color:#ffffff;
+}
+
+.cellForTableStyleClass {
+	width:100%;
+	padding-top:3px;
+}
+
+.dr-insldr-tip {
+	border: 1px solid #E5973E;
+	padding: 0px 2px;
+	position: absolute;
+	top: -17px;
+	white-space: nowrap;
+	font-family: Arial,Verdana,sans-serif;
+	font-size: 11px;
+}
+.dr-insldr-handler {
+	background-color:transparent;
+	background-image: ;
+	font-size:1px;
+	height:8px;
+	position:absolute;
+	text-align:center;
+	width:7px;
+	z-index:1;
+}
+.dr-insldr-track {
+	background-position:left top;
+	background-repeat:repeat-x;
+	font-size:1px;
+	height:8px;
+	vertical-align : bottom;
+	background-color:#FFFFFF;
+	background-image: ; 
+}
+.manualInputFieldTableCellClass{
+vertical-align : bottom;
+}
+.innerTableStyle {
+	border-color:;
+	border:1px solid #b0b0b0;
+	height:100%;
+	width:100%;
+}
+.cell-with-picture {
+	align: left;
+	height: 4px;
+	width: 7px;
+}
+.mainTableStyle{
+width :200px;
+}
+.empty-cell-style {
+font-size: 4px;
+}
\ No newline at end of file

Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/numberSlider.css (from rev 6647, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/inputNumberSlider.css)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/numberSlider.css	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/numberSlider.css	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,87 @@
+.dr-insldr {
+	width: 200px;
+	height: 20px;
+}
+
+.dr-insldr-left-num {
+	text-align: left;
+	border-left: 1px solid;
+	padding: 0 3px 0 3px;
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 11px;
+	color: #000;
+	border-color: #C4C0B9;
+	line-height: 11px;
+}
+
+.dr-insldr-right-num {
+	text-align: right;
+	border-right: 1px solid;
+	padding: 0 3px 0 3px;
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 11px;
+	color: #000;
+	border-color: #C4C0B9;
+	line-height: 11px;
+}
+
+.dr-insldr-field {
+	border: 1px solid;
+	padding: 0 0 0 3px;
+	margin-top: 0;
+	margin-bottom: 0;
+	background-position: left top;
+	background-repeat: repeat-x;
+	//background-color: #fff;
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 11px;
+	//color: #000;
+	border-color: #C4C0B9;
+	border-bottom-color: #fff;
+	border-right-color: #fff;
+}
+
+.dr-insldr-field-left {
+	margin-right: 10px;
+}
+
+.dr-insldr-field-right {
+	margin-left: 10px;
+}
+
+.dr-insldr-size {
+	width: 100%;
+}
+
+.dr-insldr-vert-spacer {
+	padding-top: 3px;
+}
+
+.dr-insldr-track {
+	background-position: left top;
+	background-repeat: repeat-x;
+	height: 8px;
+	font-size: 1px;
+	background-color: #fff;
+}
+
+.dr-insldr-track-decor-1 {
+	height: 100%;
+	width: 100%;
+	border: 1px solid;
+	border-color: #C4C0B9;
+}
+
+.dr-insldr-track-decor-2 {
+	border: 1px solid white;
+	border-color: #fff;
+}
+.dr-insldr-handler {
+	background-color: transparent;
+	width: 7px;
+	height: 8px;
+	font-size: 1px;
+	position: absolute;
+	text-align: center;
+	z-index: 1;
+}
\ No newline at end of file

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/spacer.gif
===================================================================
(Binary files differ)


Property changes on: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/track.gif
===================================================================
(Binary files differ)


Property changes on: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/inputNumberSlider/track.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/AbstractEditableRichFacesTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/AbstractEditableRichFacesTemplate.java	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/AbstractEditableRichFacesTemplate.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,28 @@
+/******************************************************************************* 
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.richfaces.template;
+
+import org.jboss.tools.vpe.editor.template.EditableTemplateAdapter;
+import org.w3c.dom.Element;
+
+public abstract class AbstractEditableRichFacesTemplate extends
+		EditableTemplateAdapter {
+
+	public String getAttribute(Element sourceElement, String attributeName) {
+
+		if (sourceElement.hasAttribute(attributeName))
+			return sourceElement.getAttribute(attributeName);
+
+		return ""; //$NON-NLS-1$
+
+	}
+
+}

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/InputNumberSliderTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/InputNumberSliderTemplate.java	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/InputNumberSliderTemplate.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,741 @@
+/******************************************************************************* 
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.richfaces.template;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.tools.jsf.vpe.richfaces.ComponentUtil;
+import org.jboss.tools.jsf.vpe.richfaces.template.util.RichFaces;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeAttributeData;
+import org.jboss.tools.vpe.editor.mapping.VpeElementData;
+import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
+import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.jboss.tools.vpe.editor.util.TextUtil;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMHTMLInputElement;
+import org.mozilla.interfaces.nsIDOMKeyEvent;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.mozilla.interfaces.nsIDOMText;
+import org.mozilla.interfaces.nsISelection;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * 
+ * @author Sergey Dzmitrovich
+ * 
+ */
+public class InputNumberSliderTemplate extends
+		AbstractEditableRichFacesTemplate {
+
+	/**
+	 * path to file which contains css styles for component
+	 */
+	private static final String STYLE_PATH = "/inputNumberSlider/numberSlider.css"; //$NON-NLS-1$
+
+	/**
+	 * path to bar image
+	 */
+	private static final String SPACER_IMAGE_PATH = "/inputNumberSlider/spacer.gif"; //$NON-NLS-1$
+
+	/**
+	 * path to bar image
+	 */
+	private static final String INPUT_BACKGROUND_IMAGE_PATH = "/inputNumberSlider/input.gif"; //$NON-NLS-1$
+
+	/**
+	 * path to bar image
+	 */
+	private static final String BAR_BACKGROUND_IMAGE_PATH = "/inputNumberSlider/track.gif"; //$NON-NLS-1$
+
+	/**
+	 * path to handler image
+	 */
+	private static final String HANDLER_IMAGE_PATH = "/inputNumberSlider/handler.gif"; //$NON-NLS-1$
+
+	/**
+	 * "showInput" attribute
+	 */
+	private static final String SHOW_INPUT_ATTR = "showInput"; //$NON-NLS-1$
+
+	/**
+	 * "showBoundaryValues" attribute
+	 */
+	private static final String SHOW_BOUNDARY_VALUES = "showBoundaryValues"; //$NON-NLS-1$
+	/**
+	 * "inputPosition" attribute
+	 */
+	private static final String INPUT_POSITION_ATTR = "inputPosition"; //$NON-NLS-1$
+
+	/**
+	 * "inputSize" attribute
+	 */
+	private static final String INPUT_SIZE_ATTR = "inputSize"; //$NON-NLS-1$
+
+	/**
+	 * "inputStyle" attribute
+	 */
+	private static final String INPUT_STYLE_ATTR = "inputStyle"; //$NON-NLS-1$
+
+	/**
+	 * "minValue" attribute
+	 */
+	private static final String MIN_VALUE_ATTR = "minValue"; //$NON-NLS-1$
+
+	/**
+	 * "maxValue" attribute
+	 */
+	private static final String MAX_VALUE_ATTR = "maxValue"; //$NON-NLS-1$
+
+	/**
+	 * "barStyle" attribute
+	 */
+	private static final String BAR_STYLE_ATTR = "barStyle"; //$NON-NLS-1$
+
+	/**
+	 * default min value
+	 */
+	private static final String MIN_VALUE_DEFAULT = "0"; //$NON-NLS-1$
+
+	/**
+	 * default max value
+	 */
+	private static final String MAX_VALUE_DEFAULT = "100"; //$NON-NLS-1$
+
+	/**
+	 * default input size
+	 */
+	private static final String INPUT_SIZE_DEFAULT = "3"; //$NON-NLS-1$
+
+	/**
+	 * default slyder width
+	 */
+	private static final String SLYDER_WIDTH_DEFAULT = "200"; //$NON-NLS-1$
+
+	/**
+	 * default max value
+	 */
+	private static final String INPUT_FIELD_STYLE = "text-align: left; vertical-align: bottom;"; //$NON-NLS-1$
+
+	/**
+	 * spacer image style
+	 */
+	private static final String SPACER_IMAGE_STYLE = "display: block;"; //$NON-NLS-1$
+
+	/**
+	 * default max value
+	 */
+	private static final String HANDLER_WRAPPER_STYLE = "position: relative;"; //$NON-NLS-1$
+
+	/**
+	 * contains default css styles for different elements which can define using
+	 * attributes
+	 * 
+	 * key + "Class" = name of some element's style attribute
+	 */
+	private static final Map<String, String> defaultStyleClasses;
+
+	static {
+		defaultStyleClasses = new HashMap<String, String>();
+
+		// general style
+		defaultStyleClasses.put("style", "dr-insldr rich-slider"); //$NON-NLS-1$//$NON-NLS-2$
+
+		// input style
+		defaultStyleClasses.put("input", "rich-inslider-field"); //$NON-NLS-1$//$NON-NLS-2$
+
+		// bar style
+		defaultStyleClasses.put("bar", "dr-insldr-track rich-inslider-track"); //$NON-NLS-1$//$NON-NLS-2$
+
+		// bar style
+		defaultStyleClasses.put(
+				"handle", "dr-insldr-handler rich-inslider-handler"); //$NON-NLS-1$//$NON-NLS-2$
+
+	}
+
+	/**
+	 * min value style classes
+	 */
+	private static final String MIN_VALUE_STYLE_CLASSES = "dr-insldr-left-num rich-inslider-left-num"; //$NON-NLS-1$
+
+	/**
+	 * max value style classes
+	 */
+	private static final String MAX_VALUE_STYLE_CLASSES = "dr-insldr-right-num rich-inslider-right-num"; //$NON-NLS-1$
+
+	/**
+	 * input left style classes
+	 */
+	private static final String INPUT_LEFT_STYLE_CLASSES = "dr-insldr-field dr-insldr-field-left"; //$NON-NLS-1$
+
+	/**
+	 * input right style classes
+	 */
+	private static final String INPUT_RIGHT_STYLE_CLASSES = "dr-insldr-field dr-insldr-field-right"; //$NON-NLS-1$
+
+	/**
+	 * slider style classes
+	 */
+	private static final String SLIDER_STYLE_CLASSES = "dr-insldr-size dr-insldr-vert-spacer"; //$NON-NLS-1$
+
+	/**
+	 * track decor style classes
+	 */
+	private static final String TRACK_DECOR_1_CLASSES = "dr-insldr-track-decor-1"; //$NON-NLS-1$
+
+	/**
+	 * slider style classes
+	 */
+	private static final String TRACK_DECOR_2_CLASSES = "dr-insldr-track-decor-2"; //$NON-NLS-1$
+
+	/**
+	 * contains prepare css styles ( added user css classes besides default
+	 * styles )
+	 */
+	private static final Map<String, String> styleClasses = new HashMap<String, String>();
+
+	public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
+			nsIDOMDocument visualDocument) {
+
+		// cast to Element
+		Element sourceElement = (Element) sourceNode;
+
+		ComponentUtil.setCSSLink(pageContext, STYLE_PATH, "inputNumberSlider"); //$NON-NLS-1$
+
+		prepareData(sourceElement);
+
+		VpeElementData elementData = new VpeElementData();
+
+		// create and initialize basic table element
+		nsIDOMElement basicTable = visualDocument.createElement(HTML.TAG_TABLE);
+		basicTable.setAttribute(HTML.ATTR_STYLE, HTML.ATTR_WIDTH
+				+ ":" //$NON-NLS-1$
+				+ getNumberValue(sourceElement, RichFaces.ATTR_WIDTH,
+						SLYDER_WIDTH_DEFAULT) + ";" //$NON-NLS-1$
+				+ getAttribute(sourceElement, RichFaces.ATTR_STYLE));
+		basicTable.setAttribute(HTML.ATTR_CLASS, styleClasses.get("style")); //$NON-NLS-1$
+		basicTable.setAttribute(HTML.ATTR_CELLPADDING, "0"); //$NON-NLS-1$
+		basicTable.setAttribute(HTML.ATTR_CELLSPACING, "0"); //$NON-NLS-1$
+		basicTable.setAttribute(HTML.ATTR_BORDER, "0"); //$NON-NLS-1$
+
+		nsIDOMElement valuesBlock = createValuesBlock(sourceElement,
+				visualDocument, elementData);
+
+		nsIDOMElement sliderBlock = createSliderBlock(sourceElement,
+				visualDocument);
+
+		basicTable.appendChild(valuesBlock);
+		basicTable.appendChild(sliderBlock);
+
+		// create creation data
+		VpeCreationData creationData = new VpeCreationData(basicTable);
+		creationData.setElementData(elementData);
+		return creationData;
+	}
+
+	/**
+	 * prepare
+	 * 
+	 * @param sourceElement
+	 */
+	private void prepareData(Element sourceElement) {
+
+		// prepare style classes
+		Set<String> styleClassesKeys = defaultStyleClasses.keySet();
+
+		styleClasses.clear();
+		for (String key : styleClassesKeys) {
+
+			if (sourceElement.hasAttribute(key + "Class")) //$NON-NLS-1$
+				styleClasses.put(key, defaultStyleClasses.get(key) + " " //$NON-NLS-1$
+						+ sourceElement.getAttribute(key + "Class")); //$NON-NLS-1$
+			else
+				styleClasses.put(key, defaultStyleClasses.get(key));
+		}
+
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @param visualDocument
+	 * @param elementData
+	 * @return
+	 */
+	private nsIDOMElement createInputBlock(Element sourceElement,
+			nsIDOMDocument visualDocument, VpeElementData elementData) {
+
+		// create input block
+		nsIDOMElement inputTd = visualDocument.createElement(HTML.TAG_TD);
+		inputTd.setAttribute(HTML.ATTR_STYLE, INPUT_FIELD_STYLE);
+		inputTd.setAttribute(HTML.ATTR_ROWSPAN, "2"); //$NON-NLS-1$
+
+		// create input field
+		nsIDOMElement inputField = visualDocument.createElement(HTML.TAG_INPUT);
+		inputField.setAttribute(HTML.ATTR_TYPE, "text"); //$NON-NLS-1$
+
+		inputField.setAttribute(HTML.ATTR_SIZE, getNumberValue(sourceElement,
+				INPUT_SIZE_ATTR, INPUT_SIZE_DEFAULT));
+
+		inputField.setAttribute(HTML.ATTR_STYLE, ComponentUtil
+				.getBackgoundImgStyle(INPUT_BACKGROUND_IMAGE_PATH)
+				+ getAttribute(sourceElement, INPUT_STYLE_ATTR));
+
+		VpeAttributeData attributeData;
+
+		if (sourceElement.hasAttribute(RichFaces.ATTR_VALUE)) {
+
+			inputField.setAttribute(HTML.ATTR_VALUE, sourceElement
+					.getAttribute(RichFaces.ATTR_VALUE));
+
+			attributeData = new VpeAttributeData(sourceElement
+					.getAttributeNode(RichFaces.ATTR_VALUE), inputField);
+
+		} else {
+			inputField.setAttribute(HTML.ATTR_VALUE, ""); //$NON-NLS-1$
+
+			attributeData = new VpeAttributeData(RichFaces.ATTR_VALUE,
+					inputField);
+		}
+
+		elementData.addAttributeData(attributeData);
+
+		// get class attribute
+		String inputClass = null;
+
+		if (isRightInputPosition(sourceElement))
+			inputClass = INPUT_RIGHT_STYLE_CLASSES;
+		else
+			inputClass = INPUT_LEFT_STYLE_CLASSES;
+
+		inputClass += " " + styleClasses.get("input"); //$NON-NLS-1$ //$NON-NLS-2$
+
+		inputField.setAttribute(HTML.ATTR_CLASS, inputClass);
+
+		nsIDOMHTMLInputElement iDOMInputElement = (nsIDOMHTMLInputElement) inputField
+				.queryInterface(nsIDOMHTMLInputElement.NS_IDOMHTMLINPUTELEMENT_IID);
+		iDOMInputElement.setReadOnly(true);
+
+		inputTd.appendChild(inputField);
+
+		return inputTd;
+
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @param visualDocument
+	 * @return
+	 */
+	private nsIDOMElement createSliderBlock(Element sourceElement,
+			nsIDOMDocument visualDocument) {
+
+		// create slider block - tr tag
+		nsIDOMElement sliderBlock = visualDocument.createElement(HTML.TAG_TR);
+
+		// create td
+		nsIDOMElement sliderTd = visualDocument.createElement(HTML.TAG_TD);
+		sliderTd.setAttribute(HTML.ATTR_CLASS, SLIDER_STYLE_CLASSES);
+		sliderTd.setAttribute(HTML.ATTR_COLSPAN, "2"); //$NON-NLS-1$
+
+		nsIDOMElement handlerWrapper = visualDocument
+				.createElement(HTML.TAG_DIV);
+		handlerWrapper.setAttribute(HTML.ATTR_STYLE, HANDLER_WRAPPER_STYLE);
+
+		nsIDOMElement handler = visualDocument.createElement(HTML.TAG_DIV);
+		handler.setAttribute(HTML.ATTR_CLASS, styleClasses.get("handle")); //$NON-NLS-1$
+		handler.setAttribute(HTML.ATTR_STYLE, ComponentUtil
+				.getBackgoundImgStyle(HANDLER_IMAGE_PATH));
+
+		handlerWrapper.appendChild(handler);
+
+		// create bar - div tag
+		nsIDOMElement bar = visualDocument.createElement(HTML.TAG_DIV);
+		bar.setAttribute(HTML.ATTR_CLASS, styleClasses.get("bar")); //$NON-NLS-1$
+		bar.setAttribute(HTML.TAG_STYLE, ComponentUtil
+				.getBackgoundImgStyle(BAR_BACKGROUND_IMAGE_PATH)
+				+ getAttribute(sourceElement, BAR_STYLE_ATTR));
+
+		// create table
+		nsIDOMElement barTable = visualDocument.createElement(HTML.TAG_TABLE);
+		barTable.setAttribute(HTML.ATTR_CLASS, TRACK_DECOR_1_CLASSES);
+		barTable.setAttribute(HTML.ATTR_CELLPADDING, "0"); //$NON-NLS-1$
+		barTable.setAttribute(HTML.ATTR_CELLSPACING, "0"); //$NON-NLS-1$
+
+		// create tr
+		nsIDOMElement barTr = visualDocument.createElement(HTML.TAG_TR);
+
+		// create td
+		nsIDOMElement barTd = visualDocument.createElement(HTML.TAG_TD);
+		barTd.setAttribute(HTML.ATTR_CLASS, TRACK_DECOR_2_CLASSES);
+
+		// create image
+		nsIDOMElement barImage = visualDocument.createElement(HTML.TAG_IMG);
+		ComponentUtil.setImg(barImage, SPACER_IMAGE_PATH);
+		barImage.setAttribute(HTML.ATTR_STYLE, SPACER_IMAGE_STYLE);
+
+		// insert image to td
+		barTd.appendChild(barImage);
+
+		// insert td to tr
+		barTr.appendChild(barTd);
+
+		// insert tr to table
+		barTable.appendChild(barTr);
+
+		// insert table to bar
+		bar.appendChild(barTable);
+
+		sliderTd.appendChild(handlerWrapper);
+		sliderTd.appendChild(bar);
+		sliderBlock.appendChild(sliderTd);
+
+		return sliderBlock;
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @param visualDocument
+	 * @param elementData
+	 * @return
+	 */
+	private nsIDOMElement createValuesBlock(Element sourceElement,
+			nsIDOMDocument visualDocument, VpeElementData elementData) {
+
+		// create numbers block
+		nsIDOMElement valuesBlock = visualDocument.createElement(HTML.TAG_TR);
+
+		// create minValue block
+		nsIDOMElement minValueTd = visualDocument.createElement(HTML.TAG_TD);
+		minValueTd.setAttribute(HTML.ATTR_CLASS, MIN_VALUE_STYLE_CLASSES);
+
+		// create maxValue block
+		nsIDOMElement maxValueTd = visualDocument.createElement(HTML.TAG_TD);
+		maxValueTd.setAttribute(HTML.ATTR_CLASS, MAX_VALUE_STYLE_CLASSES);
+
+		if (isShowBoundaryValues(sourceElement)) {
+
+			nsIDOMText minValueText;
+			VpeAttributeData minValueData;
+			if (sourceElement.hasAttribute(MIN_VALUE_ATTR)) {
+
+				// create minValue text
+				minValueText = visualDocument.createTextNode(sourceElement
+						.getAttribute(MIN_VALUE_ATTR));
+
+				minValueData = new VpeAttributeData(sourceElement
+						.getAttributeNode(MIN_VALUE_ATTR), minValueText);
+
+			} else {
+
+				// create minValue text
+				minValueText = visualDocument.createTextNode(MIN_VALUE_DEFAULT);
+
+				minValueData = new VpeAttributeData(MIN_VALUE_ATTR,
+						minValueText);
+
+			}
+			// add text to td
+			minValueTd.appendChild(minValueText);
+			elementData.addAttributeData(minValueData);
+
+			nsIDOMText maxValueText;
+			VpeAttributeData maxValueData;
+			if (sourceElement.hasAttribute(MAX_VALUE_ATTR)) {
+
+				// create minValue text
+				maxValueText = visualDocument.createTextNode(sourceElement
+						.getAttribute(MAX_VALUE_ATTR));
+
+				maxValueData = new VpeAttributeData(sourceElement
+						.getAttributeNode(MAX_VALUE_ATTR), maxValueText);
+
+			} else {
+
+				// create minValue text
+				maxValueText = visualDocument.createTextNode(MAX_VALUE_DEFAULT);
+
+				maxValueData = new VpeAttributeData(MAX_VALUE_ATTR,
+						maxValueText);
+
+			}
+			// add text to td
+			maxValueTd.appendChild(maxValueText);
+			elementData.addAttributeData(maxValueData);
+		}
+
+		valuesBlock.appendChild(minValueTd);
+		valuesBlock.appendChild(maxValueTd);
+
+		// if input field is showed
+		if (isShowInput(sourceElement)) {
+
+			nsIDOMElement inputTd = createInputBlock(sourceElement,
+					visualDocument, elementData);
+
+			if (isRightInputPosition(sourceElement))
+				valuesBlock.appendChild(inputTd);
+			else
+				valuesBlock.insertBefore(inputTd, minValueTd);
+		}
+
+		return valuesBlock;
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @param attributeName
+	 * @param defaultValue
+	 * @return
+	 */
+	private String getNumberValue(Element sourceElement, String attributeName,
+			String defaultValue) {
+
+		// if source element has attribute
+		if (sourceElement.hasAttribute(attributeName)) {
+			// getAttribute
+			String stringValue = sourceElement.getAttribute(attributeName);
+
+			try {
+				// decode attribute's value
+				Integer.decode(stringValue);
+				// if it is number (there is not exception) return attribute's
+				// value
+				return stringValue;
+			} catch (NumberFormatException e) {
+				// if attribute's value is not number do nothing and then return
+				// default value
+			}
+
+		}
+
+		return defaultValue;
+
+	}
+
+	/**
+	 * if input field must represent return true
+	 * 
+	 * @param sourceElement
+	 * @return
+	 */
+	private boolean isShowInput(Element sourceElement) {
+
+		// if source element has "showInput" attribute
+		if (sourceElement.hasAttribute(SHOW_INPUT_ATTR)) {
+
+			// get this attribute
+			String showInput = sourceElement.getAttribute(SHOW_INPUT_ATTR);
+
+			// if this attribute equals "true"
+			if ("true".equalsIgnoreCase(showInput)) //$NON-NLS-1$
+				return true;
+			// in other cases return false
+			return false;
+
+		}
+
+		// default value is true
+		return true;
+
+	}
+
+	/**
+	 * Return true if input position is right. Return false if input position is
+	 * left
+	 * 
+	 * @param sourceElement
+	 * @return
+	 */
+	private boolean isRightInputPosition(Element sourceElement) {
+
+		if (sourceElement.hasAttribute(INPUT_POSITION_ATTR)
+				&& ("left".equalsIgnoreCase(sourceElement //$NON-NLS-1$
+						.getAttribute(INPUT_POSITION_ATTR))))
+			return false;
+
+		return true;
+
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @return
+	 */
+	private boolean isShowBoundaryValues(Element sourceElement) {
+		if ((sourceElement.hasAttribute(SHOW_BOUNDARY_VALUES) && "false" //$NON-NLS-1$
+		.equalsIgnoreCase(sourceElement.getAttribute(SHOW_BOUNDARY_VALUES))))
+			return false;
+		return true;
+	}
+
+	@Override
+	public boolean isRecreateAtAttrChange(VpePageContext pageContext,
+			Element sourceElement, nsIDOMDocument visualDocument,
+			nsIDOMElement visualNode, Object data, String name, String value) {
+		return true;
+	}
+
+	@Override
+	protected boolean handleCharacter(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+
+		// get selection
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+
+		if (elementMapping != null) {
+
+			VpeAttributeData attributeData = getAttributeData(pageContext,
+					visualNode, elementMapping.getElementData());
+
+			if ((attributeData != null) && attributeData.isEditable()) {
+
+				if ((attributeData.getSourceAttr() == null)
+						&& (attributeData.getAttributeName() != null)) {
+
+					// get inserted string
+					long charCode = keyEvent.getCharCode();
+					char[] s = new char[1];
+					s[0] = (char) charCode;
+					String str = new String(s);
+					if (TextUtil.containsKey(s[0])) {
+						str = TextUtil.getValue(s[0]);
+					}
+
+					Node node = createAttribute((Element) elementMapping
+							.getSourceNode(), attributeData.getAttributeName(),
+							str);
+
+					setSourceSelection(pageContext, node, 0, 0);
+					return true;
+				} else
+					return super.handleCharacter(pageContext, keyEvent);
+
+			}
+
+		}
+		return false;
+
+	}
+
+	@Override
+	protected boolean handleLeftDelete(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+
+		// get selection
+
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+
+		if (elementMapping != null) {
+
+			VpeAttributeData attributeData = getAttributeData(pageContext,
+					visualNode, elementMapping.getElementData());
+
+			if ((attributeData != null) && attributeData.isEditable()) {
+
+				if ((attributeData.getSourceAttr() == null)
+						&& (attributeData.getAttributeName() != null)) {
+
+					Node node = createAttribute((Element) elementMapping
+							.getSourceNode(), attributeData.getAttributeName(),
+							""); //$NON-NLS-1$
+
+					setSourceSelection(pageContext, node, 0, 0);
+					return true;
+				} else
+					return super.handleLeftDelete(pageContext, keyEvent);
+
+			}
+
+		}
+		return false;
+
+	}
+
+	@Override
+	protected boolean handleRightDelete(VpePageContext pageContext,
+			nsIDOMKeyEvent keyEvent) {
+		// get selection
+		nsISelection selection = getCurrentSelection(pageContext);
+
+		// get visual node which is focused
+		nsIDOMNode visualNode = selection.getFocusNode();
+
+		VpeElementMapping elementMapping = getElmentMapping(pageContext,
+				visualNode);
+
+		if (elementMapping != null) {
+
+			VpeAttributeData attributeData = getAttributeData(pageContext,
+					visualNode, elementMapping.getElementData());
+
+			if ((attributeData != null) && attributeData.isEditable()) {
+
+				if ((attributeData.getSourceAttr() == null)
+						&& (attributeData.getAttributeName() != null)) {
+
+					Node node = createAttribute((Element) elementMapping
+							.getSourceNode(), attributeData.getAttributeName(),
+							""); //$NON-NLS-1$
+					setSourceSelection(pageContext, node, 0, 0);
+
+					return true;
+
+				} else
+					return super.handleRightDelete(pageContext, keyEvent);
+
+			}
+
+		}
+		return false;
+
+	}
+
+	/**
+	 * 
+	 * @param sourceElement
+	 * @param attributeName
+	 * @param value
+	 */
+	private Node createAttribute(Element sourceElement, String attributeName,
+			String value) {
+
+		if ((sourceElement != null) && (attributeName != null)) {
+			sourceElement.setAttribute(attributeName, value != null ? value
+					: ""); //$NON-NLS-1$
+
+			return sourceElement.getAttributeNode(attributeName);
+		}
+		return null;
+
+	}
+}
\ No newline at end of file

Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/util/RichFaces.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/util/RichFaces.java	                        (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/util/RichFaces.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -0,0 +1,28 @@
+/******************************************************************************* 
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.richfaces.template.util;
+
+/**
+ * contain rich faces tags and general attributes
+ * 
+ * @author Sergey Dzmitrovich
+ * 
+ */
+public class RichFaces {
+
+	private RichFaces() {
+	}
+
+	public static final String ATTR_STYLE = "style"; //$NON-NLS-1$
+	public static final String ATTR_WIDTH = "width"; //$NON-NLS-1$
+	public static final String ATTR_VALUE = "value"; //$NON-NLS-1$
+
+}

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/templates/vpe-templates-richfaces.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/templates/vpe-templates-richfaces.xml	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/templates/vpe-templates-richfaces.xml	2008-03-18 08:43:44 UTC (rev 6973)
@@ -124,7 +124,7 @@
 
 	<vpe:tag name="rich:inputNumberSlider" case-sensitive="yes">
 		<vpe:template children="no" modify="yes"
-			class="org.jboss.tools.jsf.vpe.richfaces.template.RichFacesInputNumberSliderTemplate">
+			class="org.jboss.tools.jsf.vpe.richfaces.template.InputNumberSliderTemplate">
 			<vpe:resize>
 				<vpe:width width-attr="width" />
 			</vpe:resize>

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -74,7 +74,8 @@
 	public void setSelection(nsISelection selection) {
 		
 		VpeTemplate vpeTemplate = TemplateManagingUtil
-				.getTemplateByVisualSelection(visualBuilder.getPageContext());
+				.getTemplateByVisualSelection(visualBuilder.getPageContext(),
+						selection.getFocusNode());
 		if (vpeTemplate instanceof ITemplateSelectionManager) {
 			((ITemplateSelectionManager) vpeTemplate).setSelection(
 					visualBuilder.getPageContext(), selection);
@@ -1341,7 +1342,7 @@
 			}
 			selection.collapse(visualNode, offset);
 		} else {
-			selection.removeAllRanges();
+			//selection.removeAllRanges();
 		}
 		visualSelectionController.setCaretEnabled(true);
 		setSelection(selection);

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -170,7 +170,7 @@
 		
 		// get template of selected element
 		VpeTemplate template = TemplateManagingUtil
-				.getTemplateByVisualSelection(pageContext);
+				.getTemplateByVisualSelection(pageContext,getSelectedNode());
 		
 		// if template сan handle keyEvent than pass control to him. And if
 		// template handled event return true

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeAttributeData.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeAttributeData.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeAttributeData.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -39,6 +39,12 @@
 	 */
 	private boolean isEditable;
 
+	/**
+	 * name of attribute. add for cases when attribute has default value and
+	 * attribute has not source presentation but has visual presentation
+	 */
+	private String attributeName;
+
 	public VpeAttributeData(Attr sourceAttr, nsIDOMNode visualAttr,
 			boolean isEditable) {
 		this.sourceAttr = sourceAttr;
@@ -54,6 +60,21 @@
 
 	}
 
+	public VpeAttributeData(String attributeName, nsIDOMNode visualAttr,
+			boolean isEditable) {
+		this.attributeName = attributeName;
+		this.visualAttr = visualAttr;
+		this.isEditable = isEditable;
+
+	}
+
+	public VpeAttributeData(String attributeName, nsIDOMNode visualAttr) {
+		this.attributeName = attributeName;
+		this.visualAttr = visualAttr;
+		this.isEditable = true;
+
+	}
+
 	/**
 	 * get source
 	 * 
@@ -108,4 +129,12 @@
 		this.isEditable = isEditable;
 	}
 
+	public String getAttributeName() {
+		return attributeName;
+	}
+
+	public void setAttributeName(String attributeName) {
+		this.attributeName = attributeName;
+	}
+
 }

Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/TemplateManagingUtil.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/TemplateManagingUtil.java	2008-03-17 16:47:48 UTC (rev 6972)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/TemplateManagingUtil.java	2008-03-18 08:43:44 UTC (rev 6973)
@@ -17,6 +17,7 @@
 import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
 import org.jboss.tools.vpe.editor.template.VpeTemplate;
 import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMNode;
 import org.w3c.dom.Node;
 
 public class TemplateManagingUtil {
@@ -28,10 +29,12 @@
 	 * @return
 	 */
 	public static VpeTemplate getTemplateByVisualSelection(
-			VpePageContext pageContext) {
+			VpePageContext pageContext, nsIDOMNode selectedNode) {
 		// get element mapping
+//		VpeElementMapping elementMapping = pageContext.getDomMapping()
+//				.getNearElementMapping(getVisualSelectedNode(pageContext));
 		VpeElementMapping elementMapping = pageContext.getDomMapping()
-				.getNearElementMapping(getVisualSelectedNode(pageContext));
+		.getNearElementMapping(selectedNode);
 
 		if (elementMapping != null)
 			return elementMapping.getTemplate();




More information about the jbosstools-commits mailing list