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();