/******************************************************************************* * Copyright (c) 2004, 2005 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.wst.css.core.internal.util.declaration; import org.eclipse.wst.css.core.internal.contentmodel.IValID; import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; import org.w3c.dom.css.Rect; /** * Abstract class for clip sub-properties */ abstract public class ClipSubStyleAdapter implements ISubPropertyAdapter { /** * */ public ClipSubStyleAdapter() { super(); } /** * */ public String get(ICSS2Properties properties) { String str = null; Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); if (obj != null) { if (obj instanceof org.w3c.dom.css.Rect) { str = get((org.w3c.dom.css.Rect) obj); } else { if (obj instanceof ICSSValue) { str = ((ICSSValue) obj).getCSSValueText(); } else { str = obj.toString(); } str = str.trim().toLowerCase(); int pos = str.indexOf("rect(");//$NON-NLS-1$ if (pos >= 0) { String subStr = null; pos += 5; int i = 0; do { int posEnd = str.indexOf(",", pos);//$NON-NLS-1$ if (posEnd < 0) posEnd = str.indexOf(")", pos);//$NON-NLS-1$ if (posEnd < 0 && pos < str.length()) posEnd = str.length(); if (posEnd >= pos) { subStr = str.substring(pos, posEnd); pos = posEnd + 1; } else pos = -1; } while (i++ < index() && pos > 0); if (pos > 0) str = subStr.trim(); else str = null; } else str = null; } } return (str != null) ? str : "";//$NON-NLS-1$ } /** * */ abstract String get(Rect rect); /** * */ abstract int index(); /** * */ public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { } /** * Insert the method's description here. Creation date: (2001/10/04 * 19:25:46) * * @param properties * org.eclipse.wst.css.core.util.declaration.ICSS2Properties * @param top * java.lang.String * @param right * java.lang.String * @param bottom * java.lang.String * @param left * java.lang.String * @param removeCheck * boolean */ void set(ICSS2Properties properties, String top, String right, String bottom, String left, boolean removeCheck) { if (top == null || top.length() == 0) top = IValID.V_AUTO; if (right == null || right.length() == 0) right = IValID.V_AUTO; if (bottom == null || bottom.length() == 0) bottom = IValID.V_AUTO; if (left == null || left.length() == 0) left = IValID.V_AUTO; if (removeCheck && top.trim().equalsIgnoreCase(IValID.V_AUTO) && right.trim().equalsIgnoreCase(IValID.V_AUTO) && bottom.trim().equalsIgnoreCase(IValID.V_AUTO) && left.trim().equalsIgnoreCase(IValID.V_AUTO)) { properties.set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP), null); } else properties.set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP), "rect(" + top + ", " + right + ", " + bottom + ", " + left + ")");//$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ } }