Función que obtiene la fecha tras n dias

public static String getHoyMasNDias(int numDias, String fechaEntrada)throws Throwable{
//formato de la fechaEntrada y será también la de salida
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

String salida = "";

Calendar calendar = (Calendar) GregorianCalendar.getInstance();
calendar.setTime(sdf.parse(fechaEntrada));

for (int i = 0; i < numDias; i++) {
calendar.add(Calendar.DATE, 1);
}
return sdf.format(calendar.getTime());

}

Añadir el punto de unidades de millar a un entero mediante un patrón

String numero = "8000";
//definición del patrón de salida

String numberFormat = "##,###";
DecimalFormat df = new DecimalFormat(numberFormat);
DecimalFormatSymbols punto = new DecimalFormatSymbols();

//Definimos el caracter que actuará como separador
punto.setDecimalSeparator('.');
df.setDecimalFormatSymbols(punto);

//aplicación de patron
String nuevoNumero = df.format( Double.parseDouble(numero));

Convierte Nokia 8500 en un traductor

Por defecto (por lo menos con Vodafone) los nokia 8500 vienen con un diccionario de ingés por defecto, la gracia está cuando se le añaden más diccionarios al movil, en este caso el español, entonces el diccionario se transforma en un traductor.

Existen otros traductores gratuitos como el Mobile Translator 1.2.

Tarea ant para automatizar Yahoo YUI

Fichero de properties:
Build.properties

Fichero ant:
Build.xml

Las librerias necesarias están en:
http://developer.yahoo.com/yui/
http://developer.yahoo.com/yui/compressor/

invocación de métodos

Pequeño ejemplo de como invocar métodos java a partir del nombre de la clase, nombre del método, tipos de parámetros de entrada y salida.

import java.lang.reflect.Method;
public class Start {
/*Para el correcto funcionamiento de este ejemplo debe existir un paquete y una clase llamadas "
class_.Test", esta clase debe tener un atributo llamado "nombre" de tipo "String" con un método llamado "getNombre" y otro llamado "setNombre"*/
public static void main(String[] args) throws Throwable {
Class tiposParametrosDelMetodoSetter[] = {Class.forName("java.lang.String")};
Class claseVO = Class.forName("class_.Test");
Object objetoClaseVO = claseVO.newInstance();

Object[] valoresParametrosDelMetodoSetter = {"test setter string"};
String nombreMetodoSetterPorNombreAtributo = "set"+capitalize("nombre");
Method metodoSetter = claseVO.getDeclaredMethod(nombreMetodoSetterPorNombreAtributo, tiposParametrosDelMetodoSetter);
metodoSetter.invoke(objetoClaseVO, valoresParametrosDelMetodoSetter);

System.out.println("Get desde casting al objeto"+((Test) objetoClaseVO).getNombre());

String nombreMetodoGetterPorNombreAtributo = "get"+capitalize("nombre");
Method metodoGetter = claseVO.getDeclaredMethod(nombreMetodoGetterPorNombreAtributo, null);
String salida = (String)metodoGetter.invoke(objetoClaseVO, null);

System.out.println("Get desde invoke del getter"+salida);
}

public static String capitalize(String s) {
if (s == null || s.length() == 0)
return s;
else
return s.substring(0, 1).toUpperCase() + s.substring(1);
}

Cable salida TV "Creative zen vision:M" y "nokia 8500"


Aquí dejo un esquema para hacer el cable de salida de TV para el reproductor "Creative zen vision:M" y al movil "nokia 8500"

Pasarse por tienda de electrónica un soldador y en 15 min ya tienes tu cable por menos de 4€

Como rellenar una Select con DWR

Parte JAVA:
public class KeyValue {

private String key;
private String value;
private String option;
}

public class MiDWR {

public List getListaSelect(){
List salida = new ArrayList();
int cont = 10;

for(int i=0; i<cont; i++){
salida.add(new KeyValue("key", "value", "option"));
//repetir la linea antrior tantos elementos como queramos para la Select
}
return salida;
}
}


Parte HTML:
.....
<select id="select2Id" name="select2Name" size="10"></select>
.....

Parte javascript:
function llamaDWRLista(){
var eSelect = document.f1.select2Name;
//var eSelect = document.getElementsByName("select2Name")[0];
//var eSelect = document.getElementById("select2Id");
MiDWR.getListaSelect({callback:function(data) {

for(var i=0;i<data.length;i++){
var eKeyValue = data[i];
var eOption = new Option(eKeyValue.value, eKeyValue.key);
eSelect.options[i] = eOption;
//condición que irá en la property option
if(eKeyValue.option == "option"){
eSelect.options[i].style.color = "FFFFFF";
eSelect.options[i].style.backgroundColor = "red";
}
}
}});
}

Referencias: http://www.desarrolloweb.com/articulos/1489.php