$(document).ready(function(){ var array1=[["01","valueArray101"],["02","valueArray102"],["03","valueArray103"],["04","valueArray104"]]; var array2=[["11","valueArray211"],["12","valueArray212"],["13","valueArray213"],["14","valueArray214"]]; //Combos enlazados $("#idselect").change(function () { //comprueba los valores seleccionados en el select if ($('#idselect option:selected[value="01"]').length > 0 || $('#idselect option:selected[value="05"]').length > 0 || $('#idselect option:selected[value="10"]').length > 0){ //Elimina los option de la select $('#idselect1').empty(); //Recorremos el array multidimensional for(var val in array1) { $("", { value: array1[val][0], text: array1[val][1] }).appendTo($('#idselect1')); } } if ($('#idselect option:selected[value="99"]').length > 0 ){ //Elimina los option de la select $('#idselect1').empty(); for(var val in array2) { $("", { value: array2[val][0], text: array2[val][1] }).appendTo($('#idselect1')); } } }); });
Este blog pretende recopilar ideas que me van surgiendo con los días y compartirlas con los demás.
15 noviembre 2012
Combos (DropDown) enlazados(lazy) con jquey
Esto es el código para realizar dos combos(dropdown) enlazados(lazy) con jquery a partir de dos matrices multidimensionales constantes.
Etiquetas:
codigo,
combos,
dropdown,
enlzados,
javascript,
jquery,
lazy
Ubicación:
A Coruña, España
07 noviembre 2012
Como borrar recursivamente la carpeta .svn del Subversion
Crea un fichero bat con el código de abajo y mételo dentro de la carpeta donde tienes los ficheros del subversión y ejecútalo, se te borraran todos.
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"
Etiquetas:
borrar,
carpetas,
directorios,
recursivo,
subversion
Ubicación:
A Coruña, España
01 noviembre 2012
Ejecutar un proceso, batch(bat) o programa al cerrar o iniciar Windows
Alguna vez has necesitado ejecutar un programa o batch(Bat) cuando se inicie tu windows o cuando se apague, en mi caso necesitaba ejecutar un script de visual basic (vbs) para hacerlo necesitas realizar los siguientes pasos:
Etiquetas:
batch,
ejecutar apagado,
ejecutar inicio,
scripts,
windows
Ubicación:
A Coruña, España
22 octubre 2012
Operaciones con Decimales en Java (redondeo)
Si necesitáis realizar operaciones con números decimales tienes que utilizar java.math.BigDecimal, en el siguiente ejemplo comprobamos que la variable numericoDecimal no es 0 y le asignamos la operación multiplicación de un Double y una división por un int redondeado los decimales hacia arriba:
La salida da 49.41
import java.math.BigDecimal; import java.math.RoundingMode; public class Prueba { public static void main(String[] args) { Double numeroDecimal2= new Double(24.2); BigDecimal numericoDecimal = new BigDecimal(24.5); // comprobacion si el valor del BigDecimal es 0 numericoDecimal= numericoDecimal.compareTo(BigDecimal.ZERO) != 0 ? numericoDecimal.multiply(BigDecimal.valueOf(numeroDecimal2)).divide(BigDecimal.valueOf(12), RoundingMode.HALF_UP) : BigDecimal.ZERO; System.out.println(numericoDecimal); } }
La salida da 49.41
05 junio 2012
Scheduler o Programador de tareas en Java Version2
Otra versión de un scheduler o programador de tareas y esta vez para máquinas virtuales jdk 1.4 o anteriores. Las clases utilizadas son
java.util.Timer y
java.util.TimerTask.
Hay dos Timer y dos Task, un Timer que arranca la alarma y otro que la para, una Task que ejecuta un contador y otra que para las Tasks y los Timers
Hay dos Timer y dos Task, un Timer que arranca la alarma y otro que la para, una Task que ejecuta un contador y otra que para las Tasks y los Timers
import java.util.Timer; import java.util.TimerTask; public class Alarma { private long tiempoCarenciaMilisegundos = 3000; private long tiempoEjecucionAlarmaTask = 3000; private AlarmaTimer alarmaTimer = new AlarmaTimer(); private AlarmaTask alarmaTask = new AlarmaTask(); private AlarmaParaTimer alarmaParaTimer = new AlarmaParaTimer(); private AlarmaParaTask alarmaPararTask = new AlarmaParaTask(); /** * @param args */ public static void main(String[] args) { System.out.println("Inicio del Main"); Alarma alarma = new Alarma(1000, 3000); alarma.arrancaAlarmaTimer(); alarma.arrancaAlarmaParaTimer(); System.out.println("Fin del Main"); } /** * Constructor de la clase * @param tiempoCarenciaMilisegundos * @param tiempoEjecucionAlarmaTask */ public Alarma(long tiempoCarenciaMilisegundos, long tiempoEjecucionAlarmaTask) { this.tiempoCarenciaMilisegundos = tiempoCarenciaMilisegundos; this.tiempoEjecucionAlarmaTask = tiempoEjecucionAlarmaTask; } private void arrancaAlarmaTimer() { alarmaTimer.arrancaTimer(); } private void arrancaAlarmaParaTimer() { alarmaParaTimer.arrancaParaTimer(); } public class AlarmaTask extends TimerTask { private int contador = 0; public void run() { System.out.println("Se ejecuta la alarma " + contador++); } } public class AlarmaTimer extends Timer { private final Timer tiempo = new Timer(); public void arrancaTimer() { tiempo.scheduleAtFixedRate(alarmaTask, tiempoCarenciaMilisegundos, tiempoEjecucionAlarmaTask); }; } public class AlarmaParaTask extends TimerTask { public void run() { System.out.println("Se ejecuta la cancelacion de la alarma "); alarmaTask.cancel(); alarmaTimer.cancel(); alarmaTimer.purge(); System.out.println("Se ejecuta el parado de este timer/task "); alarmaPararTask.cancel(); alarmaParaTimer.cancel(); alarmaParaTimer.purge(); System.exit(0); } } public class AlarmaParaTimer extends Timer { private final Timer tiempo = new Timer(); public void arrancaParaTimer() { tiempo.scheduleAtFixedRate(alarmaPararTask, 20000, 1); }; } }
Etiquetas:
java,
programacion,
scheduler,
snippet,
tasktimer
Ubicación:
A Coruña, España
01 junio 2012
Scheduler o Programador de tareas en Java
Hoy posteo un pedacito de código de esos que suelo utilizar de vez en cuando para ejecutar en background tareas que se deben de realizar a horas intempestivas sin que moleste a nadie . Se trata de un programador de tareas o scheduler utilizando la clase Executors del paquete java.util.concurrent para versiones iguales o superiores 1.5 de java.
public class Schedule {
private ScheduledExecutorService programador;
private long tiempoRetardo;
private long tiempoEjecucion;
private long tiempoParada;
private static final int NUMERO_THREADS = 1;
private static final boolean PUEDE_PARAR_TAREA_SI_EJECUTA = false;
public static void main(String[] args) {
System.out.println("Inicio de main del proceso");
Schedule execute = new Schedule(3, 1, 20);
execute.activaProcesoYPara();
System.out.println("Fin del main del proceso");
}
/**
* Constructor
*
* @param tiempoInicial
* @param tiempoEjecucion
* @param tiempoParada
*/
public Schedule(long tiempoRetardo, long tiempoEjecucion, long tiempoParada) {
this.tiempoRetardo = tiempoRetardo;
this.tiempoEjecucion = tiempoEjecucion;
this.tiempoParada = tiempoParada;
programador = Executors.newScheduledThreadPool(NUMERO_THREADS);
}
/**
* Metodo que activa el programador
*
* el proceso se ejecutara 17 veces(contador = 17) ya que hay
* un retardo de 3 segundos. El proceso de parada tiene un ejecucion de 20
* segundos.
*
*/
public void activaProcesoYPara() {
Runnable ejecucionTarea = new EjecucionTarea();
ScheduledFuture programadorTareaFutura = programador.scheduleWithFixedDelay(ejecucionTarea, tiempoRetardo,
tiempoEjecucion, TimeUnit.SECONDS);
Runnable paradaProceso = new PararTarea(programadorTareaFutura);
programador.schedule(paradaProceso, tiempoParada, TimeUnit.SECONDS);
}
/**
* Clase que se utiliza para la ejecucion de la tarea
*
*/
private static final class EjecucionTarea implements Runnable {
/**
* Variable contador
*/
private int contador;
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
public void run() {
++contador;
System.out.println("valor del contador " + contador);
}
}
/**
*
* Clase que se utiliza para parar la tarea que se ejecuta en el
* {@link ScheduledFuture}
*
*/
private final class PararTarea implements Runnable {
private ScheduledFuture programadorFuturo;
/**
* Constructor.
*
* @param programadorTareaFuturo
*/
public PararTarea(ScheduledFuture programadorTareaFuturo) {
programadorFuturo = programadorTareaFuturo;
}
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
public void run() {
System.out.println("Parando la tarea");
programadorFuturo.cancel(PUEDE_PARAR_TAREA_SI_EJECUTA);
programador.shutdown();
}
}
}
Etiquetas:
java,
programacion,
scheduler,
snippet,
tasktimer
Ubicación:
A Coruña, España
22 mayo 2012
WAS(websphere) y el charset encoding utf-8
Si quieres que tu servidor websphere( o máquina virtual java) codifique en utf-8 deberás configurar el -Dclient.encoding.override= utf-8 o en ISO-8859-1 -Dclient.encoding.override=ISO-8859-1
17 mayo 2012
Comparar Fechas en Java
Como comparar fechas en java desde una fecha inicial, una final y la actual:
Date fechaHoy = new Date(); if (fechaHoy.after(fechaIni) && fechaHoy.before(fechaFin) || isSameDay(fechaHoy, fechaIni) || isSameDay(fechaHoy, fechaFin)) { return true; } private static boolean esMismoDia(Date fecha1, Date fecha2) { if (fecha1 == null || fecha2 == null) { throw new IllegalArgumentException("Las fechas no pueden ser null"); } Calendar cal1 = Calendar.getInstance(); cal1.setTime(fecha1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(fecha2); return isSameDay(cal1, cal2); } private static boolean esMismoDia(Calendar cal1, Calendar cal2) { if (cal1 == null || cal2 == null) { throw new IllegalArgumentException("Las fechas no pueden ser null"); } return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) && cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)); }
Etiquetas:
fechas,
java,
snippet
Ubicación:
A Coruña, España
13 mayo 2012
Inicializar una constante del tipo Map-HashMap(HasMap)
Seguro que alguna vez has necesitado inicializar un hasmap desde tu aplicacion java, aqui os dejo un snippet
private static final MapCONSTANT_MAP = Collections
.unmodifiableMap(new HashMap() {
{
put(1, "one");
put(2, "two");
}
});
Etiquetas:
java,
programacion,
snippet
Ubicación:
A Coruña, España
Suscribirse a:
Entradas (Atom)