Cómo Trabajar con un Select de HTML con java y javascript

Cómo Trabajar con un Selectde HTML

con java y javascript

Cómoelegir el ítem seleccionado previamente por posición. 3

Continúaen la página siguiente... 3

Cómoelegir el ítem seleccionado previamente por valor 4

CómoVaciar un Select 4

 


Cómo llenar un Select de HTML con java y javascript

 

<script>               

//Llenado delCombo de Empresas

var i = 0;

<%

for(int i = 0; i <arlListEmpresas.size(); i++){

%>

document.getElementById("empresas").options[i] =

new Option('

<%=((SeleccionEmpresaDTO)arlListEmpresas.get(i)).nombre%>

');

 

document.getElementById("empresas").options[i].value=                

<%=((SeleccionEmpresaDTO)arlListEmpresas.get(i)).id%>;

i++;

<%

                  }

%>

Cómo elegir el ítem seleccionado previamente porposición

 

//Selección dela Empresaque se había seleccionado al presionar el botón Enviar

<%               

      if(!"0".equals(empresa)){                     

%>

//Se le deberestar uno dado que en javascript

//los índicesarrancan en 0

 

document.getElementById("empresas").selectedIndex=

<%=empresa%> - 1;

<%                     

      }

                 

%>               

</script>

 

Continúa en la páginasiguiente...


Cómo elegir el ítem seleccionado previamente porvalor

 

//Selección dela Empresaque se había seleccionado al presionar el botón Enviar por Valor

<%               

if(!"0".equals(empresa)){                     

%>

 

var jEmpresa = <%=empresa%>;                  

//alert("jEmpresa="+jEmpresa);

var arregloOpciones =

document.getElementById("empresas").options;

var fin = true;

for(var i = 0; (i < arregloOpciones.length) && (fin != false); i++){

//alert("arregloOpciones:"+arregloOpciones[i].value+"jEmpresa:"+jEmpresa+"i:"+i);

if(arregloOpciones[i].value == jEmpresa){                                                                     

document.getElementById("empresas").selectedIndex= i;

      fin = false;

}

}

<%                     

}                

%>               

//fin de laselección de la empresa buscada

 

Cómo Vaciar un Select

//Vaciado del Select

var i = selectObject.length;

while(i > 0){

      selectObject.remove(selectObject.options[i])

      i--;                   

}

 

Cómo cargar properties de un archivo de Texto

Cómo cargar properties de un archivo de Texto

 

      /**

       * @param key clave buscada en el archivo de configuración

       * @return String con el valor buscado mediante la clave

       * @throws Exception Exception en caso de error

       */

      public static StringgetProperty(String key) throws Exception{

            Properties properties = cargarProperties();

            String value =properties.getProperty(key);

            if (value != null){

                  return value;}

            else{

                  return "";       

            }

      }

    /**

     * @return Archivo de Propiedades de Impresión

     * @throws Exception en caso de error

     */

      protected static synchronized PropertiescargarProperties()throws Exception{

            Properties properties = new Properties();

                       

            try {            

                  File propertiesFile = new File("conf/impresion-tickets.properties");

                  if(propertiesFile.exists()){

                        properties.load(newFileInputStream(propertiesFile));

                  }

                 

            } catch (IOException e){

                  System.err.println(e.getMessage());

                  System.err.println("HAOCURRIDO UN ERROR AL BUSCAR EL ARCHIVO DE CONFIGURACIÓN DE IMPRESIÓN");

            }

            return properties;

      }

 

Cambiar el caracter de tabulación de Eclipse

Cambiar el caracter de tabulación de Eclipse

Ir a Window -> Preferences

Allí ir a

Java -> Code Style -> Formatter

Presionar Edit

Ir al Tab identation

En Tab Policy seleccionar spaces only ó tabs only

Presionar Apply, OK y listo

Diferencias de Código Fuente sin Motivo Aparente

Diferencias de Código Fuente

sin Motivo Aparente

Causas Posibles

Tabulaciones

Pueden estar usando el caracter TAB ASCII code 9

Pueden estar usando el caracter SPACE ASCII code 32

End Lines

Pueden estar usando

end lines de UNIX -> LF (char)10 Line Feed, New Line '\n'

end lines de MAC -> CR (char)13 Carriage Return '\r'

end lines de WINDOWS -> CRLF (char)13 '\r' (char)10 '\n'

 

 

 

Seteo del Charset para el Workspace en Eclipse

1.   Seteo del Charset para el Workspace en Eclipse

Ir a Window ->Preferences

General -> Workspace

Text File Encoding ->UTF-8

Comunicación con el Puerto Serie mediante la API JavaComm

Conexión de Tomcat con SQL Server

Conexión de Tomcat con SQL Server

Para que funcione la conexión de Tomcat con SQL Server, sele deberán proveer los jars que conforman el driver de conexión al Tomcat.

Para que funcione el Tomcat embebido en el Netbeans, losjars deben colocarse en

directorio-instalacion-netbeans\enterprise3\apache-tomcat-5.5.17\common\lib

Los jars necesarios son:

  • Msbase.jar
  • Mssqlserver.jar
  • Msutil.jar

 

Cómo crear un Init-Servlet

Cómo crear un Init-Servlet

  1. Crear un servlet
  2. Ponerle como nombre InitServlet
  3. Crearle un método public void init(){} donde pondremos el código de inicialización de nuestra aplicación.
  4. Abrir el archivo web.xml
  5. Agregarle por ejemplo:

<servlet>

        <servlet-name>InitServlet</servlet-name>

       <servlet-class>gettingstarted.servlets.InitServlet</servlet-class>

       <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

       <servlet-name>InitServlet</servlet-name>

        <url-pattern>/InitServlet</url-pattern>

</servlet-mapping>

Cómo hacer seleccionable una Tabla de Visual Web Pack y cómo trabajar con la selec

NetBeans - VisualWebPack – Cómo hacer seleccionable una Tabla de Visual Web Pack y cómotrabajar con la selección

Seteo de radio buttons para cada fila

  1. Seleccionar la tabla
  2. Presionar botón derecho -> Table Layout
  3. Presionar New
  4. En header text borrar el contenido
  5. En component type, seleccionar radio button
  6. En value expression borrar el contenido
  7. Seleccionar el campo agregado y subirlo para que aparezca a la izquierda de la tabla
  8. Presionar OK
  9. Agregar el siguiente código al bean de página
 
private TableSelectPhaseListener tablePhaseListener = 
new TableSelectPhaseListener();
    
   public void setSelected(Object object) {
       RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
       if (rowKey != null) {
           tablePhaseListener.setSelected(rowKey, object);
       }
   }
    
   public Object getSelected(){
       RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
       return tablePhaseListener.getSelected(rowKey);
        
   }
    
   public Object getSelectedValue() {
       RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
       return (rowKey != null) ? rowKey.getRowId() : null;
        
   }
    
   public boolean getSelectedState() {
       RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
       return tablePhaseListener.isSelected(rowKey);
   }
 
  1. Seleccionar el radio button
  2. Ir al cuadro de propiedades del radio button
    1. Ir a selected value
    2. Presionar el botón … que está a la derecha del recuadro en la línea de selected value
    3. Seleccionar use binding
    4. Seleccionar la pestaña bind to an object
    5. Seleccionar selectedValue
    6. Presionar OK
    7. Ir a selected
    8. Presionar el botón … que está a la derecha del recuadro en la línea de selected value
    9. Seleccionar use binding
    10. Seleccionar la pestaña bind to an object
    11. Seleccionar selected
    12. Presionar OK
    13. Ir a la propiedad avanzada name y poner allí como valor “radioButtonGroup”.
    14. Marcar las opciones visible, inmediate y rendered.
  3. Ir al cuadro de propiedades de la fila (ej.: tableRowGroup1).
    1. Ir a selected.
    2. Presionar el botón … que está a la derecha del recuadtro de selected.
    3. Seleccionar use binding.
    4. Seleccionar la pestaña bind to an object
    5. Seleccionar selectedState

Manejo de la Selección

Ejemplo que muestra por pantalla los ids de las filas seleccionadas

    public String button1_action() {
        int selectedRows = getTableRowGroup1().getSelectedRowsCount();
        RowKey[] selectedRowKeys = 
             getTableRowGroup1().getSelectedRowKeys();
        for(int i=0; i< selectedRowKeys.length; i++){
            int rowId = 
               Integer.parseInt(selectedRowKeys[i].getRowId()) + 1;
            info("Row " + rowId  + " is selected");
        }
        return null;
    }    

 

Ejemplo de uso para una modificación

 

    public String buttonModificarEmpresa_action() {
 // TODO: Process the button click action. Return value 
        is a navigation
        // case name where null will return to the same page.
        
        this.procesarModificacion();
        return "case2";
    }
 
    private void procesarModificacion(){
        RowKey[] selectedRowKeys = this.encontrarFilasSeleccionadas();
        for(int i=0; i< selectedRowKeys.length; i++){
      int rowId = 
           Integer.parseInt(selectedRowKeys[i].getRowId()) + 1;
            this.modificarEmpresa(rowId);
        }   
    }
 
    private void modificarEmpresa(int idArrayEmpresa){
            this.getRequestBean1().setIdArrayEmpresaSeleccionada(
    Integer.valueOf(idArrayEmpresa - 1));
    }
 

Deseleccionar todas las filas

tablePhaseListener.clear();

 

Método para encapsular la funcionalidad y que se entienda lo que estamoshaciendo

   private void setNullSelected(){   
       tablePhaseListener.clear();
   }

 

Métodos para encontrar las filas seleccionadas y trabajar con ellas

    private boolean procesarModificacion(){
        RowKey[] selectedRowKeys = this.encontrarFilasSeleccionadas();
        if(selectedRowKeys.length == 0){
            return false;
        }
        BeEmpresa beEmpresa =                                
(BeEmpresa)this.getSessionBean1().getEmpresaDataProvider().
               getObject(selectedRowKeys[0]);
        this.getRequestBean1().setBeEmpresa(beEmpresa);        
 
        return true;
    }   
    
    private RowKey[] encontrarFilasSeleccionadas(){
        int selectedRows = 
               this.getTableRowGroup1().getSelectedRowsCount(); 
        
        RowKey[] selectedRowKeys = 
               this.getTableRowGroup1().getSelectedRowKeys();
        
        return selectedRowKeys;
    }

Cómo trabajar con Virtual Forms y una Tabla para que la paginación no submitee

NetBeans - VisualWebPack

Cómo trabajar con Virtual Forms y una Tabla para que la paginación nosubmitee

 

Hay que seleccionar la tabla y marcar el check de la opción internalVirtualForm

 

 

Cómo hacer que un VirtualForm responda a los cambios de otro VirtualForm

NetBeans Visual Web Pack

 

Cómo hacer que un VirtualForm responda a los cambios de otro VirtualForm

 

Se debe usar la siguiente línea antes de realizar loscambios:

 

this.getForm1().discardSubmittedValues("virtualForm1");

Cómo hacer que el radio button de una tabla refresque el formulario vecino

NetBeans Visual Web Pack

Cómo hacer que el radio button de una tabla refresque el formulario vecino.

  1. Hay que marcar el radio button, presionar botón derecho y presionar donde diga Auto submit on change
  2. Luego hay que editar el método processValueChange, presionando botón derecho sobre el radio button y allí ir al submenú “Edit event handler” y allí al método processValueChange()
  3. Luego en el método processValueChange() utilizar un código similar al siguiente:

private void procesarClick(){
this.getForm1().discardSubmittedValues("virtualForm1");
RowKey rk = this.getTableRowGroup1().getRowKey();
BEEmpresa beEmpresa =
(BeEmpresa)this.getSessionBean1().getEmpresaDataProvider()
.getObject(rk);
this.getRequestBean1().setBeEmpresa(beEmpresa);
}


 

De esta maneraactualizaremos el bean de Empresa (beEmpresa) que está en el RequestBean y queestá asociado a los campos del formulario.

Pasos para armar una Tabla (Table Component) con Visual Web Pack

Netbeans – Visual Web Pack

Pasos para armar una Tabla (Table Component) con Visual Web Pack

1º) Crear el Data Provider

Ejemplo:

public class SucursalDataProviderextends ObjectListDataProvider {

   

   private List lstSucursales = new ArrayList();

   

    /**

     * Creates a new instance ofSucursalDataProvider

     */

   public SucursalDataProvider() {

        this.getLstSucursales().add(newBeSucursal());       

        this.setList(this.getLstSucursales());

        this.getList().remove(0);

   }

 

   public List getLstSucursales() {

        return this.lstSucursales;

   }

 

   public void setArlSucursales(List lstSucursales) {

        this.lstSucursales = lstSucursales;

   }

   

   public void refrescarTabla(Long idEmpresa) throws Exception {

       SucursalService sucursalService =(SucursalService)WebContext.getInstance().newService(SucursalService.class);

        this.getLstSucursales().clear();       

        List lstSucursales = new ArrayList();

        sucursalService.listarSucursalesPorEmpresa(idEmpresa,lstSucursales);

       this.getLstSucursales().addAll(lstSucursales);

   }

   

}

2º) Agregar el Data Provider al Bean de Session(SessionBean1.java)

    privateCajaDataProvider cajaDataProvider = new CajaDataProvider();

 

    public CajaDataProvidergetCajaDataProvider() {

        returncajaDataProvider;

    }

 

    public voidsetCajaDataProvider(CajaDataProvider cajaDataProvider) {

       this.cajaDataProvider = cajaDataProvider;

    }   

3º) Hacer Clean and Build del Proyecto

4º) Cerrar y volver a abrir el proyecto

5º) Arrastrar un Table Component a la Página que estamos armando

6º) Sobre el Table Component editar el título de la tabla yponer por ejemplo Listado de Cajas

7º) Seleccionar el Table Component, presionar botón derecho,bind to data.

8º) Seleccionar cajaDataProvider

9º) Seleccionar los campos que queremos mostrar y los queno. Ubicarlos en el orden deseado.

10º) Presionar botón derecho -> Table Layout

11º) Presionar new y subir el campo arriba de todo.

12º) Borrar el contenido en Header Text

13º) En component type seleccionar radio button

14º) En value expression borrar el contenido

15º) Presionar new nuevamente.

16º) En header text borrar el contenido

17º) En component type seleccionar button

18º) En value expression borrar el contenido

19º) Seleccionar las otras columnas una a una y elegir eltexto que queremos mostrar como header text de cada una.

20º) Cuando hayamos terminado presionar OK

21º) Ir al código java de la página

22º) Agregar al código los métodos de manejo de la tabla

 

    //MÉTODOS DEMANEJO DE LA TABLA--------------------------------------------------------------------------------------------------

   privateTableSelectPhaseListener tablePhaseListener = new TableSelectPhaseListener();

   

   public voidsetSelected(Object object) {

       RowKey rowKey= (RowKey)getValue("#{currentRow.tableRow}");

       if (rowKey !=null) {

          tablePhaseListener.setSelected(rowKey, object);

       }

   }

   

   public ObjectgetSelected(){

       RowKey rowKey= (RowKey)getValue("#{currentRow.tableRow}");

       Object o =tablePhaseListener.getSelected(rowKey);

       return o;

       

   }

  

   private voidsetNullSelected(){  

      tablePhaseListener.clear();

   }

   

   public ObjectgetSelectedValue() {

       RowKey rowKey= (RowKey)getValue("#{currentRow.tableRow}");

       Object o =(rowKey != null) ? rowKey.getRowId() : null;

       return o;

   }

   

   public booleangetSelectedState() {

       RowKey rowKey= (RowKey)getValue("#{currentRow.tableRow}");

       booleanisSelected = tablePhaseListener.isSelected(rowKey);      

       returnisSelected;

   }

   

    private RowKey[]encontrarFilasSeleccionadas(){

        intselectedRows = this.getTableRowGroup1().getSelectedRowsCount();

        

        RowKey[]selectedRowKeys = this.getTableRowGroup1().getSelectedRowKeys();

       

        returnselectedRowKeys;

    }

 

23º) Presionar Alt+Shift+F para organizar las importaciones(Fix Imports)

24º) Volver a la vista de Diseño de la Página

25º) En la ventana Outline buscar table1

26º) Expandir table1

27º) Expandir tableRowGroup1

28º) Expandir el primer tableColumn que aparezca

29º) Allí deberá aparecer el radioButton1

30º) Seleccionar el radioButton1

31º) Presionar botón derecho, auto submit on change

32º) Presionar botón derecho, edit event handler ->processValueChange

 

Ejemplo de Código del processValueChange

    public voidradioButton1_processValueChange(ValueChangeEvent event) {

        // TODO:Replace with your code

        this.procesarClick();

    }

    private voidprocesarClick(){

       this.getForm1().discardSubmittedValues("virtualForm1");

        RowKey rk =this.getTableRowGroup1().getRowKey();

        BeSucursalbeSucursal = (BeSucursal)this.getSessionBean1().getSucursalDataProvider().getObject(rk);       

       this.getRequestBean1().setBeSucursal(beSucursal);               

    }  

 

En este ejemplo el BeSucursal está en el RequestBean1 y a suvez está bindeado a un formulario al lado de la tabla, por lo que al hacer clicksobre un radio button muestra el contenido de la fila en el formulario.

 

33º) Ir a la ventana properties del radioButton1

34º) Buscar el valor selected

35º) Presionar el botón con tres puntitos a la derecha

36º) En la ventana que se abre seleccionar use binding

37º) Seleccionar la lengüeta bind to an object

38º) Seleccionar el objeto selected

39º) Presionar OK

40º) En la ventana properties del radioButton1 buscar elvalor selectedValue

41º) Presionar el botón con tres puntitos a la derecha

42º) En la ventana que se abre seleccionar use binding

43º) Seleccionar la lengüeta bind to an object

44º) Seleccionar el objeto selectedValue

45º) Seleccionar el tableRowGroup1

46º) Ir al cuadro de properties del tableRowGroup1

47º) Buscar el valor selected

48º) Presionar el botón con tres puntitos a la derecha

49º) En la ventana que se abre seleccionar use binding

50º) Seleccionar la lengüeta bind to an object

51º) Seleccionar el objeto selectedState

52º) Seleccionar la tabla (table1)

53º) Presionar botón derecho -> table layout

54º) Seleccionar la lengüeta options

55º) Seleccionar el checkbox enable pagination

56º) En page size dejar el valor 10 o poner el valor deseado

Nota: Este valor se tomará correctamente, aunque sise vuelve a visitar la opción se verá que pareciera estar guardado el valor 10,aunque esto no es así.

57º) Presionar OK

58º) En el recuadro de properties de table1 verificar queestén seleccionados paginateButton y paginationControls

59º) Seleccionar el check de la propiedadinternalVirtualForm

60º) En el recuadro de Outline, dentro de table1 seleccionarel último tableColumn y expandirlo. Allí debe encontrarse el botón que hemosagregado antes.

61º) Seleccionar el botón button(n)

62º) En el cuadro de propiedades ir a la propiedad id yponerle un id adecuado

63º) Presionar botón derecho sobre el botón y elegir laopción edit action Event Handler

64º) Nos abrirá el código java para editar la funcionalidaddel botón

Ejemplo de código del botón:

    public StringbuttonListadoCajas_action() {

        // TODO:Process the button click action. Return value is a navigation

        // case namewhere null will return to the same page.

        RowKey rk =this.getTableRowGroup1().getRowKey();

        BeSucursalbeSucursal = (BeSucursal)this.getSessionBean1().getSucursalDataProvider().getObject(rk);

       this.getSessionBean1().setBeSucursal(beSucursal);

        return null;

    }

Lo importante es que podemos recuperar el bean de la filadonde estaba el botón con este código.

 

Utilización de SQL Server 2000 con Aplicaciones JAVA

Utilización de SQL Server 2000 con Aplicaciones JAVA

String de Conexión

jdbc:microsoft:sqlserver://<host>:<port1433>;DatabaseName=<database>

Ejemplo:

jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=nombreDB

 

Archivos que componen el Driver

El Driver está compuesto por los archivos

  • msbase.jar
  • mssqlserver.jar
  • msutil.jar

Se deben incluir ambos para que funcione la conexión.

 

Usuario y Password

Como usuario y password estoy utilizando sa sa  por ahora.

 

En Netbeans Visual Web Pack, para conectar a la Base realizar los siguientespasos:

  1. Ir a la pestaña Runtime
  2. Ir a Database -> Drivers
  3. Sobre Drivers presionar botón derecho, new driver
  4. En Drivers files agregar msbase.jar, mssqlserver.jar y msutil.jar
  5. En Driver class debe ir com.microsoft.jdbc.sqlserver.SQLServerDriver
  6. En Name puede ir Microsoft SQL Server 2000 (Microsoft driver)
  7. Sobre el nuevo driver presionar botón derecho -> Connect Using
  8. En Name, elegir Microsoft SQL Server 2000 (Microsoft driver)
  9. En Driver debe ir com.microsoft.jdbc.sqlserver.SQLServerDriver
  10. En Database url debe ir por ejemplo jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=nombreDB
  11. En user poner por ejemplo sa
  12. En password poner por ejemplo sa
  13. Marcar el check Remember password during this session
  14. Para que funcione con TomCat copiar los archivos del driver a la carpeta D:\ides\netbeans-5.5.1\enterprise3\apache-tomcat-5.5.17\common\lib

Cómo incluir un archivo de javascript en una jsp de java server faces

NetBeans – VisualWebPack – Cómo incluir un archivo de javascript en una jsp de java serverfaces

 

Inclusión

Deben incluirse con el tag

<ui:script url=”/ruta/archivo.js”/>

 dentro del tag

<ui:head></ui:head>

 

Ejemplo

               <ui:head binding="#{AltaModificacionEmpresas.head1}"id="head1">

                   <ui:link binding="#{AltaModificacionEmpresas.link1}"id="link1"

url="/resources/stylesheet.css"/>

                   <ui:script url="/resources/controlIngresoCuit.js"/>

                   <ui:script url="/resources/controlIngresoNumerico.js"/>

                   <ui:script url="/resources/controlIngresoDecimal.js"/>

               </ui:head>

Cómo hacer para setear el botón por defecto al presionar Enter

NetBeans - VisualWebPack - Cómo hacer para setear el botón por defecto al presionar Enter

 

En el recuadro “Outline” deberá arrastrarse el componentedel botón lo más arriba posible, debajo de form1 o el nombre que le hayamosdado al formulario. De esta manera será el botón seleccionado por defecto alpresionar ENTER.

Error testing property 'id' in bean of type null

NetBeans – VisualWebPack - TroubleShooting - Error testing property 'id' in bean of typenull

 

En este caso el entorno del error era el siguiente:

Tenía un dropDownList asociado a un Entity Bean interno aotro Entity Bean.

Tenía Usuario -> Rol y el selected estaba asociado a rol.id

 

Hubo que asociar el selected a un Entity Bean de Rol situadodirectamente en el Request Bean y no al que estaba dentro de Usuario y a su vezdel Request Bean

Table Component Seleccionable Programáticamente

NetBeans – VisualWebPack – Table Component Seleccionable Programáticamente

 

Se logra una tabla seleccionable tanto por el usuario comoprogramáticamente mediante la utilización de un Map en el Bean de Sesión.

 

Agregar a la Páginaun Table Component.

Agregar una columna de checkboxes.

En el SessionBean1 colocar el siguiente código

 

    //SELECCIÓN DECHECKBOXES

    /**

     * Holds value ofproperty selectHolder.

     */

    private MapselectHolder=new HashMap();

 

    /**

     * Getter forproperty selectHolder.

     * @return Valueof property selectHolder.

     */

    public MapgetSelectHolder() {

        returnthis.selectHolder;

    }

 

    /**

     * Setter forproperty selectHolder.

     * @paramselectHolder New value of property selectHolder.

     */

    public voidsetSelectHolder(Map selectHolder) {

       this.selectHolder = selectHolder;

    }

   

    public voidlimpiarSelectHolder(){

       this.getSelectHolder().clear();

    }

 

En la JSP, enel tableRowGroup de la tabla con los checks agregar o modificar la siguientepropiedad

selected="#{SessionBean1.selectHolder[currentRow.tableRow.rowId]}"

 

En el checkBox interno al Table Component agregar o modificar la siguientepropiedad

selected="#{SessionBean1.selectHolder[currentRow.tableRow.rowId]}"

 


Marcar Elementos: Codigo en el bean de página  (Ejemplo)

private void marcarChecksSeleccionados(Rol rol){

List<Modulo> lstModulos =

this.getSessionBean1().getModuloDataProvider()

.getLstModulos();

      Iteratoriterator = rol.getModulos().iterator();

      while(iterator.hasNext()){

Modulo modulo =(Modulo)iterator.next();

      int index =this.encontrarIndice(modulo, lstModulos);

      if(index !=-1){               

this.getSessionBean1().getSelectHolder().put(

String.valueOf(index),new Boolean(true));

      }

   }

}

   

private int encontrarIndice(Modulo modulo,List<Modulo> lstModulos){

for (int i = 0; i <lstModulos.size(); i++) {

            Modulo modulo2 =(Modulo)lstModulos.get(i);

           if(modulo.getId().equals(modulo2.getId())){

               return i;

            }

      }

return -1;

}

 

Para ver cuáles filas fueron marcadas por el usuario será necesario elsiguiente código (Ejemplo)

 

List lstModulos = new ArrayList();  

List lstSeleccionados =

Arrays.asList(tableRowGroupModulos.getSelectedRowKeys());

      Iteratoriterator = lstSeleccionados.iterator();

      while(iterator.hasNext()){

            RowKey rowKey =(RowKey)iterator.next();           

            intindice =

Integer.valueOf(rowKey.getRowId()).intValue();

            Modulomodulo =

(Modulo)this.getSessionBean1()

.getModuloDataProvider().getList().get(indice);

           lstModulos.add(modulo);

        }

       if(lstModulos.size() < 1){

           error("No se ha seleccionado ningún Módulo");

           return;           

        }

 

Eliminar la selección

this.getSessionBean1().limpiarSelectHolder();       

Eliminación de Archivos y Carpetas del CVS

Eliminación de Archivos y Carpetas del CVS

 

  1. Primero copiar a otra parte del disco la parte que vamos a eliminar. Es decir, realizar un backup.
  2. Eliminar la/s carpetas a eliminar del proyecto.
  3. Realizar un commit en el CVS para que se haga la baja.
  4. Luego, en el archivo .cvsignore del directorio raíz del proyecto agregar las carpetas a ignorar.
  5. Dentro de las carpetas crear un archivo .cvsignore que tenga las carpetas internas y también puede contener el signo * para ignorar a todos los archivos.
  6. Eliminar la carpeta CVS de los distintos directorios.

Error markSelectedListItems

NB Visual Web Pack – TrobleShooting - Error markSelectedListItems

 

org.apache.catalina.core.ApplicationDispatcher invoke

GRAVE: El Servlet.service() para servlet jsp lanzó unaexcepción

java.lang.NullPointerException

        atcom.sun.rave.web.ui.component.ListSelector.markSelectedListItems(ListSelector.java:395)

        atcom.sun.rave.web.ui.component.ListSelector.processSelections(ListSelector.java:331)

        atcom.sun.rave.web.ui.component.ListSelector.getListItems(ListSelector.java:115)

Error relacionado con un Select Box o similar. No se puedehacer un bind de la propiedad selected con un atributo de un objeto que no seaun objeto. O sea que no se puede hacer el bind con un tipo primitivo.

Al hacer click sobre el radio button hace submit general aunque el radio button está

NetBeans - VisualWebPack - Error - Radio Button - Table Component - Virtual Forms - Alhacer click sobre el radio button hace submit general aunque el radio buttonestá en un virtualForm como corresponde

 

El problema puede haber surgido por haber renombrado latabla luego de haber armado la funcionalidad del radioButton.

 

  1. En la vista de JSP buscar el radioButton y en el atributo onClick verificar el nombre de la Tabla sea el que está seteado actualmente.

 

  1. Además revisar la declaración de los virtualforms donde probablemente haya quedado duplicada la entrada del radioButton.

 

  1. Revisar que se le haya chequeado la opción internalVirtualForm al Table Component.

Cómo bindear una Action a un TreeNode

NetBeans – VisualWebPack – Cómo bindear una Action a un TreeNode

 
Para bindear un Action Method a un Tree Node debemos:

1.  Crear el action method en el Page bean:
2. Por ejemplo: 

 

public String treeNode_action() {

// TODO: Replace with your code

String string =tree.getSelected();

String nivelId =

tree.getCookieSelectedTreeNode();

     

String strId =nivelId.substring(nivelId.lastIndexOf(":")+1);

     

// Find the tree node componentwith the given id

      TreeNodeselectedNode =

(TreeNode)this.getForm1().findComponentById(strId);

 

//This is a case where the nodeid starts with njsf and

//I need to recover the shortvalue of the id 

      String id =strId.substring("njsf".length());

     this.getSessionBean1().setSeleccionArbol(Short.valueOf(id));

 

        return null;

    }

treees el nombre de mi árbol en esta aplicación.


3.  Crear un MethodBinding. Por ejemplo:

MethodBinding mbAction =

application.createMethodBinding(

"#{pageBean.treeNode_action}",null);

 
4.  Agregar el Method Binding al TreeNode utilizando el método setAction(). Ejemplo:

treeNode.setAction(mbAction);

 
NOTA: No se debe agregar un hipervínculo al nodo porque sino no se llamará a la acción.

Cambiar el tamaño de la grilla del Visual Designer

NetBeans - VisualWebPack - Cambiar el tamaño de la grilla del Visual Designer

 

Ir al menú Tools

Seleccionar Options

Presionar el botón Advanced Options

Seleccionar Visual Designer

Cambiar los valores de la altura de la grilla (Grid Height) y el ancho (Grid Width)

Un valor mucho más práctico es 6 por ejemplo.

Problemas con JPA(Toplink) y la compilación de módulos

NetBeans – Platform – JPA - Problemas con JPA(Toplink)  y la compilación de módulos

 

En el library wrapper, ir a la carpeta nbproject, editar elarchivo project.xml

Agregar la inclusión de la biblioteca de toplink essentials,dentro de los tags <data> y </data>. NO DEJAR ESPACIOS ENTRE LOSTAGS.

 

Ej:

<class-path-extension>

<runtime-relative-path>

ext/toplink-essentials.jar

</runtime-relative-path>

<binary-origin>

D:/workspace/netbeans_workspace/ProductoDemo/producto-base-api/lib/toplink-essentials.jar

</binary-origin>

</class-path-extension>

 

Agregar que toplink sea de uso público con lo siguiente.También puede hacerse yendo a las properties del library wrapper, APIVersioning, y marcando todos los paquetes de toplink como public packages.

<public-packages>              

<package>com.organizacion.producto.base.api.beans</package>                <package>com.organizacion.producto.base.api.persistence</package>                <package>com.organizacion.producto.base.api.services</package>

      <package>javax.persistence</package>

     <package>javax.persistence.spi</package>

<package>oracle.toplink.essentials</package>               

<package>oracle.toplink.essentials.changesets</package>               <package>oracle.toplink.essentials.descriptors</package>               <package>oracle.toplink.essentials.descriptors.changetracking</package>               <package>oracle.toplink.essentials.descriptors.copying</package>               <package>oracle.toplink.essentials.descriptors.invalidation</package>               <package>oracle.toplink.essentials.ejb.cmp3</package>               <package>oracle.toplink.essentials.ejb.cmp3.persistence</package>               <package>oracle.toplink.essentials.exceptions</package>                <package>oracle.toplink.essentials.exceptions.i18n</package>               <package>oracle.toplink.essentials.expressions</package>                <package>oracle.toplink.essentials.indirection</package>               <package>oracle.toplink.essentials.internal.databaseaccess</package>               <package>oracle.toplink.essentials.internal.descriptors</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.annotations</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.base</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.jdbc.base</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.metadata</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.naming</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.naming.base</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.transaction</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.transaction.base</package>                <package>oracle.toplink.essentials.internal.ejb.cmp3.xml</package>               <package>oracle.toplink.essentials.internal.ejb.cmp3.xml.sequencing</package>               <package>oracle.toplink.essentials.internal.expressions</package>                <package>oracle.toplink.essentials.internal.helper</package>               <package>oracle.toplink.essentials.internal.helper.linkedlist</package>               <package>oracle.toplink.essentials.internal.identitymaps</package>               <package>oracle.toplink.essentials.internal.indirection</package>               <package>oracle.toplink.essentials.internal.localization</package>               <package>oracle.toplink.essentials.internal.localization.i18n</package>               <package>oracle.toplink.essentials.internal.parsing</package>               <package>oracle.toplink.essentials.internal.parsing.ejbql</package>               <package>oracle.toplink.essentials.internal.parsing.ejbql.antlr273</package>               <package>oracle.toplink.essentials.internal.queryframework</package>               <package>oracle.toplink.essentials.internal.security</package>               <package>oracle.toplink.essentials.internal.sequencing</package>               <package>oracle.toplink.essentials.internal.sessions</package>               <package>oracle.toplink.essentials.internal.weaving</package>                <package>oracle.toplink.essentials.jndi</package>               <package>oracle.toplink.essentials.logging</package>               <package>oracle.toplink.essentials.mappings</package>               <package>oracle.toplink.essentials.mappings.converters</package>               <package>oracle.toplink.essentials.mappings.foundation</package>               <package>oracle.toplink.essentials.platform.database</package>               <package>oracle.toplink.essentials.platform.database.oracle</package>               <package>oracle.toplink.essentials.platform.server</package>               <package>oracle.toplink.essentials.platform.server.oc4j</package>               <package>oracle.toplink.essentials.platform.server.sunas</package>                <package>oracle.toplink.essentials.platform.xml</package>               <package>oracle.toplink.essentials.platform.xml.jaxp</package>                <package>oracle.toplink.essentials.queryframework</package>               <package>oracle.toplink.essentials.querykeys</package>               <package>oracle.toplink.essentials.sequencing</package>               <package>oracle.toplink.essentials.sessions</package>               <package>oracle.toplink.essentials.threetier</package>                <package>oracle.toplink.essentials.tools.schemaframework</package>               <package>oracle.toplink.essentials.tools.sessionmanagement</package>               <package>oracle.toplink.essentials.transaction</package>                <package>oracle.toplink.essentials.transaction.oc4j</package>               <package>oracle.toplink.essentials.transaction.sunas</package>                <package>oracle.toplink.libraries.asm</package>               <package>oracle.toplink.libraries.asm.attrs</package>                <package>persistence.antlr</package>               <package>persistence.antlr.actions.cpp</package>               <package>persistence.antlr.actions.csharp</package>               <package>persistence.antlr.actions.java</package>                <package>persistence.antlr.collections</package>               <package>persistence.antlr.collections.impl</package>                <package>persistence.antlr.debug</package>               <package>persistence.antlr.debug.misc</package>                <package>persistence.antlr.preprocessor</package>          

</public-packages>

 

Todo va dentro del tag <data> </data>

Creación de la Ventana para mostrar el árbol de navegación

NetBeans – Platform – Creación de la Ventana para mostrar el árbol de navegación

  1. Crear un JPanel
  2. Hacer que herede de TopComponent y que implemente la interfaz ExplorerManager.Provider
  3. Implementar todos los métodos abstractos
  4. Agregar el siguiente miembro a la clase
  5. private final ExplorerManager mgr = new ExplorerManager();
  6. Agregar la devolución en el getter
  7. return mgr;
  8. En la vista de diseño agregar un JScrollPane que ocupe todo el Panel.
  9. Agregar en el constructor, después de initComponents agregar lo siguiente
  10.         associateLookup (ExplorerUtils.createLookup(mgr, getActionMap()));
  11.         mgr.setRootContext(new RootNode());
  12. Agregar el siguiente método para que no persista el estado
  13.     @Override
  14.     public int getPersistenceType(){
  15.         return PERSISTENCE_NEVER;
  16.     }
  17. Ir a Window – Navigating – Inspector y fijar esta vista para su posterior uso
  18. En la vista de diseño agregarle al Panel un BorderLayout
  19. Seleccionar el JScrollPane en la vista de diseño.
  20. En la vista de Diseño, ir al casillero de Properties – Code ir al casillero de Custom Creation Code y escribir new BeanTreeView(). Guardar, ir a la vista de Código Fuente y Organizar importaciones y volver a guardar.
  21. Creación de la Acción para mostrar el Editor
  22. Ir al package donde estamos trabajando, presionar botón derecho, nueva acción.
  23. Seleccionar Always Enabled y presionar next.
  24. Aceptar los defaults en la ventana siguiente y presionar next.
  25. En class name poner por ejemplo OpenEditorAction
  26. En display name poner por ejemplo abrir editor
  27. En el método performAction() agregar el siguiente código por ejemplo
  28.         Editor editor = new Editor();
  29.         editor.open();
  30.         editor.requestActive();

Cómo actualizar el Library Wrapper con el jar del proyecto que estamos rapeando

NB - Platform – Cómo actualizar automáticamente el módulo Library Wrappercon el jar del proyecto que estamos rapeando

 

  1. Hay que ir al proyecto que estamos wrappeando.
  2. Ir a la vista Files del proyecto.
  3. Ir a la carpeta nbproject.
  4. Editar el archivo project.properties
  5. Buscar la entrada dist.jar
  6. Cambiar su valor para que deje el jar donde lo tomará el library wrapper.
  7. De esta manera lo actualizará cada vez que volvemos a construir el proyecto.

 

Ejemplo:

Valor anterior:

dist.jar=${dist.dir}/general-library.jar

Nuevo valor

dist.jar=../general-library-wrp/release/modules/ext/general-library.jar

 

Encadenamiento de nodos

NetBeans Platform –Encadenamiento de Nodos

 

Nodo Raíz:

RootNode

package com.organizacion.producto.editor;

 

import org.openide.nodes.AbstractNode;

 

/**

 *

 * @author Juan

 */

public class RootNode extends AbstractNode {

    publicRootNode(){

        super(newRootNodeKids());

       setName("Root");

    }

}

 

Hijos del nodo raíz:

RootNodeKids extends Children.Keys<Cliente>

package com.organizacion.producto.editor;

 

import com.organizacion.producto.base.api.beans.Cliente;

import com.organizacion.producto.base.api.services.ClienteLocalServiceDummy;

import java.util.List;

import org.openide.nodes.Children;

import org.openide.nodes.Node;

 

/**

 *

 * @author Juan

 */

public class RootNodeKids extendsChildren.Keys<Cliente> {

 

    @Override

    protected Node[] createNodes(Clientecliente) {

        ClienteNodeclienteNode = new ClienteNode(cliente);

        return newNode[]{clienteNode};

    }

 

    @Override

    protected voidaddNotify() {

       ClienteLocalServiceDummy clsd = new ClienteLocalServiceDummy();

       List<Cliente> lstClientes = null;

        lstClientes =clsd.listar();

       setKeys(lstClientes);

    }

}

 


ClienteNode

package com.organizacion.producto.editor;

 

import com.organizacion.producto.base.api.beans.Cliente;

import org.openide.nodes.AbstractNode;

 

/**

 *

 * @author Juan

 */

public class ClienteNode extends AbstractNode {

 

    publicClienteNode(Cliente cliente) {

        super(newClienteKids(cliente));

        if(cliente !=null){

           setName(cliente.getDescripcion());

        }

    }

 

Hijos de ClienteNode:

ClienteKids extends Children.Keys<Domicilio>

package com.organizacion.producto.editor;

 

import com.organizacion.producto.base.api.beans.Cliente;

import com.organizacion.producto.base.api.beans.Domicilio;

import java.util.List;

import org.openide.nodes.Children;

import org.openide.nodes.Node;

 

/**

 *

 * @author Juan

 */

public class ClienteKids extendsChildren.Keys<Domicilio> {

 

    Cliente cliente;

 

    publicClienteKids(Cliente cliente) {

        this.cliente= cliente;

    }

 

    @Override

    protected Node[]createNodes(Domicilio domicilio) {

        DomicilioNodedomNode = new DomicilioNode(domicilio);

        return newNode[]{domNode};

    }

 

    @Override

    protected voidaddNotify() {

        Listdomicilios = cliente.getLstDomicilios();

       setKeys(domicilios);

    }

}

 


DomicilioNode

package com.organizacion.producto.editor;

 

import com.organizacion.producto.base.api.beans.Domicilio;

import org.openide.nodes.AbstractNode;

import org.openide.nodes.Children;

 

/**

 *

 * @author Juan

 */

public class DomicilioNode extends AbstractNode {

    publicDomicilioNode(Domicilio domicilio) {

       super(Children.LEAF);

        if(domicilio!= null){

           setName(domicilio.getCalle() + " " + domicilio.getAltura());

        }

    }

}

 

 

Cómo agregar un route a una PC a través de otra

Networking - Cómo agregar un route a una PC a través de otra


Agregado del Route

Inicio -> Ejecutar -> cmd

route add 10.94.188.121 192.0.5.221

agrega el route a una pc a través de otra

 

Eliminación del Route

Inicio -> Ejecutar -> cmd

route delete 10.94.188.121

remueve el route

 

Comprobación del funcionamiento del Route

Para comprobar el funcionamiento del route debemos hacerping a la PCruteada.

Ej.: ping 10.94.188.121

 

Conexión a la otra PC

Después podremos conectarnos a la PC utilizando la Conexión a EscritorioRemoto de Windows.


Java.lang.VerifyError Incompatible argument to function

JAVA – TroubleShooting - Java.lang.VerifyError Incompatible argument tofunction

 

Ejemplo del Error

java.lang.VerifyError: (class:com/org/producto/editor/controllers/ClienteFisicoController, method:<init> signature: (Lcom/org/producto/base/api/beans/ClienteFisico;Lcom/org/producto/editor/forms/ClienteFisicoForm;)V)Incompatible argument to function

Problema de Linkage: En mi caso se trataba de que losLibrary Wrappers que estaba usando en NetBeans tenían seteado el nivel de códigofuente a Java 1.4 y era necesario que estuviera seteado al menos a Java 1.5

 

Cómo cambiar el window position de un TopComponent

NetBeans – Platform – Cómo cambiar el window position de un TopComponent

 

