All Downloads are FREE. Search and download functionalities are using the official Maven repository.

echopointng.ComponentEx Maven / Gradle / Ivy

Go to download

Echo2 bundled with Echo2_Extras, Echo2_FileTransfer and echopointing and various improvements/bugfixes

There is a newer version: 2.0.4
Show newest version
package echopointng;

/* 
 * This file is part of the Echo Point Project.  This project is a collection
 * of Components that have extended the Echo Web Application Framework.
 *
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (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.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 */

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import nextapp.echo2.app.Component;
import echopointng.able.Attributeable;

/**
 * ComponentEx is an abstract component that offers helper
 * methods for getting and setting properties, beyond what the base
 * nextapp.echo2.app.Component does.
 * 

* The hidden property is an interesting one. This is a different * visual property to visible. *

* In Echo2 components that are not visible do not exist at all * as far as rendering is concerned. They get no property updates and will not * exist in the client. The hidden flag simple makes the * component "not shown" on the client. It still exists and can/will receive * property updates. *

* The use of this flag can help the application become more efficient because * server to client messaging is reduced when a parent component is hidden and * then shown, as it may not redraw all sub components. *

* In CSS/XHTML terms, hidden is equivalent to display:none. * */ public abstract class ComponentEx extends Component implements Attributeable { public static final String PROPERTY_HIDDEN = "hidden"; /** * ComponentEx does not participate in focus traversal by * default. */ public ComponentEx() { setFocusTraversalParticipant(false); } /** * @return true if the ComponentEx is currently hidden */ public boolean isHidden() { return getProperty(PROPERTY_HIDDEN, false); } /** * Sets whether this ComponentEx (and its content) is hidden on the client. *

* This is a different visual property to visible. In Echo2 * components that are not visible do not exist at all as far * as rendering is concerned. They get no property updates and will not * exist in the client. The hidden flag simple makes the * component "not shown" on the client. It still exists and can receive * property updates. *

* The use of this flag can help the application become more efficient * because server to client messaging is reduced when a parent component is * hidden and then shown, as it may not redraw all sub components. *

* In CSS/XHTML terms, hidden is equivalent to display:none. * * @param newValue - * the new value of the hidden flag */ public void setHidden(boolean newValue) { setProperty(PROPERTY_HIDDEN, newValue); } /** * Helper method to get 'Object' properties. Placed there for completeness * since Component.getProperty() does exactly the same thing. * * @return - the 'Object' property * @see Component#getProperty(String) */ public static Object getProperty(Component c, String propertyName) { return c.getProperty(propertyName); } /** * Helper method to get 'boolean' properties, with a default value. * * @return - the 'boolean' property or the default value if its null * @see Component#getProperty(String) */ public static boolean getProperty(Component c, String propertyName, boolean defaultValue) { Boolean obj = (Boolean) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.booleanValue()); } /** * Helper method to get 'byte' properties, with a default value. * * @return - the 'byte' property or the default value if its null * @see Component#getProperty(String) */ public static byte getProperty(Component c, String propertyName, byte defaultValue) { Byte obj = (Byte) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.byteValue()); } /** * Helper method to get 'char' properties, with a default value. * * @return - the 'char' property or the default value if its null * @see Component#getProperty(String) */ public static char getProperty(Component c, String propertyName, char defaultValue) { Character obj = (Character) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.charValue()); } /** * Helper method to get 'double' properties, with a default value. * * @return - the 'double' property or the default value if its null * @see Component#getProperty(String) */ public static double getProperty(Component c, String propertyName, double defaultValue) { Double obj = (Double) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.doubleValue()); } /** * Helper method to get 'float' properties, with a default value. * * @return - the 'float' property or the default value if its null * @see Component#getProperty(String) */ public static float getProperty(Component c, String propertyName, float defaultValue) { Float obj = (Float) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.floatValue()); } /** * Helper method to get 'int' properties, with a default value. * * @return - the 'int' property or the default value if its null * @see Component#getProperty(String) */ public static int getProperty(Component c, String propertyName, int defaultValue) { Integer obj = (Integer) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.intValue()); } /** * Helper method to get 'long' properties, with a default value. * * @return - the 'long' property or the default value if its null * @see Component#getProperty(String) */ public static long getProperty(Component c, String propertyName, long defaultValue) { Long obj = (Long) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.longValue()); } /** * Helper method to get 'short' properties, with a default value. * * @return - the 'short' property or the default value if its null * @see Component#getProperty(String) */ public static short getProperty(Component c, String propertyName, short defaultValue) { Short obj = (Short) c.getProperty(propertyName); return (obj == null ? defaultValue : obj.shortValue()); } /** * Helper method to get 'Object' render properties. Placed there for * completeness since Component.getRenderProperty() does exactly the same * thing. * * @return - the 'Object' render property * @see Component#getRenderProperty(String, Object) */ public static Object getRenderProperty(Component c, String propertyName) { return c.getRenderProperty(propertyName); } /** * Helper method to get 'boolean' render properties, with a default value. * * @return - the 'boolean' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static boolean getRenderProperty(Component c, String propertyName, boolean defaultValue) { Boolean obj = (Boolean) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.booleanValue()); } /** * Helper method to get 'byte' render properties, with a default value. * * @return - the 'byte' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static byte getRenderProperty(Component c, String propertyName, byte defaultValue) { Byte obj = (Byte) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.byteValue()); } /** * Helper method to get 'char' render properties, with a default value. * * @return - the 'char' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static char getRenderProperty(Component c, String propertyName, char defaultValue) { Character obj = (Character) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.charValue()); } /** * Helper method to get 'double' render properties, with a default value. * * @return - the 'double' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static double getRenderProperty(Component c, String propertyName, double defaultValue) { Double obj = (Double) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.doubleValue()); } /** * Helper method to get 'float' render properties, with a default value. * * @return - the 'float' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static float getRenderProperty(Component c, String propertyName, float defaultValue) { Float obj = (Float) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.floatValue()); } /** * Helper method to get 'int' render properties, with a default value. * * @return - the 'int' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static int getRenderProperty(Component c, String propertyName, int defaultValue) { Integer obj = (Integer) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.intValue()); } /** * Helper method to get 'long' render properties, with a default value. * * @return - the 'long' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static long getRenderProperty(Component c, String propertyName, long defaultValue) { Long obj = (Long) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.longValue()); } /** * Helper method to get 'Object' render properties. Placed there for * completeness since Component.getRenderProperty() does exactly the same * thing. * * @return - the 'Object' render property * @see Component#getRenderProperty(String, Object) */ public static Object getRenderProperty(Component c, String propertyName, Object defaultValue) { return c.getRenderProperty(propertyName, defaultValue); } /** * Helper method to get 'short' render properties, with a default value. * * @return - the 'short' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public static short getRenderProperty(Component c, String propertyName, short defaultValue) { Short obj = (Short) c.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.shortValue()); } /** * Helper method to set 'boolean' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, boolean newValue) { c.setProperty(propertyName, newValue ? Boolean.TRUE : Boolean.FALSE); } /** * Helper method to set 'byte' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, byte newValue) { c.setProperty(propertyName, new Byte(newValue)); } /** * Helper method to set 'char' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, char newValue) { c.setProperty(propertyName, new Character(newValue)); } /** * Helper method to set 'double' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, double newValue) { c.setProperty(propertyName, new Double(newValue)); } /** * Helper method to set 'float' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, float newValue) { c.setProperty(propertyName, new Float(newValue)); } /** * Helper method to set 'int' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, int newValue) { c.setProperty(propertyName, new Integer(newValue)); } /** * Helper method to set 'long' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, long newValue) { c.setProperty(propertyName, new Long(newValue)); } /** * Helper method to set 'Object' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, Object newValue) { c.setProperty(propertyName, newValue); } /** * Helper method to set 'short' property values * * @see Component#setProperty(String, Object) */ public static void setProperty(Component c, String propertyName, short newValue) { c.setProperty(propertyName, new Short(newValue)); } private Map attributeMap; /** * @see echopointng.able.Attributeable#getAttribute(java.lang.String) */ public Object getAttribute(String attributeName) { if (attributeMap != null) { return attributeMap.get(attributeName); } return null; } /** * @see echopointng.able.Attributeable#getAttributeNames() */ public String[] getAttributeNames() { if (attributeMap == null) { return new String[0]; } int count = 0; String[] attributeNames = new String[attributeMap.keySet().size()]; for (Iterator iter = attributeMap.keySet().iterator(); iter.hasNext();) { attributeNames[count++] = (String) iter.next(); } return attributeNames; } /** * Helper method to get 'boolean' properties, with a default value. * * @return - the 'boolean' property or the default value if its null * @see Component#getProperty(String) */ public boolean getProperty(String propertyName, boolean defaultValue) { Boolean obj = (Boolean) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.booleanValue()); } /** * Helper method to get 'byte' properties, with a default value. * * @return - the 'byte' property or the default value if its null * @see Component#getProperty(String) */ public byte getProperty(String propertyName, byte defaultValue) { Byte obj = (Byte) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.byteValue()); } /** * Helper method to get 'char' properties, with a default value. * * @return - the 'char' property or the default value if its null * @see Component#getProperty(String) */ public char getProperty(String propertyName, char defaultValue) { Character obj = (Character) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.charValue()); } /** * Helper method to get 'double' properties, with a default value. * * @return - the 'double' property or the default value if its null * @see Component#getProperty(String) */ public double getProperty(String propertyName, double defaultValue) { Double obj = (Double) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.doubleValue()); } /** * Helper method to get 'float' properties, with a default value. * * @return - the 'float' property or the default value if its null * @see Component#getProperty(String) */ public float getProperty(String propertyName, float defaultValue) { Float obj = (Float) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.floatValue()); } /** * Helper method to get 'int' properties, with a default value. * * @return - the 'int' property or the default value if its null * @see Component#getProperty(String) */ public int getProperty(String propertyName, int defaultValue) { Integer obj = (Integer) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.intValue()); } /** * Helper method to get 'long' properties, with a default value. * * @return - the 'long' property or the default value if its null * @see Component#getProperty(String) */ public long getProperty(String propertyName, long defaultValue) { Long obj = (Long) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.longValue()); } /** * Helper method to get 'short' properties, with a default value. * * @return - the 'short' property or the default value if its null * @see Component#getProperty(String) */ public short getProperty(String propertyName, short defaultValue) { Short obj = (Short) super.getProperty(propertyName); return (obj == null ? defaultValue : obj.shortValue()); } /** * Helper method to get 'boolean' render properties, with a default value. * * @return - the 'boolean' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public boolean getRenderProperty(String propertyName, boolean defaultValue) { Boolean obj = (Boolean) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.booleanValue()); } /** * Helper method to get 'byte' render properties, with a default value. * * @return - the 'byte' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public byte getRenderProperty(String propertyName, byte defaultValue) { Byte obj = (Byte) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.byteValue()); } /** * Helper method to get 'char' render properties, with a default value. * * @return - the 'char' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public char getRenderProperty(String propertyName, char defaultValue) { Character obj = (Character) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.charValue()); } /** * Helper method to get 'double' render properties, with a default value. * * @return - the 'double' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public double getRenderProperty(String propertyName, double defaultValue) { Double obj = (Double) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.doubleValue()); } /** * Helper method to get 'float' render properties, with a default value. * * @return - the 'float' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public float getRenderProperty(String propertyName, float defaultValue) { Float obj = (Float) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.floatValue()); } /** * Helper method to get 'int' render properties, with a default value. * * @return - the 'int' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public int getRenderProperty(String propertyName, int defaultValue) { Integer obj = (Integer) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.intValue()); } /** * Helper method to get 'long' render properties, with a default value. * * @return - the 'long' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public long getRenderProperty(String propertyName, long defaultValue) { Long obj = (Long) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.longValue()); } /** * Helper method to get 'short' render properties, with a default value. * * @return - the 'short' render property or the default value if its null * @see Component#getRenderProperty(String, Object) */ public short getRenderProperty(String propertyName, short defaultValue) { Short obj = (Short) super.getRenderProperty(propertyName); return (obj == null ? defaultValue : obj.shortValue()); } /** * @see echopointng.able.Attributeable#setAttribute(java.lang.String, * java.lang.Object) */ public void setAttribute(String attributeName, Object attributeValue) { if (attributeMap == null) { attributeMap = new HashMap(); } attributeMap.put(attributeName, attributeValue); } /** * Helper method to set 'boolean' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, boolean newValue) { super.setProperty(propertyName, Boolean.valueOf(newValue)); } /** * Helper method to set 'byte' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, byte newValue) { super.setProperty(propertyName, new Byte(newValue)); } /** * Helper method to set 'char' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, char newValue) { super.setProperty(propertyName, new Character(newValue)); } /** * Helper method to set 'double' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, double newValue) { super.setProperty(propertyName, new Double(newValue)); } /** * Helper method to set 'float' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, float newValue) { super.setProperty(propertyName, new Float(newValue)); } /** * Helper method to set 'int' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, int newValue) { super.setProperty(propertyName, new Integer(newValue)); } /** * Helper method to set 'long' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, long newValue) { super.setProperty(propertyName, new Long(newValue)); } /** * Helper method to set 'short' property values * * @see Component#setProperty(String, Object) */ public void setProperty(String propertyName, short newValue) { super.setProperty(propertyName, new Short(newValue)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy