diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/property/BorderWidthMeta.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/property/BorderWidthMeta.java | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/property/BorderWidthMeta.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/property/BorderWidthMeta.java deleted file mode 100644 index d7316997a..000000000 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/property/BorderWidthMeta.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. and others. - * - * All rights reserved. This program and the accompanying materials - * are 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.pagedesigner.css2.property; - -import org.eclipse.jst.pagedesigner.css2.ICSSStyle; -import org.eclipse.jst.pagedesigner.css2.value.Length; -import org.eclipse.jst.pagedesigner.utils.DOMUtil; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.css.CSSValue; - -/** - * - * @author mengbo - */ -// FIXME: when the border-style is none, how should we treat border-width? -public class BorderWidthMeta extends LengthMeta { - - private static final Length LENGTH_4 = new Length(4, false); - - static final String[] KEYWORDS = new String[] { ICSSPropertyID.VAL_AUTO, - ICSSPropertyID.VAL_THIN, ICSSPropertyID.VAL_MEDIUM, - ICSSPropertyID.VAL_THICK }; - - /** - */ - public BorderWidthMeta() { - super(false, LENGTH_4); // medium length. - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.css2.property.LengthMeta#getKeywordValues() - */ - protected String[] getKeywordValues() { - return KEYWORDS; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.css2.property.CSSPropertyMeta#getPercentageType() - */ - public int getPercentageType() { - return PERCENTAGE_NONE; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.css2.property.LengthMeta#calculateCSSValueResult(org.w3c.dom.css.CSSValue, - * java.lang.String, - * org.eclipse.jst.pagedesigner.css2.style.AbstractStyle) - */ - public Object calculateCSSValueResult(CSSValue value, String propertyName, - ICSSStyle style) { - // Computed value: absolute length; '0' if the border style is 'none' or - // 'hidden' - Object stylevalue = style.getStyleProperty("border-" //$NON-NLS-1$ - + extractEdge(propertyName) + "-style"); //$NON-NLS-1$ - if (ICSSPropertyID.VAL_NONE.equals(stylevalue) - || ICSSPropertyID.VAL_HIDDEN.equals(stylevalue)) { - return Length.LENGTH_0; - } - - Object obj = super.calculateCSSValueResult(value, propertyName, style); - if (ICSSPropertyID.VAL_THIN.equals(obj)) { - return Length.LENGTH_1; - } else if (ICSSPropertyID.VAL_MEDIUM.equals(obj)) { - return Length.LENGTH_3; - } else if (ICSSPropertyID.VAL_THICK.equals(obj)) { - return Length.LENGTH_8; - } - return obj; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.css2.property.CSSPropertyMeta#calculateHTMLAttributeOverride(org.w3c.dom.Element, - * java.lang.String, java.lang.String, - * org.eclipse.jst.pagedesigner.css2.ICSSStyle) - */ - public Object calculateHTMLAttributeOverride(Element element, - String htmltag, String propertyName, ICSSStyle style) { - if ("table".equalsIgnoreCase(htmltag)) { //$NON-NLS-1$ - return calculateTableOverride(element, propertyName); - } else if ("td".equalsIgnoreCase(htmltag) //$NON-NLS-1$ - || "th".equalsIgnoreCase(htmltag)) { //$NON-NLS-1$ - return calculateTDOverride(element, propertyName); - } else if ("img".equalsIgnoreCase(htmltag)) { //$NON-NLS-1$ - String border = DOMUtil.getAttributeIgnoreCase(element, "border");// ICSSPropertyID.ATTR_BORDERSIZE); //$NON-NLS-1$ - if (border != null) { - try { - return new Length(Integer.parseInt(border), false); - } catch (Exception ex) { - // Integer processing, no need to report. - } - } - } - - return super.calculateHTMLAttributeOverride(element, htmltag, - propertyName, style); - } - - /** - * @param element - * @param propertyName - * @return - */ - private Object calculateTDOverride(Element element, String propertyName) { - // find containing table first - Node parent = element; - Element tableEle = null; - while ((parent = parent.getParentNode()) != null - && parent instanceof Element) { - if (((Element) parent).getTagName().equalsIgnoreCase("table")) { //$NON-NLS-1$ - tableEle = (Element) parent; - break; - } - - } - if (tableEle != null) { - String rules = DOMUtil.getAttributeIgnoreCase(tableEle, "rules"); //$NON-NLS-1$ - String borderstr = DOMUtil.getAttributeIgnoreCase(tableEle, - "border"); //$NON-NLS-1$ - if (rules == null || rules.length() == 0) { - if (borderstr == null || "0".equals(borderstr.trim())) { //$NON-NLS-1$ - return null; - } - return Length.LENGTH_1; - } - // ok, we got a value for rules - if (TableUtil.matchRules(extractEdge(propertyName), rules)) { - return Length.LENGTH_1; - } - return Length.LENGTH_0; - } - return Length.LENGTH_0; - } - - /** - * @param element - * @param propertyName - * @return - */ - private Object calculateTableOverride(Element element, String propertyName) { - String frame = DOMUtil.getAttributeIgnoreCase(element, "frame"); //$NON-NLS-1$ - String borderstr = DOMUtil.getAttributeIgnoreCase(element, "border"); //$NON-NLS-1$ - // border="0" implies frame="void" - if ("0".equals(borderstr)) { //$NON-NLS-1$ - return Length.LENGTH_0; - } - if (frame == null || frame.length() == 0) { - if (borderstr == null) { - return null; - } else if (borderstr.trim().length() == 0) { - return Length.LENGTH_1; - } else { - try { - return new Length(Integer.parseInt(borderstr), false); - } catch (Exception ex) { - frame = borderstr; - } - } - } - // ok, we got a value for frame. - if (TableUtil.matchFrame(extractEdge(propertyName), frame)) { - if (borderstr != null) { - try { - return new Length(Integer.parseInt(borderstr), false); - } catch (Exception ex) { - // ignore. pass through to return length_1 - } - } - return Length.LENGTH_1; - } - return Length.LENGTH_0; - } - - static String extractEdge(String propertyName) { - if (ICSSPropertyID.ATTR_BORDER_BOTTOM_WIDTH - .equalsIgnoreCase(propertyName)) { - return "bottom"; //$NON-NLS-1$ - } else if (ICSSPropertyID.ATTR_BORDER_LEFT_WIDTH - .equalsIgnoreCase(propertyName)) { - return "left"; //$NON-NLS-1$ - } else if (ICSSPropertyID.ATTR_BORDER_RIGHT_WIDTH - .equalsIgnoreCase(propertyName)) { - return "right"; //$NON-NLS-1$ - } else { - return "top"; //$NON-NLS-1$ - } - } - - /** - * @param propertyName - * @return true if property name is a border width - */ - public static boolean isBorderWidth(String propertyName) { - return ICSSPropertyID.ATTR_BORDER_BOTTOM_WIDTH - .equalsIgnoreCase(propertyName) - || ICSSPropertyID.ATTR_BORDER_LEFT_WIDTH - .equalsIgnoreCase(propertyName) - || ICSSPropertyID.ATTR_BORDER_RIGHT_WIDTH - .equalsIgnoreCase(propertyName) - || ICSSPropertyID.ATTR_BORDER_TOP_WIDTH - .equalsIgnoreCase(propertyName); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.css2.property.CSSPropertyMeta#getInitialValue(java.lang.String, - * org.eclipse.jst.pagedesigner.css2.ICSSStyle) - */ - public Object getInitialValue(String propertyName, ICSSStyle style) { - // Computed value: absolute length; '0' if the border style is 'none' or - // 'hidden' - Object stylevalue = style.getStyleProperty("border-" //$NON-NLS-1$ - + extractEdge(propertyName) + "-style"); //$NON-NLS-1$ - if (ICSSPropertyID.VAL_NONE.equals(stylevalue) - || ICSSPropertyID.VAL_HIDDEN.equals(stylevalue)) { - return Length.LENGTH_0; - } - return super.getInitialValue(propertyName, style); - } -} |