  1. Los window position quedan plasmados en el archivo layer.xml
  2. Dentro del tag <folder name="Modes"> hay múltiples tags folder. Ej.: <folder name ="explorer">
  3. Dentro del tag folder, name explorer van listados todos los topcomponents que se verán en el window position explorer.
  4. Para cambiarlo de posición habrá que cambiar el tag file correspondiente al archivo *wstcref.xml del TopComponent dentro del tag folder donde queremos que vaya.

HTTP ERROR: 500 org.apache.commons.logging.LogFactory

BIRT - TroubleShooting - HTTP ERROR: 500 org.apache.commons.logging.LogFactory

Este problema quiere decir que al proyecto le falta la biblioteca commons-logging-api.jar
Podemos bajarla de:
http://vmgump.apache.org/gump/public-jars/commons-logging/jars/

Podemos ver más información de este problema en:
http://forum.java.sun.com/thread.jspa?threadID=5138376&tstart=30

Debemos copiarla en un Birt Web Project hecho con eclipse en la siguiente ruta:
nombre-de-proyecto\WebContent\WEB-INF\lib\
Ej.:
eclipse_workspace\intellicard-conciliador-administrator\WebContent\WEB-INF\lib\

Cómo configurar el plugin Sysdeo para que maneje el Tomcat desde Eclipse

JAVA – Tomcat – Eclipse

Nombre del PluginSysdeo

Nombre de la carpetacom.sysdeo.eclipse.tomcat_3.2.1

Nombre de un pathcompleto D:\ides\eclipse\plugins\com.sysdeo.eclipse.tomcat_3.2.1

 

Configuración para que encuentre el código fuente

Ir a Window -> Preferences -> Tomcat -> Source Pathy allí seleccionar el proyecto que queremos poder debuggear con Tomcat.

 

Configuración para que funcione el Tomcat con SysDeo

Copiar el archivo devloader.zip

Del directorio

D:\ides\eclipse\plugins\com.sysdeo.eclipse.tomcat_3.2.1

en el directorio

D:\webservers\tomcat5_5\server\classes

 

NetBeans - Visual Web Pack - Cómo crear el jar de un theme

NetBeans - Visual Web Pack - Cómo crear el jar de un theme


Poner el en pathla siguiente ruta o equivalente

Ir a Panel deControl -> Sistema

Allí ir aOpciones Avanzadas -> Variables de Entorno

En Variables deSistema buscar Path

Al final agregar(o equivalente)

;C:\jdk1.5.0_12\bin

para tener en elpath la herramienta jar

 

En el MANIFEST.MFse debe presionar enter al final de la última línea porque sino no la toma eljar packager

 

Ir al directoriod:\prueba

jar cmf d:\theme\META-INF\MANIFEST.MFtheme.jar *.*


NetBeans - VisualWebPack - Cómo modificar un THEME

NetBeans – VisualWebPack – Cómo modificar un THEME

Precondiciones

Poner el en path la siguiente ruta o equivalente

Ir a Panel de Control -> Sistema

Allí ir a Opciones Avanzadas -> Variables de Entorno

En Variables de Sistema buscar Path

Al final agregar (o equivalente)

;C:\jdk1.5.0_12\bin

para tener en el path la herramienta jar

Modificación del contenido del JAR

Primero deberemos descomprimir el JAR de un theme

Luego, modificaremos por ejemplo el archivo css_master.cssen la ruta:

com\sun\rave\web\ui\nombre-theme\css

 

Podremos agregar imágenes en la ruta:

com\sun\rave\web\ui\nombre-theme\images

a ser usadas por el mismo archivo CSS.

 

También podremos modificar los mensajes usados por el VisualWeb Pack en el archivo messages.properties ubicado en

com\sun\rave\web\ui\nombre-theme\messages

 

Tendremos que ajustar todos los archivos properties alcambio de nombre de la ruta. Los archivos están ubicados en

com\sun\rave\web\ui\nombre-theme\properties

Ajustes al archivo MANIFEST

Hay que modificar el archivo MANIFEST.MF y cambiarle el patha los recursos según como hayamos cambiado el path nosotros mismos.

Ej.:

Nosotros, en la ruta del theme modificaremos el nombre de lacarpeta nombre-theme

com\sun\rave\web\ui\nombre-theme

Ese renombramiento deberá quedar plasmado en el archivo MANIFEST.MFy luego deberemos usar dicho archivo MANIFEST para volver a armar el jar.

Enel MANIFEST.MF se debe presionar enter al final de la última línea porque sinono la toma el jar packager

Re-empaquetamiento del JAR

Ir al directorio donde está el contenido del theme yescribir lo siguiente

jar cmf path-a-carpeta-del-theme\META-INF\MANIFEST.MF nombre-del-theme.jar*.*

Ejemplo:

jar cmf D:\workspace\netbeans_workspace\themes\intellicard-theme\META-INF\MANIFEST.MFintellicard-theme.jar *.*

Agregado del Theme Library en NetBeans

Ir a Tools -> Library Manager

Allí posarse sobre Theme Libraries

Presionar el botón New Library

Escribir el nombre que le pusimos al jar

En el Tab ClassPath agregar el JAR presionando sobre elbotón Add JAR/Folder

Hacer lo mismo en el Tab Runtime

 

Precondiciones

Poner el en path la siguiente ruta o equivalente

Ir a Panel de Control -> Sistema

Allí ir a Opciones Avanzadas -> Variables de Entorno

En Variables de Sistema buscar Path

Al final agregar (o equivalente)

;C:\jdk1.5.0_12\bin

para tener en el path la herramienta jar

Modificación del contenido del JAR

Primero deberemos descomprimir el JAR de un theme

Luego, modificaremos por ejemplo el archivo css_master.cssen la ruta:

com\sun\rave\web\ui\nombre-theme\css

 

Podremos agregar imágenes en la ruta:

com\sun\rave\web\ui\nombre-theme\images

a ser usadas por el mismo archivo CSS.

 

También podremos modificar los mensajes usados por el VisualWeb Pack en el archivo messages.properties ubicado en

com\sun\rave\web\ui\nombre-theme\messages

 

Tendremos que ajustar todos los archivos properties alcambio de nombre de la ruta. Los archivos están ubicados en

com\sun\rave\web\ui\nombre-theme\properties

Ajustes al archivo MANIFEST

Hay que modificar el archivo MANIFEST.MF y cambiarle el patha los recursos según como hayamos cambiado el path nosotros mismos.

Ej.:

Nosotros, en la ruta del theme modificaremos el nombre de lacarpeta nombre-theme

com\sun\rave\web\ui\nombre-theme

Ese renombramiento deberá quedar plasmado en el archivo MANIFEST.MFy luego deberemos usar dicho archivo MANIFEST para volver a armar el jar.

Enel MANIFEST.MF se debe presionar enter al final de la última línea porque sinono la toma el jar packager

Re-empaquetamiento del JAR

Ir al directorio donde está el contenido del theme yescribir lo siguiente

jar cmf path-a-carpeta-del-theme\META-INF\MANIFEST.MF nombre-del-theme.jar*.*

Ejemplo:

jar cmf D:\workspace\netbeans_workspace\themes\intellicard-theme\META-INF\MANIFEST.MFintellicard-theme.jar *.*

Agregado del Theme Library en NetBeans

Ir a Tools -> Library Manager

Allí posarse sobre Theme Libraries

Presionar el botón New Library

Escribir el nombre que le pusimos al jar

En el Tab ClassPath agregar el JAR presionando sobre elbotón Add JAR/Folder

Hacer lo mismo en el Tab Runtime

 

Notas para el uso de BIRT

Notas para el uso de BIRT

  1. No usar caracteres especiales como á, é, í, ó, ú, º, etc. en los reportes.
  2. No usar AS en los Queries utilizados.
  3. He detectado que al utilizarlos el reporte no funciona solamente en el deploy, haciéndonos creer que si anda cada vez que hacemos un preview.
  4. Al utilizar una librería, en mi caso pasaba que en el código fuente del reporte (xml source) el archivo de la librería aparecía con el path WebContent/nombre_libreria. Tuve que eliminar Webcontent/ para que funcionara durante el deploy, ya que esa ruta no existía en mi deploy.

 

SQL – Cómo hacer un query con subqueries

SQL – Cómo hacer un query con subqueries

Este query con dos subqueries anidados trae todos losclientes con la última fecha de compra y la última fecha de pago de DATABASE

Los subqueries solo pueden devolver una columna de datos.

En los subqueries se referencia a la tabla externa en lalínea t.nro_clt = c.nro_clt.

De esa manera los queries internos están relacionados con elquery externo mayor.

 

select

c.*,

(     selectmax(t.fecha_oper)

from trans_on t

where t.tipo_trans = 'COMPRA'

AND t.nro_clt = c.nro_clt

) maxfechacompra,

(     selectmax(t.fecha_oper)

from trans_on t

where t.tipo_trans = 'PAGO'

AND t.nro_clt = c.nro_clt

) maxfechapago

from clientes c

 

 

SQL – Cómo hacer un query con max () o min( )

SQL – Cómo hacer un query con max () o min( )

 

El problema radica en querer obtener alguna columnaadicional además de la que estamos haciendo el máximo

Es muy sencillo hacer

SELECT MAX(t.fecha)

FROM Transacciones t

 

Lo complicado es conseguir que el query nos devuelva algunacolumna más

Ej. El número de cliente

Eso se logra adicionando el campo adicional (valga laredundancia) a la cláusula GROUP BY

Así

SELECT MAX(t.fecha_oper), t.nro_clt

FROM Trans_on t

GROUP BY t.nro_clt

JAVA - CHARSETS - Cómo Transformar un String en un Stream con un determinado Charset

JAVA - CHARSETS - Cómo Transformar un String en un Stream con un determinado Charset

Recibe un String de nombre cadenaOriginal

ByteArrayOutputStream stream = new ByteArrayOutputStream();
Writer writerr = new OutputStreamWriter(stream, "UTF-8");
writerr.write(cadenaOriginal);
writerr.flush();
//debuggin :)
System.out.write(stream.toByteArray());


Configurar acceso TCP/IP para poder utilizarlo con JAVA (jdbc)

SQL SERVER 2005 – Configurar Acceso TCP/IP para poder utilizarlo con JAVA

 

  1. Ir a Configuration Tools ->SQL Server Configuration Manager
  2. Desplegar el item SQL Server 2005 Network Configuration
  3. Hacer click en Protocols for…
  4. Seleccionar TCP/IP
  5. Hacer botón derecho -> Enable
  6. Hacer botón derecho -> Properties
  7. Ir a la lengüeta IP Adresses
  8. Ir abajo de todo adonde dice IPAll
  9. En TCP Port escribir el port que queramos usar. Por ejemplo 1433.
  10. Ir al Microsoft SQL Server 2005 Management Studio.
  11. Seleccionar la instancia del motor de base de datos.
  12. Presionar botón derecho STOP
  13. y luego botón derecho START
  14. Ya deberíamos poder conectarnos.

Problemas usando métodos de javascript sobre los parámetros de los reportes

http://dev.eclipse.org/mhonarc/lists/birt-dev/msg05968.html

 

Extracto del sitio de BIRT, traducido al español:

Cambiamos la semántica de los parámetros para soportar la utilización del value y del display text. Esto causó que param['name'] retornara diferentes objetos con la versión 2.1.0. Por lo tanto la función param['name'].value no puede ser accedida a través de param['name']

Si un método no es soportado utilizando param['name'], llámelo utilizando la forma param['name'].value para conservar la compatibilidad.



Unix – Cómo cambiar los line ends de todos los archivos de un directorio

Unix – Cómo cambiar los line ends de todos los archivos de un directorio

Comoel comando dtox soporta solamente que se escriba archivo por archivo, podremosescribir un script para hacerlo.

Escribiremospara ello:

vi script 

for FILEin `ls *`

do

       dtox ${FILE} > pepe

       mv -f pepe ${FILE}

done

shift ZZ (guarda en vi)

botónderecho pega en vi (puede hacer falta presionar la a para cambiar a modoinsert) 

Paraejecutar el script podemos hacer

shscript 

osino estos dos pasos:

chmod +xscript

./script

 

Aclaraciones

En el script se utlizan las comillas inclinadas tal cual seve en el texto.

 

INFORMIX - Pasar una DB a transaccional y viceversa

INFORMIX - Pasar una DB a transaccional y viceversa

Pasos

  1. Hay que conectarse al motor con el usuario informix, password pepe
  2. Luego, para pasar a transaccional hay que tipear

ontape –s –B database

