despues de haber instalado el vncserver nos dirijismo a /root/.vnc y editamos el arcvivo xtartup y alli colocamos las siguientes lineas
xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
/usr/bin/fluxbox &
luego para colocar a rodar el servidor colocamos desde la terminal
vncserver :14 -geometry 1337x700
en el caso mio coloca esta resolucion de pantalla debido a que la terminal desde donde la voy a acceder tiene esta resolucion, esta resolucion es de acuerdo a la terminal donde estemos, este comando se lanza desde la terminal donde este el vncserver unicamente, el numero 14 es la posicion donde va a estar el display si el numero 14 ya fue tomado PREVIAMENTE el sistema le notificara y asi tendra que asignar un diferente numero,
del lado del cliente colocamos vncviewer 199.128.0.20:14 y listo ya tenemos nuestro escritorio liviano fluxbox rodando por medio de vncserver/cliente
la direccion IP que tenemos en pantalla es la direccion IP del servidor en donde se encuentra el VNCSERVER.
Wednesday, November 11, 2015
Friday, November 6, 2015
How to programmatically ajax-update specific component from ManagedBean
si desdeamos actualizar un componente Primefaces desde un ManagedBean, podemos realizar lo siguiente:
si dentro del archivo .xhtml tenemos varios formulario por ejemplo
<h:form id="formu1">
<p:dataTable id="tabla">
</p:dataTable>
</h:form> y deseamos actualizar un solo componente detntro de este formulario desde un ManagedBean ejecutarios
RequestContext.getCurrentInstance().update("formu:tabla");
o tambien podriamos colocar
RequestContext.getCurrentInstance().update(":formu:tabla");
o tambien podriamos colocar
si dentro del archivo .xhtml tenemos varios formulario por ejemplo
<h:form id="formu1">
<p:dataTable id="tabla">
</p:dataTable>
</h:form> y deseamos actualizar un solo componente detntro de este formulario desde un ManagedBean ejecutarios
RequestContext.getCurrentInstance().update("formu:tabla");
o tambien podriamos colocar
RequestContext.getCurrentInstance().update(":formu:tabla");
o tambien podriamos colocar
RequestContext context = RequestContext.getCurrentInstance(); context.execute(":formu:tabla.update()");
Ejecutar metodo ManagedBean desde javascript p:remoteCommand usando Primefaces
SI deseamos desde javascript ejectur un metodo en un ManagedBean usando primefaces, del lado del script ejecutamos
<script type="text/javascript">
correFuncion();
</script>
dentro del archivo .xhtml hacemos uso del<p:remoteCommand
<p:remoteCommand name="correFuncion" actionListener="#{ManagedBean_dos.ejecutaMetodoenManagedBean}"/>
Metodo para obtener solo numeros de una cadena
Con el siguiente metodo obtenemos solo los numeros que una cadena pueda contener
public String getAllNumbersFromString(String input) {
if (input == null || input.length() == 0) {
return "";
}
char c = input.charAt(input.length() - 1);
String newinput = input.substring(0, input.length() - 1);
if (c >= '0' && c<= '9') {
return getAllNumbersFromString(newinput) + c;
} else {
return getAllNumbersFromString(newinput);
}
}
public String getAllNumbersFromString(String input) {
if (input == null || input.length() == 0) {
return "";
}
char c = input.charAt(input.length() - 1);
String newinput = input.substring(0, input.length() - 1);
if (c >= '0' && c<= '9') {
return getAllNumbersFromString(newinput) + c;
} else {
return getAllNumbersFromString(newinput);
}
}
Enter Key on p:inputText -- Capturando la tecla ENTER en los p:inputText PRIMEFACES
Los <p:inputText en primefaces bien todos por defecto a ejecutar
submit cuando se da enter en ellos, pero hay momentos donde deseamos
ejecutar enter sobre una entrada input text en primefaces y nos lleve a
un metodo especifico sin que se ejecute submit sin nosotros haberlo
deseado, aqui la solucion
<h:inputText value="#{mBTransaccionalcaja.cantidad}" class="form-control" placeholder="Ingrese cantidad" onkeypress="if (event.keyCode == 13) {jQuery('#name').trigger('change'); return false; }">
<p:ajax event="keydown" listener="#{mBTransaccionalcaja.devueltas}" update=":formu:out" />
</h:inputText>
al colocar onkeypress="if (event.keyCode == 13) {jQuery('#name').trigger('change'); return false; }" sobre el inputText y luego al llamar metodo por medio de la entrada Ajax, podemos ejecutar un metodo presionando la tecla enter sobre una entrada de texto en Primefaces.
<h:inputText value="#{mBTransaccionalcaja.cantidad}" class="form-control" placeholder="Ingrese cantidad" onkeypress="if (event.keyCode == 13) {jQuery('#name').trigger('change'); return false; }">
<p:ajax event="keydown" listener="#{mBTransaccionalcaja.devueltas}" update=":formu:out" />
</h:inputText>
al colocar onkeypress="if (event.keyCode == 13) {jQuery('#name').trigger('change'); return false; }" sobre el inputText y luego al llamar metodo por medio de la entrada Ajax, podemos ejecutar un metodo presionando la tecla enter sobre una entrada de texto en Primefaces.
DAtatable enumeradas primefaces rowIndexvar
De esta manera los registros van a aparecer enumerados partiendo desde 1, y luego siguen incrementando
<p:dataTable rowIndexVar="rowId" value="..." var="...">
<p:column headerText="Remueve:">
<h:outputText value="#{rowId+1}" />
</p:column>
</p:dataTable>
Como eliminar un registro de una relacion ManytoOne
cuando tenemos 2 entidades por ejemplo
Pedidos -> this one is the Parent @OneToMany
PedidosDetalle -> this one is the Child @ManyToOne
@OneToMany(cascade=CascadeType.ALL,mappedBy="pedidos",fetch = FetchType.EAGER)
private List<PedidosDetalle> pedidosdetalle;
y queremos eliminar algun registro dentro de PedidosDetalle, lo podemos hacer de la siguiente forma, en mi caso cuando removi un registro de PedidosDetalle y luego realize merge o persist a Pedidos no me actualizaba el cambio que realizaba, de esta manera efectivamente lo pude lograr asi:
public void deletePedidosDetalles(int id) {
Query query = em.createQuery("delete From PedidosDetalle where id=:id");
query.setParameter("id", id);
int resultado = query.executeUpdate();
if(resultado>0){
System.out.println("Registro eliminado...........[OK]");
}
}
Pedidos -> this one is the Parent @OneToMany
PedidosDetalle -> this one is the Child @ManyToOne
@OneToMany(cascade=CascadeType.ALL,mappedBy="pedidos",fetch = FetchType.EAGER)
private List<PedidosDetalle> pedidosdetalle;
y queremos eliminar algun registro dentro de PedidosDetalle, lo podemos hacer de la siguiente forma, en mi caso cuando removi un registro de PedidosDetalle y luego realize merge o persist a Pedidos no me actualizaba el cambio que realizaba, de esta manera efectivamente lo pude lograr asi:
public void deletePedidosDetalles(int id) {
Query query = em.createQuery("delete From PedidosDetalle where id=:id");
query.setParameter("id", id);
int resultado = query.executeUpdate();
if(resultado>0){
System.out.println("Registro eliminado...........[OK]");
}
}