As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
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";//o mysql si es lo que utilizaras 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"); while (rs.next()) { av.add(rs.getString("code")); al.add(rs.getString("label")); } } catch (Exception e) {} super.setAllowedValues(av); this.setAllowedLabels(al); } }
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;
No deberías tener ningún error, si es así exportas el proyecto. Del resultado de la exportación copias la carpeta alfresco que está dentro de /ListOfValuesQueryConstraint/org/ y lo ubicarás en /WEB-INF/classes/org/
<constraints> <constraint name="tc:CodeLabel" type="org.alfresco.sample.CodeLabelExtend.ListOfValuesQueryConstraint"></constraint> </constraints>