  1. Para pasar la DB a No Transaccional hay que tipear

ontape –S –N

  1. Cuando pregunte el level of archive hay que tipear 0 (cero) porque antes del pasaje pide hacer un backup. Al poner 0 (cero) manda el backup a /dev/null que es un agujero negro donde lo que se escribe se pierde.

 

Manera de cargar un archivo cuando una aplicación funciona como servicio

Java Service - Código necesario para que se carguen correctamente los archivos cuando la aplicación funciona como servicio


            File propertiesFile = new File("conf/impresion-tickets.properties");
            //Línea necesaria para que funcione en Deploy como servicio
            propertiesFile = new File(propertiesFile.getAbsolutePath());

Excepción:[Microsoft][ODBC SQL Server Driver]Índice descriptor no válido

SQL Server – TroubleShooting - Excepción:[Microsoft][ODBC SQL ServerDriver]Índice descriptor no válido

 

Al leer el ResultSet se están leyendo los campos en otroorden del que están listados en el query.

Es decir, si hacemos

SELECT Nombre, Apellido FROM Persona

debemos hacer

rs.getString(“Nombre”)

rs.getString(“Apellido”)

 

Si hacemos

rs.getString(“Apellido”)

rs.getString(“Nombre”)

obtendremos esta excepción

 

donde rs es la instancia de la clase ResultSet

JPA – Solución de Problemas con Firebird - Mal uso de los tipos de datos soportados

JPA – Solución de Problemas con Firebird - Mal uso delos tipos de datos soportados

 

Para solucionar el problema del uso de tipos de datosincorrectos con Firebird hay que escribir la siguiente clase que extiende deDataBasePlatform y agregar una línea en el persistence.xml con su ubicación.

*** FIREBIRD ***

 

/**

 * $Id$

 */

package com.organizacion.persistence.toplink;

 

import java.math.BigDecimal;

import java.math.BigInteger;

import java.util.Hashtable;

 

importoracle.toplink.essentials.internal.databaseaccess.FieldTypeDefinition;

importoracle.toplink.essentials.platform.database.DatabasePlatform;

 

/**

 * @author

 *

 */

public class CustomFirebirdPlatform extendsDatabasePlatform {

 

               

               @Override

               protected Hashtable buildFieldTypes() {

                              Hashtable fieldTypes = super.buildFieldTypes();

                              

                              fieldTypes.put(Long.class, new FieldTypeDefinition("INTEGER"));

                              fieldTypes.put(Integer.class, new FieldTypeDefinition("INTEGER"));

                              fieldTypes.put(BigInteger.class, new FieldTypeDefinition("INTEGER"));

                              fieldTypes.put(BigDecimal.class, newFieldTypeDefinition("DECIMAL").setLimits(9,0,9));

                              fieldTypes.put(Short.class, new FieldTypeDefinition("SMALLINT"));

                              

                              return fieldTypes;

                              

               }

}

 

<propertyname="toplink.target-database"value="com.organizacion.persistence.toplink.CustomFirebirdPlatform" />

 

JPA – Solución de Problemas con Informix al usar herencia

JPA – Solución de Problemas con Informix al usarherencia

 

Para solucionar el problema de Informix hay que crear unaclase que extienda de InformixPlatform y agregarla en el archivopersistence.xml

***INFORMIX ***

 

/**

 *$Id$

 */

packagecom.organizacion.persistence.toplink;

 

importoracle.toplink.essentials.platform.database.InformixPlatform;

 

/**

 * @author

 *

 */

public class CustomInformixPlatform extends InformixPlatform {

 

               /**

                *

                */

               private static final long serialVersionUID = 761274534308369443L;

 

               /**

                * @seeoracle.toplink.essentials.platform.database.InformixPlatform#isInformixOuterJoin()

                */

               @Override

               public boolean isInformixOuterJoin() {

                              return false;

               }

}

 

En elpersistence.xml agregás

<propertyname="toplink.target-database" value="com.organizacion.persistence.toplink.CustomInformixPlatform"/>

 

CSS - Problemas para cargar una hoja de estilos en una página de login

CSS - Problemas para cargar una hoja de estilos en una página de login

 

El problema puede ser que el filtro esté filtrando losarchivos de tipo css. Podría estar pasando esto por estar filtrando todos lostipos de archivos.

 

Se recomienda revisar el archivo web.xml

 

Caso que generó el documento:

 

Fragmento de web.xml antes de los cambios

 

    <filter>

      <filter-name>Login</filter-name>

      <filter-class>com.organizacion.producto.report.filters.AccessControlFilter</filter-class>     

      <init-param>

            <param-name>loginPage</param-name>

            <param-value>/jsp/login.jsp</param-value>

      </init-param>

  </filter>

  <filter-mapping>

      <filter-name>Login</filter-name>

      <url-pattern>*</url-pattern>      

  </filter-mapping>

 

Fragmento de web.xml después de los cambios

 

    <filter>

      <filter-name>Login</filter-name>

      <filter-class>com.organizacion.producto.report.filters.AccessControlFilter</filter-class>     

      <init-param>

            <param-name>loginPage</param-name>

            <param-value>/jsp/login.jsp</param-value>

      </init-param>

  </filter>

  <filter-mapping>

      <filter-name>Login</filter-name>

      <url-pattern>*.jsp</url-pattern>        

