blob: 56720cde7247db47a3f6957627f692d895dc2247 [file] [log] [blame]
/*
* Copyright 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.dom.client;
import com.google.gwt.core.client.JavaScriptObject;
/**
* Provides programmatic access to properties of the style object.
*
* @see Element#getStyle()
*/
public class Style extends JavaScriptObject {
protected Style() {
}
/**
* Gets the value of a named property.
*/
public final String getProperty(String name) {
assertCamelCase(name);
return getPropertyImpl(name);
}
/**
* Sets the value of a named property.
*/
public final void setProperty(String name, String value) {
assertCamelCase(name);
setPropertyImpl(name, value);
}
/**
* Sets the value of a named property, in pixels.
*
* This is shorthand for <code>value + "px"</code>.
*/
public final void setPropertyPx(String name, int value) {
assertCamelCase(name);
setPropertyPxImpl(name, value);
}
/**
* Assert that the specified property does not contain a hyphen.
*
* @param name the property name
*/
private void assertCamelCase(String name) {
assert !name.contains("-") : "The style name '" + name
+ "' should be in camelCase format";
}
/**
* Gets the value of a named property.
*/
private native String getPropertyImpl(String name) /*-{
return this[name];
}-*/;
/**
* Sets the value of a named property.
*/
private native void setPropertyImpl(String name, String value) /*-{
this[name] = value;
}-*/;
/**
* Sets the value of a named property, in pixels.
*
* This is shorthand for <code>value + "px"</code>.
*/
private native void setPropertyPxImpl(String name, int value) /*-{
this[name] = value + "px";
}-*/;
}