UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

217 lines (187 loc) 6.27 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2009 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Fabian Jakobs (fjakobs) ************************************************************************ */ /** * A helper class for accessing the property system directly. * * This class is rather to be used internally. For all regular usage of the * property system the default API should be sufficient. */ qx.Class.define("qx.util.PropertyUtil", { statics : { /** * Get the property map of the given class * * @param clazz {Class} a qooxdoo class * @return {Map} A properties map as defined in {@link qx.Class#define} * including the properties of included mixins and not including refined * properties. */ getProperties : function(clazz) { return clazz.$$properties; }, /** * Get the property map of the given class including the properties of all * superclasses! * * @param clazz {Class} a qooxdoo class * @return {Map} The properties map as defined in {@link qx.Class#define} * including the properties of included mixins of the current class and * all superclasses. */ getAllProperties : function(clazz) { var properties = {}; var superclass = clazz; // go threw the class hierarchy while (superclass != qx.core.Object) { var currentProperties = this.getProperties(superclass); for (var property in currentProperties) { properties[property] = currentProperties[property]; } superclass = superclass.superclass; } return properties; }, /* ------------------------------------------------------------------------- USER VALUES ------------------------------------------------------------------------- */ /** * Returns the user value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @return {var} The user value */ getUserValue : function(object, propertyName) { return object["$$user_" + propertyName]; }, /** * Sets the user value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @param value {var} The value to set */ setUserValue : function(object, propertyName, value) { object["$$user_" + propertyName] = value; }, /** * Deletes the user value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property */ deleteUserValue : function(object, propertyName) { delete(object["$$user_" + propertyName]); }, /* ------------------------------------------------------------------------- INIT VALUES ------------------------------------------------------------------------- */ /** * Returns the init value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @return {var} The init value */ getInitValue : function(object, propertyName) { return object["$$init_" + propertyName]; }, /** * Sets the init value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @param value {var} The value to set */ setInitValue : function(object, propertyName, value) { object["$$init_" + propertyName] = value; }, /** * Deletes the init value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property */ deleteInitValue : function(object, propertyName) { delete(object["$$init_" + propertyName]); }, /* ------------------------------------------------------------------------- THEME VALUES ------------------------------------------------------------------------- */ /** * Returns the theme value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @return {var} The theme value */ getThemeValue : function(object, propertyName) { return object["$$theme_" + propertyName]; }, /** * Sets the theme value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @param value {var} The value to set */ setThemeValue : function(object, propertyName, value) { object["$$theme_" + propertyName] = value; }, /** * Deletes the theme value of the given property * * @param object {Object} The object to access * @param propertyName {String} The name of the property */ deleteThemeValue : function(object, propertyName) { delete(object["$$theme_" + propertyName]); }, /* ------------------------------------------------------------------------- THEMED PROPERTY ------------------------------------------------------------------------- */ /** * Sets a themed property * * @param object {Object} The object to access * @param propertyName {String} The name of the property * @param value {var} The value to set */ setThemed : function(object, propertyName, value) { var styler = qx.core.Property.$$method.setThemed; object[styler[propertyName]](value); }, /** * Resets a themed property * * @param object {Object} The object to access * @param propertyName {String} The name of the property */ resetThemed : function(object, propertyName) { var unstyler = qx.core.Property.$$method.resetThemed; object[unstyler[propertyName]](); } } });