  </filter-mapping>

 

JavaScript - Trabajo con un SELECT

Nota: Este artículo no es de mi autoría

JavaScript – Trabajo con unSELECT

Ejemplo de acceso a un select

Vamos a ver un ejemplo sobre cómo se accede a un select con Javascript, comopodemos acceder a sus distintas propiedades y a la opción seleccionada.

Vamos a empezar viendo el formulario que tiene el select con el que vamos atrabajar. Es un select que sirve para valorar el web que estamos visitando.

<formname="fomul">
Valoración sobre este web:
<select name="miSelect">
<option value="10">Muy bien
<option value="5" selected>Regular
<option value="0">Muy mal
</select>
<br>
<br>
<input type=button value="Dime propiedades"onclick="dimePropiedades()">
</form>


Ahora vamos a ver una función que recoge las propiedades más significativas delcampo select y las presenta en una caja alert.

functiondimePropiedades(){
    var texto
    texto = "El numero de opciones delselect: " + document.formul.miSelect.length
    var indice =document.formul.miSelect.selectedIndex
    texto += "\nIndice de la opcionescogida: " + indice
    var valor =document.formul.miSelect.options[indice].value
    texto += "\nValor de la opcionescogida: " + valor
    var textoEscogido =document.formul.miSelect.options[indice].text
    texto += "\nTexto de la opcionescogida: " + textoEscogido
    alert(texto)
}

MYSQL - Cómo cambiar el password de ROOT

MYSQL - Cómo cambiar el password de ROOT

1.      Abrir el command (Inicio -> Ejecutar ->cmd)

2.      Ir a la ubicación del motor de mysql

Ej:

d:

cd DBs\"MySQL Server 6.0"\bin

3.      Ejecutar las siguientes instrucciones:

mysql -u root -p
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

mysql> exit

Espacio de almacenamiento insuficiente en el servidor para procesar este comando

Windows – Compartir Archivos – Error – Espacio de almacenamientoinsuficiente en el servidor para procesar este comando.




http://support.microsoft.com/kb/177078/es

El software antivirus puede producirla aparición del suceso 2011

Ver los productos a los que seaplica este artículo

Id. de artículo

:

177078

Última revisión

:

viernes, 21 de abril de 2006

Versión

:

6.3

Importante
Esteartículo contiene información acerca de cómo modificar el Registro. Antes demodificar el Registro, asegúrese de hacer una copia de seguridad del mismo y deque sabe cómo restaurarlo si se produce algún problema. Para obtener másinformación acerca de cómo realizar una copia de seguridad, restaurar ymodificar el Registro, haga clic en el número de artículo siguiente para verloen Microsoft Knowledge Base:

256986 (http://support.microsoft.com/kb/256986/)Definición del Registro de Microsoft Windows

Síntomas

Después deinstalar Norton Antivirus para Windows o IBM AntiVirus 3.01N (compilación301.590), aparecen los mensajes de error siguientes:

Espacio dealmacenamiento insuficiente en el servidor para procesar este comando.

y

No haysuficiente memoria para completar la transacción. Cierre algunas aplicaciones yvuelva a intentarlo.

Los clientesno pueden tener acceso a los recursos compartidos de red. Además, el Visor desucesos del servidor Windows puede registrar algunos de los sucesos siguientesen el registro del sistema:

   Id. delsuceso: 2011 Origen: Descripción de servidor: El parámetro de configuración"IRPStackSize" del servidor es demasiado pequeño para que el servidorpueda usar un dispositivo local. Aumente el valor de este parámetro.

                              

http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gifVolver al principio

Solución

Advertencia
Puedenproducirse problemas graves si modifica incorrectamente el Registro mediante elEditor del Registro o con cualquier otro método. Estos problemas puedenrequerir que reinstale el sistema operativo. Microsoft no puede garantizar lasolución de esos problemas. Modifique el Registro bajo su responsabilidad. Paraevitar este comportamiento, aumente el valor de IRPStackSize en elRegistro:

1.

Haga clic en Inicio y, a continuación, haga clic en Ejecutar.

2.

Escriba regedit y haga clic en Aceptar.

3.

Busque la siguiente clave:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

4.

En el panel derecho, haga doble clic en el valor IRPStackSize.

NOTA
Si el valor de IRPStackSize no existe aún, utilice el procedimiento siguiente para crearlo:

a.

En la carpeta Parameters del Registro, haga clic con el botón secundario del mouse (ratón) en el panel derecho.

b.

Seleccione Nuevo y haga clic en Valor DWord.

c.

Escriba IRPStackSize.

IMPORTANTE
Escriba "IRPStackSize" tal y como aparece porque en el nombre del valor se distinguen mayúsculas y minúsculas.

5.

Cambie la base a decimal.

6.

En el cuadro Información del valor, escriba un valor mayor del que aparezca.

Si creó el valor IRPStackSize con el procedimiento descrito en el paso 4, el valor predeterminado es 15. Se recomienda que aumente el valor en 3. Por tanto, si el valor anterior era 11, escriba 14 y haga clic en Aceptar. En mi caso funcionó al utilizar el valor 30. Con 15 no hubo resultado.

7.

Cierre el Editor del Registro.

8.

Reinicie el equipo.

Si elproblema persiste después de completar el procedimiento anterior, pruebe aincrementar el valor de IRPStackSize aún más. El valor máximo en Windows2000 es 50 (0x32, en hexadecimal).

Si utiliza Windows NT 4.0 y el problema persiste después de completar elprocedimiento anterior, puede que tenga que aplicar el Service Pack 4 o elService Pack 5 de Windows NT.

http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gifVolver al principio

Más información

En WindowsNT 4.0, el valor predeterminado de IRPStackSize es 0x4 y el intervalocomprende de 0x4 a 0xC (4-12). Windows NT 4.0 con el Service Pack 5 o unaversión posterior pasa por alto los valores menores de 0x7.

En Windows 2000, el valor predeterminado de IRPStackSize es 15 y elintervalo comprende de 11 a 50. En Windows XP, el valor predeterminado para IRPStackSizees 15 y el intervalo comprende de 11 a 50.

NOTA
El valor predeterminado y el intervalo de Microsoft Windows Server 2003 soniguales que para Windows XP. Para obtener más información, haga clic en elnúmero de artículo siguiente para verlo en Microsoft Knowledge Base:

106167(http://support.microsoft.com/kb/106167/) Mensaje de error: Espacio dealmacenamiento insuficiente en el servidor

NOTA
En elartículo anterior se recomienda que aumente el valor de IrpStackSize;sin embargo, si aumenta este valor hasta su máximo (por ejemplo, si aumentaeste valor al valor máximo de 12 en un equipo que ejecuta Windows NT 4.0 o almáximo de 50 en un equipo que ejecuta Windows 2000), este comportamiento puedeseguir produciéndose.

Para obtener más información, haga clic en el número de artículo siguienteacerca de IRPStackSize para verlo en Microsoft Knowledge Base:

198386(http://support.microsoft.com/kb/198386/) Cambios en el tamaño de la pila IRPen Lanman Server

Para obtenermás información al respecto, visite los siguientes sitios Web de Symantec:

http://service1.symantec.com/SUPPORT/ent-security.nsf/552ba2f7636bedf088256818006f78bf/b169373034dbfd1588256a2200272574?OpenDocument&src=bar_sch_nam(http://service1.symantec.com/SUPPORT/ent-security.nsf/552ba2f7636bedf088256818006f78bf/b169373034dbfd1588256a2200272574?OpenDocument&amp;src=bar_sch_nam)

http://service1.symantec.com/SUPPORT/ent-security.nsf/9d94c8571a91ba4788256bf3007f62b5/1b2df18cc3f5dedd88256ddd0082f2ea?OpenDocument&src=bar_sch_nam(http://service1.symantec.com/SUPPORT/ent-security.nsf/9d94c8571a91ba4788256bf3007f62b5/1b2df18cc3f5dedd88256ddd0082f2ea?OpenDocument&src=bar_sch_nam)

NOTA
La ubicaciónde estos documentos está sujeta a cambios sin previo aviso. Symantecproporciona estos vínculos únicamente para su comodidad. La inclusión de talesvínculos no implica que Symantec apruebe, recomiende ni acepte ningunaresponsabilidad sobre su contenido.

Microsoft proporciona información de contacto con otros proveedores paraayudarle a encontrar soporte técnico. Esta información de contacto puedecambiar sin previo aviso. Microsoft no ofrece ninguna garantía con respecto ala exactitud de esta información de contacto con otros proveedores.

Los productos de terceros que analiza este artículo están fabricados porcompañías independientes de Microsoft. Microsoft no otorga ninguna garantía,implícita o de otro tipo, con respecto al rendimiento o la confiabilidad deestos productos.

http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gifVolver al principio


La información de este artículo se refiere a:

Microsoft Windows XP Professional

Microsoft Windows XP Home Edition

Microsoft Windows XP 64-Bit Edition

Microsoft Windows XP Tablet PC Edition

Microsoft Windows 2000 Advanced Server

Microsoft Windows 2000 Professional Edition

Microsoft Windows 2000 Datacenter Server

Microsoft Windows NT Workstation 4.0 Developer Edition

Microsoft Windows NT Server 4.0 Standard Edition

Microsoft Windows NT Server 4.0 Enterprise Edition

Microsoft Windows Server 2003, Standard Edition (32-bit x86)

 

FTP Comandos y Uso

FTP Comandos y Uso

Ejemplo para bajar un archivo de un ftp

ftp 10.200.4.4

usuario pepe

password pipo

bi para pasar a binario

hash para que se muestren marcas durante la obtención delarchivo

mget nombre_de_archivo

mget archivo.bi

Se obtendrá una copia del archivo en el directorio desde elcual se hizo la conexión ftp.

 

Envío de un archivo

ftp 192.0.5.221

usuario pepe

password pipo

bi para pasar a binario

hash para que se muestren marcas durante el envío delarchivo

put nombre_de_archivo

put archivo.bi

Se enviará el arhivo a destino

 

pwd print working directory = Imprime el directorio actual

cd change

help Imprime la ayuda

help nombreComando Imprime la ayuda de un comando

 

 

Informix – Cómo agrandar el espacio disponible para el motor de DB

Informix –  Cómo agrandar el espaciodisponible para el motor de DB

La manera es agregar un cookie file a la DB cuando ya notiene más espacio.

onstat –d

lista los cookie files que ya tiene asignadas la DB. Laspáginas tienen 512 KB

Parte de Unix

>cookfs7

crea el archivo vacío

Para que funcione, el owner y el grupo tiene que serinformix

Eso se logra con la siguiente instrucción

chmod 0660 cookfs7

Queda el siguiente seteo de permisos

Owner

Group

Rest

rw

rw

nada

Aquí  termina la partede UNIX.

Parte de Informix

Ahora hay que agregarlo al motor.

Ingresamos a la administración con

onmonitor

Vamos a DBSpaces -> Add chunk

Seleccionamos Root db space con CRTL+B

El uso del Root DB Space en realidad es para las tablas delInformix

Se suele crear otro DB Space para los datos y otro para losdatos temporarios.

En full path name poner por ejemplo: /u4/cookfs7

En offset poner 0

En Size poner el tamaño en KB. Tiene que ser un múltiplo deltamaño de las páginas que son de 512KB. Ejemplo: 2048000 que esalrededor de 2GB.

Si escribimos !sh abre unanueva Shell sin salir de onmonitor

INFORMIX – Cómo importar y exportar DBs

INFORMIX – Cómo importar y exportar DBs

 

Para exportar una db se utiliza el comando dbexportseguido del nombre de la DB a exportar

Ej: dbexport nombredb

Esto genera una carpeta con el nombre de la DB y extensión exp que tendrá adentro tantos archivos como tablasmás uno. Éstos archivos tendrán extensión unl. Habrá unarchivo adicional con extensión sql y el nombrede la DB.

Para importar una DB se utiliza el comando dbimport

Ej: dbimport nombredb –d [dbspace elegido]

En el path donde se ejecuta la instrucción dbimport debe haber una carpeta llamada nombredb.exp que adentro contenga todos losarchivos de la exportación con extensión *.unl  y con la primer parte del nombre de la tabla ytres dígitos numéricos.

 

It is NOT certain that the key belongs to the person named in the user ID.

GPG - Cómo solucionar el problema de este mensaje:
It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Ir a Inicio, Ejecutar, tipear cmd y presionar aceptar.
Una vez en el command tipear:
gpg --edit-key trx_bzt@organizacion.org trust
Cuando lo pida, seleccionar la opción 5 que corresponde a I trust ultimately
Luego escribir quit y presionar ENTER.

DOS SHELL - Cómo generar una pausa por determinado tiempo - Sleep de n segundos

DOS SHELL SCRIPT - Cómo generar una pausa por determinado tiempo - Sleep de n segundos

rem Espera 10 segundos
echo Antes del Sleep de 10 segundos
PING -n 10 127.0.0.1 > nul
echo Despues del Sleep

Ejemplo genérico
echo Antes del Sleep de cantSegundos segundos
PING -n cantSegundos 127.0.0.1 > nul
echo Despues del Sleep

Albergado en:blogspot.es

Noticias: Noticias