AnsweredAssumed Answered

Obtener valor

Question asked by xsaettone on Dec 15, 2009
Buenas compañeros!!

quizá consideren que mi duda es muy simple…. y les daría la razón, pero no he logrado hacerlo y es por ello que hoy les consulto.

Lo que he intentado es conseguir el valor almacenado en un campo de modo tal que lo pueda utilizar en una consulta para validar que ya no exista; este valor necesito obtenerlo antes de darle al botón guardar.

He estado revisando los hilos:
http://forums.alfresco.com/es/viewtopic.php?f=12&t=2113
http://forums.alfresco.com/en/viewtopic.php?f=27&t=23085

No estoy segura si me explico correctamente, tal vez la imágen me pueda ayudar:

[img]http://es.zimagez.com/miniature/pantallazo-modificarpropiedadesdelcontenido-mozillafirefox.png[/img]

Tengo una clase (copiada), que es donde quisiera utilizar el valor que esta en pantalla.


package org.alfresco.sample.CodeLabelExtend;

import java.util.ArrayList;
import java.util.List;
import java.sql.*;

import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.alfresco.web.bean.generator.BaseComponentGenerator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.io.Serializable;
import javax.faces.model.SelectItem;

public class ListOfValuesQueryConstraint extends ListOfValuesConstraint implements Serializable {

    private static Log logger = LogFactory.getLog(BaseComponentGenerator.class);
   
    private static final long serialVersionUID=1;
   
    private List<String> allowedLabels;
   
    public void setAllowedValues(List allowedValues) {}
    public void setCaseSensitive(boolean caseSensitive) {}

    public void initialize() {
       super.setCaseSensitive(false);
        this.loadDB();
     }
   
    public List<String> getAllowedLabels() {
       return this.allowedLabels;
    }
   
    public void setAllowedLabels(List<String> allowedLabels) {
       this.allowedLabels=allowedLabels;
    }
   
     public List<SelectItem> getSelectItemList() {
       List<SelectItem> result = new ArrayList<SelectItem>(this.getAllowedValues().size());
       for(int i=0;i<this.getAllowedValues().size();i++) {
          result.add(new SelectItem((Object)this.getAllowedValues().get(i),this.allowedLabels.get(i)));
       }
       return result;
    }
   
     protected void loadDB() {
       
        String driverName = "org.postgresql.Driver";
         String serverName = "167.175.55.207";
         String mydatabase = "alfresco";
         String username = "alfresco";
         String password = "alfresco";
         List<String> av = new ArrayList<String>();
         List<String> al=new ArrayList<String>();
         try {
            Connection connection = null;
             Class.forName(driverName);
             String url = "jdbc:postgresql://" + serverName +  "/" + mydatabase;
             connection = DriverManager.getConnection(url, username, password);
             Statement stmt = connection.createStatement();
             //ResultSet rs = stmt.executeQuery("select code,label from codelabel");
             ResultSet rs = stmt.executeQuery("SELECT qname_id AS code,string_value AS label FROM alf_node_properties AS A JOIN alf_qname AS B ON A.qname_id=B.id AND B.local_name='codestr'"); //ACA ES DONDE QUISIERA COMPARAR CON LO QUE ESTA EN PANTALLA
             while (rs.next()) {
                 av.add(rs.getString("code"));
                 al.add(rs.getString("label"));
             }
         }
         catch (Exception e) {}
       
       super.setAllowedValues(av);
       this.setAllowedLabels(al);
    }
}

Les agradezco cualquier ayuda

Outcomes