Author: dmaliarevich
Date: 2009-05-13 11:28:14 -0400 (Wed, 13 May 2009)
New Revision: 15243
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesDropDownMenuTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuGroupTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuItemTemplate.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-2497, attributes were moved to separate class.
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesDropDownMenuTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesDropDownMenuTemplate.java 2009-05-13
14:33:34 UTC (rev 15242)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesDropDownMenuTemplate.java 2009-05-13
15:28:14 UTC (rev 15243)
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2007-2008 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
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
+ * Copyright (c) 2007-2008 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
package org.jboss.tools.jsf.vpe.richfaces.template;
import java.util.List;
@@ -18,69 +18,216 @@
import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate;
import org.jboss.tools.vpe.editor.template.VpeChildrenInfo;
import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.util.Constants;
import org.jboss.tools.vpe.editor.util.HTML;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMText;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class RichFacesDropDownMenuTemplate extends VpeAbstractTemplate {
-
+
+ /*
+ * rich:dropDownMenu constants
+ */
+ private static final String COMPONENT_NAME = "dropDownMenu"; //$NON-NLS-1$
+ private static final String STYLE_PATH = "dropDownMenu/dropDownMenu.css";
//$NON-NLS-1$
+ private static final String CHILD_GROUP_NAME = ":menuGroup"; //$NON-NLS-1$
+ private static final String CHILD_ITEM_NAME = ":menuItem"; //$NON-NLS-1$
+ private static final String LABEL_FACET_NAME = "label"; //$NON-NLS-1$
+ private static final String DEFAULT_DDM_TITLE = "rich:dropDownMenu";
//$NON-NLS-1$
+
+ /*
+ * Constants for drop down mechanism.
+ */
+ private static final String MENU_TOP_ID = "vpe-ddm-menu-title-ul";
//$NON-NLS-1$
+ private static final String MENU_TOP_ITEM_ID = "vpe-ddm-menu-title-li";
//$NON-NLS-1$
+ private static final String MENU_CHILDREN_LIST_ID =
"vpe-ddm-menu-children-ul"; //$NON-NLS-1$
+
+ /*
+ * rich:dropDownMenu css styles names
+ */
+ private static final String CSS_RICH_DDMENU_LABEL = "rich-ddmenu-label";
//$NON-NLS-1$
+ private static final String CSS_RICH_DDMENU_LABEL_UNSELECT =
"rich-ddmenu-label-unselect"; //$NON-NLS-1$
+ private static final String CSS_RICH_DDMENU_LABEL_SELECT =
"rich-ddmenu-label-select"; //$NON-NLS-1$
+ private static final String CSS_RICH_DDMENU_LABEL_DISABLED =
"rich-ddmenu-label-disabled"; //$NON-NLS-1$
+ private static final String CSS_RICH_LABEL_TEXT_DECOR =
"rich-label-text-decor"; //$NON-NLS-1$
+ private static final String CSS_RICH_MENU_LIST_BORDER =
"rich-menu-list-border"; //$NON-NLS-1$
+ private static final String CSS_RICH_MENU_LIST_BG = "rich-menu-list-bg";
//$NON-NLS-1$
+ private static final String CSS_RICH_DDEMENU_LIST_DIV_STYLE = "";
//$NON-NLS-1$
+ private static final String CSS_RICH_DDEMENU_BORDER_DIV_STYLE = "";
//$NON-NLS-1$
+ private static final String CSS_MENU_TOP_DIV = "dr-menu-top-div";
//$NON-NLS-1$
+
+ public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
+ VpeCreationData creationData = null;
+ Element sourceElement = (Element)sourceNode;
+
+ ComponentUtil.setCSSLink(pageContext, STYLE_PATH, COMPONENT_NAME);
+ final Attributes attrs = new Attributes(sourceElement);
+
/*
- * rich:dropDownMenu constants
+ * DropDownMenu component structure.
+ * In order of nesting.
*/
- private static final String COMPONENT_NAME = "dropDownMenu"; //$NON-NLS-1$
- private static final String STYLE_PATH = "dropDownMenu/dropDownMenu.css";
//$NON-NLS-1$
- private static final String CHILD_GROUP_NAME = ":menuGroup"; //$NON-NLS-1$
- private static final String CHILD_ITEM_NAME = ":menuItem"; //$NON-NLS-1$
- private static final String LABEL_FACET_NAME = "label"; //$NON-NLS-1$
- private static final String DEFAULT_DDM_TITLE = "ddm"; //$NON-NLS-1$
- private static final String EMPTY = ""; //$NON-NLS-1$
- private static final String SPACE = " "; //$NON-NLS-1$
+ nsIDOMElement ddmMainUL;
+ nsIDOMElement ddmMainLI;
+ nsIDOMElement ddmChildrenUL;
+ nsIDOMElement ddmLabelDiv;
+ nsIDOMElement ddmTextSpan;
+ nsIDOMText ddmLabelText;
+ nsIDOMElement ddmListDiv;
+ nsIDOMElement ddmListBorderDiv;
+ nsIDOMElement ddmListBgDiv;
/*
- * Constants for drop down mechanism.
+ * Creating visual elements
*/
- private static final String MENU_TOP_ID = "vpe-ddm-menu-title-ul";
//$NON-NLS-1$
- private static final String MENU_TOP_ITEM_ID = "vpe-ddm-menu-title-li";
//$NON-NLS-1$
- private static final String MENU_CHILDREN_LIST_ID =
"vpe-ddm-menu-children-ul"; //$NON-NLS-1$
-
+ ddmMainUL = visualDocument.createElement(HTML.TAG_UL);
+ ddmMainLI = visualDocument.createElement(HTML.TAG_LI);
+ ddmChildrenUL = visualDocument.createElement(HTML.TAG_UL);
+ ddmLabelDiv = visualDocument.createElement(HTML.TAG_DIV);
+ ddmTextSpan = visualDocument.createElement(HTML.TAG_SPAN);
+ ddmLabelText = visualDocument.createTextNode(Constants.EMPTY);
+ ddmListDiv = visualDocument.createElement(HTML.TAG_DIV);
+ ddmListBorderDiv = visualDocument.createElement(HTML.TAG_DIV);
+ ddmListBgDiv = visualDocument.createElement(HTML.TAG_DIV);
+ creationData = new VpeCreationData(ddmMainUL);
+
/*
- * rich:dropDownMenu css styles names
+ * Nesting elements
*/
- private static final String CSS_RICH_DDMENU_LABEL = "rich-ddmenu-label";
//$NON-NLS-1$
- private static final String CSS_RICH_DDMENU_LABEL_UNSELECT =
"rich-ddmenu-label-unselect"; //$NON-NLS-1$
- private static final String CSS_RICH_DDMENU_LABEL_SELECT =
"rich-ddmenu-label-select"; //$NON-NLS-1$
- private static final String CSS_RICH_DDMENU_LABEL_DISABLED =
"rich-ddmenu-label-disabled"; //$NON-NLS-1$
- private static final String CSS_RICH_LABEL_TEXT_DECOR =
"rich-label-text-decor"; //$NON-NLS-1$
- private static final String CSS_RICH_MENU_LIST_BORDER =
"rich-menu-list-border"; //$NON-NLS-1$
- private static final String CSS_RICH_MENU_LIST_BG = "rich-menu-list-bg";
//$NON-NLS-1$
- private static final String CSS_RICH_DDEMENU_LIST_DIV_STYLE = "";
//$NON-NLS-1$
- private static final String CSS_RICH_DDEMENU_BORDER_DIV_STYLE = "";
//$NON-NLS-1$
- private static final String CSS_MENU_TOP_DIV = "dr-menu-top-div";
//$NON-NLS-1$
+ ddmLabelDiv.appendChild(ddmTextSpan);
+// ddmTextSpan.appendChild(ddmLabelText);
+// ddmLabelDiv.appendChild(ddmListDiv);
+ ddmListDiv.appendChild(ddmListBorderDiv);
+ ddmListBorderDiv.appendChild(ddmListBgDiv);
+ ddmMainUL.appendChild(ddmMainLI);
+ ddmMainLI.appendChild(ddmLabelDiv);
/*
+ * Setting attributes for the drop-down mechanism
+ */
+ ddmMainUL.setAttribute(MENU_TOP_ID, Constants.EMPTY);
+ ddmMainLI.setAttribute(MENU_TOP_ITEM_ID, Constants.EMPTY);
+ ddmChildrenUL.setAttribute(MENU_CHILDREN_LIST_ID, Constants.EMPTY);
+
+ /*
+ * Setting css classes
+ */
+ String labelDivClass = Constants.EMPTY;
+ String listBorderDivClass = Constants.EMPTY;
+
+ labelDivClass += Constants.WHITE_SPACE + CSS_RICH_DDMENU_LABEL + Constants.WHITE_SPACE
+ + CSS_RICH_DDMENU_LABEL_UNSELECT;
+ listBorderDivClass += Constants.WHITE_SPACE + CSS_RICH_MENU_LIST_BORDER;
+
+ if (ComponentUtil.isNotBlank(attrs.getStyleClass())) {
+ labelDivClass += Constants.WHITE_SPACE + attrs.getStyleClass();
+ listBorderDivClass += Constants.WHITE_SPACE + attrs.getStyleClass();
+ }
+
+// ddmLabelDiv.setAttribute(HTML.ATTR_CLASS, labelDivClass);
+ ddmLabelDiv.setAttribute(HTML.ATTR_CLASS, CSS_MENU_TOP_DIV);
+ ddmMainLI.setAttribute(HTML.ATTR_CLASS, labelDivClass);
+ ddmTextSpan.setAttribute(HTML.ATTR_CLASS, CSS_RICH_LABEL_TEXT_DECOR);
+// ddmListBorderDiv.setAttribute(HTML.ATTR_CLASS, listBorderDivClass);
+// ddmListBgDiv.setAttribute(HTML.ATTR_CLASS, CSS_RICH_MENU_LIST_BG);
+ ddmChildrenUL.setAttribute(HTML.ATTR_CLASS, listBorderDivClass + Constants.WHITE_SPACE
+ + CSS_RICH_MENU_LIST_BG);
+ /*
+ * Setting css styles
+ */
+ String cssListDivStyle = Constants.EMPTY;
+ String cssListBorderDivStyle = Constants.EMPTY;
+ String cssLabelDivStyle = Constants.EMPTY;
+
+ cssListDivStyle += Constants.WHITE_SPACE + CSS_RICH_DDEMENU_LIST_DIV_STYLE;
+ cssListBorderDivStyle += Constants.WHITE_SPACE + CSS_RICH_DDEMENU_BORDER_DIV_STYLE;
+
+ if (ComponentUtil.isNotBlank(attrs.getStyle())) {
+ cssLabelDivStyle += Constants.WHITE_SPACE + attrs.getStyle();
+ }
+
+// ddmListDiv.setAttribute(HTML.ATTR_STYLE, cssListDivStyle);
+// ddmListBorderDiv.setAttribute(HTML.ATTR_STYLE, cssListBorderDivStyle);
+// ddmLabelDiv.setAttribute(HTML.ATTR_STYLE, cssLabelDivStyle);
+ ddmMainLI.setAttribute(HTML.ATTR_STYLE, cssListDivStyle + Constants.WHITE_SPACE
+ + cssListBorderDivStyle + Constants.WHITE_SPACE + cssLabelDivStyle);
+ ddmChildrenUL.setAttribute(HTML.ATTR_STYLE, cssListDivStyle + Constants.WHITE_SPACE
+ + cssListBorderDivStyle + Constants.WHITE_SPACE + cssLabelDivStyle);
+ /*
+ * Encoding label value
+ */
+ Element labelFacet = ComponentUtil.getFacet(sourceElement, LABEL_FACET_NAME);
+ if (null != labelFacet) {
+ VpeChildrenInfo childrenInfo = new VpeChildrenInfo(ddmTextSpan);
+ childrenInfo.addSourceChild(labelFacet);
+ creationData.addChildrenInfo(childrenInfo);
+ } else {
+ String labelValue = DEFAULT_DDM_TITLE;
+ if (ComponentUtil.isNotBlank(attrs.getValue())) {
+ labelValue = attrs.getValue();
+ }
+ ddmLabelText.setNodeValue(labelValue);
+ ddmTextSpan.appendChild(ddmLabelText);
+ }
+
+ /*
+ * Adding child nodes:
+ * <rich:menuGroup> and <rich:menuItem> only.
+ */
+ List<Node> children = ComponentUtil.getChildren(sourceElement);
+ boolean missingChildContainer = true;
+ for (Node child : children) {
+ if (child.getNodeType() == Node.ELEMENT_NODE
+ && (child.getNodeName().endsWith(CHILD_GROUP_NAME) || child
+ .getNodeName().endsWith(CHILD_ITEM_NAME))) {
+ if (missingChildContainer) {
+ /*
+ * Add children <ul> tag.
+ */
+ ddmMainLI.appendChild(ddmChildrenUL);
+ missingChildContainer = false;
+ }
+ VpeChildrenInfo childDivInfo = new VpeChildrenInfo(
+ ddmChildrenUL);
+ childDivInfo.addSourceChild(child);
+ creationData.addChildrenInfo(childDivInfo);
+ }
+ }
+
+ return creationData;
+ }
+
+ @Override
+ public boolean recreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, nsIDOMDocument visualDocument,
+ nsIDOMElement visualNode, Object data, String name, String value) {
+ return true;
+ }
+
+ class Attributes {
+ /*
* rich:dropDownMenu attributes names
*/
- private static final String DIRECTION = "direction"; //$NON-NLS-1$
- private static final String HORIZONTAL_OFFCET = "horizontalOffset";
//$NON-NLS-1$
- private static final String JOINT_POINT = "jontPoint"; //$NON-NLS-1$
- private static final String POPUP_WIDTH = "popupWidth"; //$NON-NLS-1$
- private static final String VERTICAL_OFFSET = "verticalOffset"; //$NON-NLS-1$
-
+ private String DIRECTION = "direction"; //$NON-NLS-1$
+ private String HORIZONTAL_OFFCET = "horizontalOffset"; //$NON-NLS-1$
+ private String JOINT_POINT = "jontPoint"; //$NON-NLS-1$
+ private String POPUP_WIDTH = "popupWidth"; //$NON-NLS-1$
+ private String VERTICAL_OFFSET = "verticalOffset"; //$NON-NLS-1$
+
/*
* rich:menuGroup css styles and classes attributes names
*/
- private static final String DISABLED_ITEM_CLASS = "disabledItemClass";
//$NON-NLS-1$
- private static final String DISABLED_ITEM_STYLE = "disabledItemStyle";
//$NON-NLS-1$
- private static final String DISABLED_LABEL_CLASS = "disabledLabelClass";
//$NON-NLS-1$
- private static final String ITEM_CLASS = "itemClass"; //$NON-NLS-1$
- private static final String ITEM_STYLE = "itemStyle"; //$NON-NLS-1$
- private static final String SELECED_LABEL_CLASS = "selectedLabelClass";
//$NON-NLS-1$
- private static final String SELECT_ITEM_CLASS = "selectItemClass";
//$NON-NLS-1$
-
+ private String DISABLED_ITEM_CLASS = "disabledItemClass"; //$NON-NLS-1$
+ private String DISABLED_ITEM_STYLE = "disabledItemStyle"; //$NON-NLS-1$
+ private String DISABLED_LABEL_CLASS = "disabledLabelClass"; //$NON-NLS-1$
+ private String ITEM_CLASS = "itemClass"; //$NON-NLS-1$
+ private String ITEM_STYLE = "itemStyle"; //$NON-NLS-1$
+ private String SELECED_LABEL_CLASS = "selectedLabelClass"; //$NON-NLS-1$
+ private String SELECT_ITEM_CLASS = "selectItemClass"; //$NON-NLS-1$
+
/*
* rich:dropDownMenu attributes
*/
@@ -103,180 +250,47 @@
private String ddm_selectItemClass;
private String ddm_style;
private String ddm_styleClass;
+ private String ddm_value;
- public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
- VpeCreationData creationData = null;
- Element sourceElement = (Element)sourceNode;
+ public Attributes(final Element sourceElement) {
+ if (null == sourceElement) {
+ return;
+ }
+
+ ddm_direction = sourceElement.getAttribute(DIRECTION);
+ ddm_disabled = sourceElement.getAttribute(HTML.ATTR_DISABLED);
+ ddm_horizontalOffset = sourceElement.getAttribute(HORIZONTAL_OFFCET);
+ ddm_jointPoint = sourceElement.getAttribute(JOINT_POINT);
+ ddm_popupWidth = sourceElement.getAttribute(POPUP_WIDTH);
+ ddm_verticalOffset = sourceElement.getAttribute(VERTICAL_OFFSET);
- ComponentUtil.setCSSLink(pageContext, STYLE_PATH, COMPONENT_NAME);
- readDropDownMenuAttributes(sourceElement);
-
- /*
- * DropDownMenu component structure.
- * In order of nesting.
- */
- nsIDOMElement ddmMainUL;
- nsIDOMElement ddmMainLI;
- nsIDOMElement ddmChildrenUL;
- nsIDOMElement ddmLabelDiv;
- nsIDOMElement ddmTextSpan;
- nsIDOMText ddmLabelText;
- nsIDOMElement ddmListDiv;
- nsIDOMElement ddmListBorderDiv;
- nsIDOMElement ddmListBgDiv;
-
- /*
- * Creating visual elements
- */
- ddmMainUL = visualDocument.createElement(HTML.TAG_UL);
- ddmMainLI = visualDocument.createElement(HTML.TAG_LI);
- ddmChildrenUL = visualDocument.createElement(HTML.TAG_UL);
- ddmLabelDiv = visualDocument.createElement(HTML.TAG_DIV);
- ddmTextSpan = visualDocument.createElement(HTML.TAG_SPAN);
- ddmLabelText = visualDocument.createTextNode(EMPTY);
- ddmListDiv = visualDocument.createElement(HTML.TAG_DIV);
- ddmListBorderDiv = visualDocument.createElement(HTML.TAG_DIV);
- ddmListBgDiv = visualDocument.createElement(HTML.TAG_DIV);
- creationData = new VpeCreationData(ddmMainUL);
-
- /*
- * Nesting elements
- */
- ddmLabelDiv.appendChild(ddmTextSpan);
-// ddmTextSpan.appendChild(ddmLabelText);
-// ddmLabelDiv.appendChild(ddmListDiv);
- ddmListDiv.appendChild(ddmListBorderDiv);
- ddmListBorderDiv.appendChild(ddmListBgDiv);
- ddmMainUL.appendChild(ddmMainLI);
- ddmMainLI.appendChild(ddmLabelDiv);
-
- /*
- * Setting attributes for the drop-down mechanism
- */
- ddmMainUL.setAttribute(MENU_TOP_ID, EMPTY);
- ddmMainLI.setAttribute(MENU_TOP_ITEM_ID, EMPTY);
- ddmChildrenUL.setAttribute(MENU_CHILDREN_LIST_ID, EMPTY);
-
- /*
- * Setting css classes
- */
- String labelDivClass = EMPTY;
- String listBorderDivClass = EMPTY;
+ ddm_disabledItemClass = sourceElement.getAttribute(DISABLED_ITEM_CLASS);
+ ddm_disabledItemStyle = sourceElement.getAttribute(DISABLED_ITEM_STYLE);
+ ddm_disabledLabelClass = sourceElement.getAttribute(DISABLED_LABEL_CLASS);
+ ddm_itemClass = sourceElement.getAttribute(ITEM_CLASS);
+ ddm_itemStyle = sourceElement.getAttribute(ITEM_STYLE);
+ ddm_selectedLabelClass = sourceElement.getAttribute(SELECED_LABEL_CLASS);
+ ddm_selectItemClass = sourceElement.getAttribute(SELECT_ITEM_CLASS);
+ ddm_style = sourceElement.getAttribute(HTML.ATTR_STYLE);
+ ddm_styleClass = sourceElement.getAttribute(RichFaces.ATTR_STYLE_CLASS);
+ ddm_value = sourceElement.getAttribute(HTML.ATTR_VALUE);
+ }
- labelDivClass += SPACE + CSS_RICH_DDMENU_LABEL + SPACE
- + CSS_RICH_DDMENU_LABEL_UNSELECT;
- listBorderDivClass += SPACE + CSS_RICH_MENU_LIST_BORDER;
-
- if (ComponentUtil.isNotBlank(ddm_styleClass)) {
- labelDivClass += SPACE + ddm_styleClass;
- listBorderDivClass += SPACE + ddm_styleClass;
- }
-
-// ddmLabelDiv.setAttribute(HTML.ATTR_CLASS, labelDivClass);
- ddmLabelDiv.setAttribute(HTML.ATTR_CLASS, CSS_MENU_TOP_DIV);
- ddmMainLI.setAttribute(HTML.ATTR_CLASS, labelDivClass);
- ddmTextSpan.setAttribute(HTML.ATTR_CLASS, CSS_RICH_LABEL_TEXT_DECOR);
-// ddmListBorderDiv.setAttribute(HTML.ATTR_CLASS, listBorderDivClass);
-// ddmListBgDiv.setAttribute(HTML.ATTR_CLASS, CSS_RICH_MENU_LIST_BG);
- ddmChildrenUL.setAttribute(HTML.ATTR_CLASS, listBorderDivClass + SPACE
- + CSS_RICH_MENU_LIST_BG);
- /*
- * Setting css styles
- */
- String cssListDivStyle = EMPTY;
- String cssListBorderDivStyle = EMPTY;
- String cssLabelDivStyle = EMPTY;
-
- cssListDivStyle += SPACE + CSS_RICH_DDEMENU_LIST_DIV_STYLE;
- cssListBorderDivStyle += SPACE + CSS_RICH_DDEMENU_BORDER_DIV_STYLE;
-
- if (ComponentUtil.isNotBlank(ddm_style)) {
- cssLabelDivStyle += SPACE + ddm_style;
- }
-
-// ddmListDiv.setAttribute(HTML.ATTR_STYLE, cssListDivStyle);
-// ddmListBorderDiv.setAttribute(HTML.ATTR_STYLE, cssListBorderDivStyle);
-// ddmLabelDiv.setAttribute(HTML.ATTR_STYLE, cssLabelDivStyle);
- ddmMainLI.setAttribute(HTML.ATTR_STYLE, cssListDivStyle + SPACE
- + cssListBorderDivStyle + SPACE + cssLabelDivStyle);
- ddmChildrenUL.setAttribute(HTML.ATTR_STYLE, cssListDivStyle + SPACE
- + cssListBorderDivStyle + SPACE + cssLabelDivStyle);
- /*
- * Encoding label value
- */
- Element labelFacet = ComponentUtil.getFacet(sourceElement, LABEL_FACET_NAME);
- if (null != labelFacet) {
- VpeChildrenInfo childrenInfo = new VpeChildrenInfo(ddmTextSpan);
- childrenInfo.addSourceChild(labelFacet);
- creationData.addChildrenInfo(childrenInfo);
- } else {
- Attr valueAttr = sourceElement.getAttributeNode(HTML.ATTR_VALUE);
- String labelValue = (valueAttr != null && valueAttr.getValue() != null)
- ? valueAttr.getValue()
- : DEFAULT_DDM_TITLE;
- ddmLabelText.setNodeValue(labelValue);
- ddmTextSpan.appendChild(ddmLabelText);
- }
+ public String getStyle() {
+ return ddm_style;
+ }
- /*
- * Adding child nodes:
- * <rich:menuGroup> and <rich:menuItem> only.
- */
- List<Node> children = ComponentUtil.getChildren(sourceElement);
- boolean missingChildContainer = true;
- for (Node child : children) {
- if (child.getNodeType() == Node.ELEMENT_NODE
- && (child.getNodeName().endsWith(CHILD_GROUP_NAME) || child
- .getNodeName().endsWith(CHILD_ITEM_NAME))) {
- if (missingChildContainer) {
- /*
- * Add children <ul> tag.
- */
- ddmMainLI.appendChild(ddmChildrenUL);
- missingChildContainer = false;
- }
- VpeChildrenInfo childDivInfo = new VpeChildrenInfo(
- ddmChildrenUL);
- childDivInfo.addSourceChild(child);
- creationData.addChildrenInfo(childDivInfo);
- }
- }
-
- return creationData;
+ public String getStyleClass() {
+ return ddm_styleClass;
}
-
- /**
- * Read attributes from the source element.
- *
- * @param sourceNode the source node
- */
- private void readDropDownMenuAttributes(Element sourceElement) {
- if (null == sourceElement) {
- return;
- }
-
- ddm_direction = sourceElement.getAttribute(DIRECTION);
- ddm_disabled = sourceElement.getAttribute(HTML.ATTR_DISABLED);
- ddm_horizontalOffset = sourceElement.getAttribute(HORIZONTAL_OFFCET);
- ddm_jointPoint = sourceElement.getAttribute(JOINT_POINT);
- ddm_popupWidth = sourceElement.getAttribute(POPUP_WIDTH);
- ddm_verticalOffset = sourceElement.getAttribute(VERTICAL_OFFSET);
- ddm_disabledItemClass = sourceElement.getAttribute(DISABLED_ITEM_CLASS);
- ddm_disabledItemStyle = sourceElement.getAttribute(DISABLED_ITEM_STYLE);
- ddm_disabledLabelClass = sourceElement.getAttribute(DISABLED_LABEL_CLASS);
- ddm_itemClass = sourceElement.getAttribute(ITEM_CLASS);
- ddm_itemStyle = sourceElement.getAttribute(ITEM_STYLE);
- ddm_selectedLabelClass = sourceElement.getAttribute(SELECED_LABEL_CLASS);
- ddm_selectItemClass = sourceElement.getAttribute(SELECT_ITEM_CLASS);
- ddm_style = sourceElement.getAttribute(HTML.ATTR_STYLE);
- ddm_styleClass = sourceElement.getAttribute(RichFaces.ATTR_STYLE_CLASS);
- }
-
- @Override
- public boolean recreateAtAttrChange(VpePageContext pageContext,
- Element sourceElement, nsIDOMDocument visualDocument,
- nsIDOMElement visualNode, Object data, String name, String value) {
- return true;
- }
+ public String getDisabled() {
+ return ddm_disabled;
+ }
+
+ public String getValue() {
+ return ddm_value;
+ }
+
+ }
}
\ No newline at end of file
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuGroupTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuGroupTemplate.java 2009-05-13
14:33:34 UTC (rev 15242)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuGroupTemplate.java 2009-05-13
15:28:14 UTC (rev 15243)
@@ -18,12 +18,12 @@
import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate;
import org.jboss.tools.vpe.editor.template.VpeChildrenInfo;
import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.util.Constants;
import org.jboss.tools.vpe.editor.util.HTML;
import org.jboss.tools.vpe.editor.util.VpeStyleUtil;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMText;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -42,8 +42,6 @@
private static final String CHILD_ITEM_NAME = ":menuItem"; //$NON-NLS-1$
private static final String ICON_FACET_NAME = "icon"; //$NON-NLS-1$
private static final String ICON_DISABLED_FACET_NAME = "iconDisabled";
//$NON-NLS-1$
- private static final String EMPTY = ""; //$NON-NLS-1$
- private static final String SPACE = " "; //$NON-NLS-1$
/*
* Constants for drop down mechanism.
@@ -72,61 +70,21 @@
private static final String CSS_RICH_LIST_BORDER_DIV_STYLE = "";
//$NON-NLS-1$
private static final String CSS_MENU_GROUP_TOP_DIV = "dr-menu-group-top-div";
//$NON-NLS-1$
- /*
- * rich:menuGroup attributes names
- */
- private static final String DIRECTION = "direction"; //$NON-NLS-1$
- private static final String ICON = "icon"; //$NON-NLS-1$
- private static final String ICON_DISABLED = "iconDisabled"; //$NON-NLS-1$
- private static final String ICON_FOLDER = "iconFolder"; //$NON-NLS-1$
- private static final String ICON_FOLDER_DISABLED = "iconFolderDisabled";
//$NON-NLS-1$
-
- /*
- * rich:menuGroup css styles and classes attributes names
- */
- private static final String ICON_CLASS = "iconClass"; //$NON-NLS-1$
- private static final String ICON_STYLE = "iconStyle"; //$NON-NLS-1$
- private static final String LABEL_CLASS = "labelClass"; //$NON-NLS-1$
- private static final String SELECT_CLASS = "selectClass"; //$NON-NLS-1$
- private static final String SELECT_STYLE = "selectStyle"; //$NON-NLS-1$
-
- /*
- * rich:menuGroup attributes
- */
- private String mg_direction;
- private String mg_disabled;
- private String mg_icon;
- private String mg_iconDisabled;
- private String mg_iconFolder;
- private String mg_iconFolderDisabled;
- private String mg_value;
-
- /*
- * rich:menuGroup css styles and classes attributes
- */
- private String mg_iconClass;
- private String mg_iconStyle;
- private String mg_labelClass;
- private String mg_selectClass;
- private String mg_selectStyle;
- private String mg_style;
- private String mg_styleClass;
-
public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
VpeCreationData creationData = null;
Element sourceElement = (Element)sourceNode;
ComponentUtil.setCSSLink(pageContext, STYLE_PATH, COMPONENT_NAME);
- readMenuGroupAttributes(sourceElement);
+ final Attributes attrs = new Attributes(sourceElement);
/*
* MenuGroup component structure.
* In order of nesting.
*/
nsIDOMElement ddmMainUL;
- nsIDOMElement grMainLI;
- nsIDOMElement grChildrenUL;
- nsIDOMElement ddmChildrenLI;
+ nsIDOMElement grMainLI;
+ nsIDOMElement grChildrenUL;
+ nsIDOMElement ddmChildrenLI;
nsIDOMElement grTopDiv;
nsIDOMElement grImgSpan;
@@ -141,14 +99,14 @@
/*
* Creating visual elements
*/
- grMainLI = visualDocument.createElement(HTML.TAG_LI);
- grChildrenUL = visualDocument.createElement(HTML.TAG_UL);
+ grMainLI = visualDocument.createElement(HTML.TAG_LI);
+ grChildrenUL = visualDocument.createElement(HTML.TAG_UL);
grTopDiv = visualDocument.createElement(HTML.TAG_DIV);
grImgSpan = visualDocument.createElement(HTML.TAG_SPAN);
grImg = visualDocument.createElement(HTML.TAG_IMG);
grFolderImg = visualDocument.createElement(HTML.TAG_IMG);
grLabelSpan = visualDocument.createElement(HTML.TAG_SPAN);
- grLabelText = visualDocument.createTextNode(EMPTY);
+ grLabelText = visualDocument.createTextNode(Constants.EMPTY);
grFolderImgSpan = visualDocument.createElement(HTML.TAG_SPAN);
grListBorderDiv = visualDocument.createElement(HTML.TAG_DIV);
grListBgDiv = visualDocument.createElement(HTML.TAG_DIV);
@@ -168,31 +126,31 @@
/*
* Setting attributes for the drop-down mechanism
*/
- grMainLI.setAttribute(MENU_CHILD_ID, EMPTY);
- grChildrenUL.setAttribute(MENU_PARENT_ID, EMPTY);
+ grMainLI.setAttribute(MENU_CHILD_ID, Constants.EMPTY);
+ grChildrenUL.setAttribute(MENU_PARENT_ID, Constants.EMPTY);
/*
* Setting css classes
*/
- String topDivClass = EMPTY;
- String imgSpanClass = EMPTY;
- String labelSpanClass = EMPTY;
- String folderDivClass = EMPTY;
+ String topDivClass = Constants.EMPTY;
+ String imgSpanClass = Constants.EMPTY;
+ String labelSpanClass = Constants.EMPTY;
+ String folderDivClass = Constants.EMPTY;
- topDivClass += SPACE + CSS_RICH_MENU_GROUP;
- imgSpanClass += SPACE + CSS_RICH_MENU_ITEM_ICON_ENABLED;
- labelSpanClass += SPACE + CSS_RICH_MENU_ITEM_LABEL + SPACE +
CSS_RICH_MENU_GROUP_LABEL;
- folderDivClass += SPACE + CSS_RICH_MENU_ITEM_FOLDER + SPACE +
CSS_RICH_MENU_GROUP_FOLDER;
+ topDivClass += Constants.WHITE_SPACE + CSS_RICH_MENU_GROUP;
+ imgSpanClass += Constants.WHITE_SPACE + CSS_RICH_MENU_ITEM_ICON_ENABLED;
+ labelSpanClass += Constants.WHITE_SPACE + CSS_RICH_MENU_ITEM_LABEL +
Constants.WHITE_SPACE + CSS_RICH_MENU_GROUP_LABEL;
+ folderDivClass += Constants.WHITE_SPACE + CSS_RICH_MENU_ITEM_FOLDER +
Constants.WHITE_SPACE + CSS_RICH_MENU_GROUP_FOLDER;
- if (ComponentUtil.isNotBlank(mg_styleClass)) {
- topDivClass += SPACE + mg_styleClass;
+ if (ComponentUtil.isNotBlank(attrs.getStyleClass())) {
+ topDivClass += Constants.WHITE_SPACE + attrs.getStyleClass();
}
- if (ComponentUtil.isNotBlank(mg_iconClass)) {
- imgSpanClass += SPACE + mg_iconClass;
- folderDivClass += SPACE + mg_iconClass;
+ if (ComponentUtil.isNotBlank(attrs.getIconClass())) {
+ imgSpanClass += Constants.WHITE_SPACE + attrs.getIconClass();
+ folderDivClass += Constants.WHITE_SPACE + attrs.getIconClass();
}
- if (ComponentUtil.isNotBlank(mg_labelClass)) {
- labelSpanClass += SPACE + mg_labelClass;
+ if (ComponentUtil.isNotBlank(attrs.getLabelClass())) {
+ labelSpanClass += Constants.WHITE_SPACE + attrs.getLabelClass();
}
// grTopDiv.setAttribute(HTML.ATTR_CLASS, topDivClass);
@@ -204,29 +162,30 @@
// grListBorderDiv.setAttribute(HTML.ATTR_CLASS, CSS_RICH_MENU_LIST_BORDER);
// grListBgDiv.setAttribute(HTML.ATTR_CLASS, CSS_RICH_MENU_LIST_BG);
grChildrenUL.setAttribute(HTML.ATTR_CLASS, CSS_RICH_MENU_LIST_BORDER
- + SPACE + CSS_RICH_MENU_LIST_BG);
+ + Constants.WHITE_SPACE + CSS_RICH_MENU_LIST_BG);
/*
* Setting css styles
*/
- String topDivStyle = EMPTY;
+ String topDivStyle = Constants.EMPTY;
- if (ComponentUtil.isNotBlank(mg_style)) {
- topDivStyle += SPACE + mg_style;
+ if (ComponentUtil.isNotBlank(attrs.getStyle())) {
+ topDivStyle += Constants.WHITE_SPACE + attrs.getStyle();
}
grMainLI.setAttribute(HTML.ATTR_STYLE, topDivStyle);
grFolderImgSpan.setAttribute(HTML.ATTR_STYLE, CSS_RICH_LIST_FOLDER_DIV_STYLE);
// grListBorderDiv.setAttribute(HTML.ATTR_STYLE, CSS_RICH_LIST_BORDER_DIV_STYLE);
// grChildrenUL.setAttribute(HTML.ATTR_STYLE,
-// CSS_RICH_LIST_FOLDER_DIV_STYLE + SPACE
+// CSS_RICH_LIST_FOLDER_DIV_STYLE + Constants.WHITE_SPACE
// + CSS_RICH_LIST_BORDER_DIV_STYLE);
/*
* Encode label value
*/
- Attr valueAttr = sourceElement.getAttributeNode(HTML.ATTR_VALUE);
- String labelValue = valueAttr != null
- && valueAttr.getValue() != null ? valueAttr.getValue() : EMPTY;
+ String labelValue = Constants.EMPTY;
+ if (ComponentUtil.isNotBlank(attrs.getValue())) {
+ labelValue = attrs.getValue();
+ }
grLabelText.setNodeValue(labelValue);
/*
@@ -239,11 +198,11 @@
childInfo.addSourceChild(iconFacet);
creationData.addChildrenInfo(childInfo);
} else {
- if (ComponentUtil.isNotBlank(mg_icon)) {
+ if (ComponentUtil.isNotBlank(attrs.getIcon())) {
/*
* Add path to specified image
*/
- String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(mg_icon, pageContext, true);
+ String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(attrs.getIcon(), pageContext,
true);
grImg.setAttribute(HTML.ATTR_SRC, imgFullPath);
} else {
/*
@@ -261,11 +220,11 @@
/*
* Add group folder icon
*/
- if (ComponentUtil.isNotBlank(mg_iconFolder)) {
+ if (ComponentUtil.isNotBlank(attrs.getIconFolder())) {
/*
* Add path to specified image
*/
- String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(mg_iconFolder, pageContext,
true);
+ String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(attrs.getIconFolder(),
pageContext, true);
grFolderImg.setAttribute(HTML.ATTR_SRC, imgFullPath);
} else {
/*
@@ -304,14 +263,58 @@
return creationData;
}
- /**
- * Read attributes from the source element.
- *
- * @param sourceNode the source node
- */
- private void readMenuGroupAttributes(Element sourceElement) {
+ @Override
+ public boolean recreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, nsIDOMDocument visualDocument,
+ nsIDOMElement visualNode, Object data, String name, String value) {
+ return true;
+ }
+
+ class Attributes {
+
+ /*
+ * rich:menuGroup attributes names
+ */
+ private String DIRECTION = "direction"; //$NON-NLS-1$
+ private String ICON = "icon"; //$NON-NLS-1$
+ private String ICON_DISABLED = "iconDisabled"; //$NON-NLS-1$
+ private String ICON_FOLDER = "iconFolder"; //$NON-NLS-1$
+ private String ICON_FOLDER_DISABLED = "iconFolderDisabled"; //$NON-NLS-1$
+
+ /*
+ * rich:menuGroup css styles and classes attributes names
+ */
+ private String ICON_CLASS = "iconClass"; //$NON-NLS-1$
+ private String ICON_STYLE = "iconStyle"; //$NON-NLS-1$
+ private String LABEL_CLASS = "labelClass"; //$NON-NLS-1$
+ private String SELECT_CLASS = "selectClass"; //$NON-NLS-1$
+ private String SELECT_STYLE = "selectStyle"; //$NON-NLS-1$
+
+ /*
+ * rich:menuGroup attributes
+ */
+ private String mg_icon;
+ private String mg_iconFolder;
+ private String mg_direction;
+ private String mg_disabled;
+ private String mg_iconDisabled;
+ private String mg_iconFolderDisabled;
+ private String mg_value;
+
+ /*
+ * rich:menuGroup css styles and classes attributes
+ */
+ private String mg_iconClass;
+ private String mg_iconStyle;
+ private String mg_labelClass;
+ private String mg_selectClass;
+ private String mg_selectStyle;
+ private String mg_style;
+ private String mg_styleClass;
+
+ public Attributes(final Element sourceElement) {
if (null == sourceElement) {
- return;
+ return;
}
mg_direction = sourceElement.getAttribute(DIRECTION);
mg_disabled = sourceElement.getAttribute(HTML.ATTR_DISABLED);
@@ -328,13 +331,40 @@
mg_selectStyle = sourceElement.getAttribute(SELECT_STYLE);
mg_style = sourceElement.getAttribute(HTML.ATTR_STYLE);
mg_styleClass = sourceElement.getAttribute(RichFaces.ATTR_STYLE_CLASS);
+ }
+
+ public String getIconClass() {
+ return mg_iconClass;
+ }
+
+ public String getLabelClass() {
+ return mg_labelClass;
+ }
+
+ public String getStyle() {
+ return mg_style;
+ }
+
+ public String getStyleClass() {
+ return mg_styleClass;
+ }
+
+ public String getIcon() {
+ return mg_icon;
+ }
+
+ public String getIconFolder() {
+ return mg_iconFolder;
+ }
+
+ public String getIconStyle() {
+ return mg_iconStyle;
+ }
+
+ public String getValue() {
+ return mg_value;
+ }
+
}
-
- @Override
- public boolean recreateAtAttrChange(VpePageContext pageContext,
- Element sourceElement, nsIDOMDocument visualDocument,
- nsIDOMElement visualNode, Object data, String name, String value) {
- return true;
- }
-
+
}
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuItemTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuItemTemplate.java 2009-05-13
14:33:34 UTC (rev 15242)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/template/RichFacesMenuItemTemplate.java 2009-05-13
15:28:14 UTC (rev 15243)
@@ -24,12 +24,10 @@
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMText;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class RichFacesMenuItemTemplate extends VpeAbstractTemplate {
-
/*
* rich:menuItem constants
@@ -62,46 +60,12 @@
private static final String CSS_RICH_MENU_ITEM_ICON_SELECTED =
"rich-menu-item-icon-selected"; //$NON-NLS-1$
private static final String CSS_MENU_ITEM_TOP_DIV = "dr-menu-item-top-div";
//$NON-NLS-1$
- /*
- * rich:menuItem attributes names
- */
- private static final String ICON = "icon"; //$NON-NLS-1$
-
- /*
- * rich:menuItem css styles and classes attributes names
- */
- private static final String ICON_CLASS = "iconClass"; //$NON-NLS-1$
- private static final String ICON_DISABLED = "iconDisabled"; //$NON-NLS-1$
- private static final String ICON_STYLE = "iconStyle"; //$NON-NLS-1$
- private static final String LABEL_CLASS = "labelClass"; //$NON-NLS-1$
- private static final String SELECT_STYLE = "selectStyle"; //$NON-NLS-1$
- private static final String SELECT_CLASS = "selectClass"; //$NON-NLS-1$
-
- /*
- * rich:menuItem attributes
- */
- private String mi_disabled;
- private String mi_icon;
- private String mi_value;
-
- /*
- * rich:menuItem css styles and classes attributes
- */
- private String mi_iconClass;
- private String mi_iconDisabled;
- private String mi_iconStyle;
- private String mi_labelClass;
- private String mi_selectClass;
- private String mi_selectStyle;
- private String mi_style;
- private String mi_styleClass;
-
public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
VpeCreationData creationData = null;
Element sourceElement = (Element)sourceNode;
ComponentUtil.setCSSLink(pageContext, STYLE_PATH, COMPONENT_NAME);
- readMenuItemAttributes(sourceElement);
+ final Attributes attrs = new Attributes(sourceElement);
/*
* MenuItem component structure.
@@ -150,14 +114,14 @@
iconImgSpanClass += Constants.WHITE_SPACE + CSS_RICH_MENU_ITEM_ICON;
labelSpanClass += Constants.WHITE_SPACE + CSS_RICH_MENU_ITEM_LABEL;
- if (ComponentUtil.isNotBlank(mi_styleClass)) {
- topDivClass += Constants.WHITE_SPACE + mi_styleClass;
+ if (ComponentUtil.isNotBlank(attrs.getStyleClass())) {
+ topDivClass += Constants.WHITE_SPACE + attrs.getStyleClass();
}
- if (ComponentUtil.isNotBlank(mi_iconClass)) {
- iconImgSpanClass += Constants.WHITE_SPACE + mi_iconClass;
+ if (ComponentUtil.isNotBlank(attrs.getIconClass())) {
+ iconImgSpanClass += Constants.WHITE_SPACE + attrs.getIconClass();
}
- if (ComponentUtil.isNotBlank(mi_labelClass)) {
- labelSpanClass += Constants.WHITE_SPACE + mi_labelClass;
+ if (ComponentUtil.isNotBlank(attrs.getLabelClass())) {
+ labelSpanClass += Constants.WHITE_SPACE + attrs.getLabelClass();
}
// itemTopDiv.setAttribute(HTML.ATTR_CLASS, topDivClass);
@@ -172,8 +136,8 @@
*/
String topDivStyle = Constants.EMPTY;
- if (ComponentUtil.isNotBlank(mi_style)) {
- topDivStyle += Constants.WHITE_SPACE + mi_style;
+ if (ComponentUtil.isNotBlank(attrs.getStyle())) {
+ topDivStyle += Constants.WHITE_SPACE + attrs.getStyle();
}
// itemTopDiv.setAttribute(HTML.ATTR_STYLE, topDivStyle);
@@ -189,12 +153,11 @@
childInfo.addSourceChild(iconFacet);
creationData.addChildrenInfo(childInfo);
} else {
- String iconPath = sourceElement.getAttribute(ICON);
- if (ComponentUtil.isNotBlank(iconPath)) {
+ if (ComponentUtil.isNotBlank(attrs.getIcon())) {
/*
* Add path to specified image
*/
- String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(iconPath, pageContext, true);
+ String imgFullPath = VpeStyleUtil.addFullPathToImgSrc(attrs.getIcon(), pageContext,
true);
itemIconImg.setAttribute(HTML.ATTR_SRC, imgFullPath);
} else {
/*
@@ -211,10 +174,10 @@
/*
* Encode label and icon value
*/
- Attr valueAttr = sourceElement.getAttributeNode(HTML.ATTR_VALUE);
- String labelValue = (valueAttr != null && valueAttr.getValue() != null)
- ? valueAttr.getValue()
- : Constants.EMPTY;
+ String labelValue = Constants.EMPTY;
+ if (ComponentUtil.isNotBlank(attrs.getValue())) {
+ labelValue = attrs.getValue();
+ }
itemLabelText.setNodeValue(labelValue);
/*
@@ -229,21 +192,58 @@
return creationData;
}
+
+ @Override
+ public boolean recreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, nsIDOMDocument visualDocument,
+ nsIDOMElement visualNode, Object data, String name, String value) {
+ return true;
+ }
-
- /**
- * Read attributes from the source element.
- *
- * @param sourceNode the source node
- */
- private void readMenuItemAttributes(Element sourceElement) {
+ class Attributes {
+
+ /*
+ * rich:menuItem attributes names
+ */
+ private String ICON = "icon"; //$NON-NLS-1$
+
+ /*
+ * rich:menuItem css styles and classes attributes names
+ */
+ private String ICON_CLASS = "iconClass"; //$NON-NLS-1$
+ private String ICON_DISABLED = "iconDisabled"; //$NON-NLS-1$
+ private String ICON_STYLE = "iconStyle"; //$NON-NLS-1$
+ private String LABEL_CLASS = "labelClass"; //$NON-NLS-1$
+ private String SELECT_STYLE = "selectStyle"; //$NON-NLS-1$
+ private String SELECT_CLASS = "selectClass"; //$NON-NLS-1$
+
+ /*
+ * rich:menuItem attributes
+ */
+ private String mi_disabled;
+ private String mi_icon;
+ private String mi_value;
+
+ /*
+ * rich:menuItem css styles and classes attributes
+ */
+ private String mi_iconClass;
+ private String mi_iconDisabled;
+ private String mi_iconStyle;
+ private String mi_labelClass;
+ private String mi_selectClass;
+ private String mi_selectStyle;
+ private String mi_style;
+ private String mi_styleClass;
+
+ public Attributes(final Element sourceElement) {
if (null == sourceElement) {
- return;
+ return;
}
mi_disabled = sourceElement.getAttribute(HTML.ATTR_DISABLED);
mi_icon = sourceElement.getAttribute(ICON);
mi_value = sourceElement.getAttribute(HTML.ATTR_VALUE);
-
+
mi_iconClass = sourceElement.getAttribute(ICON_CLASS);
mi_iconDisabled = sourceElement.getAttribute(ICON_DISABLED);
mi_iconStyle = sourceElement.getAttribute(ICON_STYLE);
@@ -252,13 +252,32 @@
mi_selectStyle = sourceElement.getAttribute(SELECT_STYLE);
mi_style = sourceElement.getAttribute(HTML.ATTR_STYLE);
mi_styleClass = sourceElement.getAttribute(RichFaces.ATTR_STYLE_CLASS);
- }
+ }
- @Override
- public boolean recreateAtAttrChange(VpePageContext pageContext,
- Element sourceElement, nsIDOMDocument visualDocument,
- nsIDOMElement visualNode, Object data, String name, String value) {
- return true;
+ public String getIconClass() {
+ return mi_iconClass;
+ }
+
+ public String getLabelClass() {
+ return mi_labelClass;
+ }
+
+ public String getStyle() {
+ return mi_style;
+ }
+
+ public String getStyleClass() {
+ return mi_styleClass;
+ }
+
+ public String getIcon() {
+ return mi_icon;
+ }
+
+ public String getValue() {
+ return mi_value;
+ }
+
}
}