2 Replies Latest reply on Dec 6, 2007 10:38 AM by jguglielmin

    Property 'autocomplete' not found on type

    sambolino

      i'm getting this error:
      /home.xhtml: Property 'autocomplete' not found on type org.javassist.tmp.java.lang.Object_$$_javassist_23
      obviously my autocomplete method is read as a property. but my other bussiness method is working fine(via submit button) . tried with rich:suggestionbox also, doesn't work

      i have soooo many other questions i wish someone could help :)

      here's home.xhtml:

      <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
      xmlns:s="http://jboss.com/products/seam/taglib"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/rich"
      xmlns:ice="http://www.icesoft.com/icefaces/component"
      template="layout/template.xhtml">

      <ui:define name="body">

      <h:messages globalOnly="true" styleClass="message"/>
      <h:form>
      <rich:panel>
      <f:facet name="header">Welcome!</f:facet>
      <s:decorate id="organIdDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Org. jedinica</ui:define>
      <h:inputText value="#{prijemizavodjenje.sifraOrgJed}" style=" height : 17px;" required="true"></h:inputText>
      </s:decorate>
      <s:decorate id="predmetGodinaDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Godina</ui:define>
      <h:inputText value="#{prijemizavodjenje.god}" style=" height : 17px;"></h:inputText>
      </s:decorate>
      <s:decorate id="predmetDatumKreiranjaDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Datum prijema</ui:define>

      <h:inputText id="startDate"
      value="#{prijemizavodjenje.datumKreiranja}" >
      <s:convertDateTime dateStyle="full" pattern="d/M/yy"/>
      </h:inputText>
      <s:selectDate for="startDate">
      <h:graphicImage url="./img/dtpick.gif" />
      </s:selectDate>
      </s:decorate>
      <s:decorate id="klasifikacijaIdDecorate1" template="layout/edit.xhtml">
      <ui:define name="label">Klasifikacija</ui:define>
      <ice:selectInputText rows="10"
      value="#{prijemizavodjenje.nazivKlasifikacije}"
      valueChangeListener="#{prijemizavodjenje.autocomplete}">
      <f:selectItems value="#{prijemizavodjenje.completions}"/>
      </ice:selectInputText>
      </s:decorate>
      <s:decorate id="delatnostIdDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Delatnost:</ui:define>
      <h:inputText value="#{prijemizavodjenje.delatnostId}" style=" height : 17px;" required="false"></h:inputText>
      </s:decorate>
      <s:decorate id="predmetNazivDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Naziv:</ui:define>
      <h:inputText value="#{prijemizavodjenje.naziv}" style=" height : 17px;" ></h:inputText>
      </s:decorate>
      <s:decorate id="predmetOpisDecorate" template="layout/edit.xhtml">
      <ui:define name="label">Opis:</ui:define>
      <h:inputTextarea id="naziv"
      cols="80"
      rows="3"
      value="#{prijemizavodjenje.opis}"/>
      </s:decorate>

      *
      obavezna polja

      </rich:panel>


      <h:commandButton type="submit"
      value="Potvrdi"
      action="#{prijemizavodjenje.otvaranjeInternogPredmeta}"/>

      </h:form>
      </ui:define>
      </ui:composition>


      ... and interface+bean


      @Local
      public interface PrijemIZavodjenjeDokumenata {
      public void otvaranjeInternogPredmeta();
      public List autocomplete(ValueChangeEvent e);
      public List
      public void nadjiKlasifikacije();
      public void destroy();
      public Integer getKlasifikacijaId();
      public void setKlasifikacijaId(Integer klasifikacijaId) ;
      public Integer getDelatnostId();
      public void setDelatnostId(Integer delatnostId) ;
      public String getOpis();
      public void setOpis(String opis);
      public String getNaziv();
      public void setNaziv(String naziv) ;
      public Integer getSifraOrgJed();
      public void setSifraOrgJed(Integer sifraOrgJed) ;
      public Integer getGod() ;
      public void setGod(Integer god) ;
      public Date getDatumKreiranja() ;
      public void setDatumKreiranja(Date datumKreiranja);
      public Klasifikacija getK() ;
      public void setK(Klasifikacija k) ;
      public String getNazivKlasifikacije() ;
      public void setNazivKlasifikacije(String nazivKlasifikacije) ;
      public List getCompletions() ;
      public void setCompletions(List completions) ;
      }


      @Stateful
      @Scope(ScopeType.SESSION)
      @Name("prijemizavodjenje")
      public class PrijemIZavodjenjeDokumenataBean implements PrijemIZavodjenjeDokumenata {
      @PersistenceContext(type=PersistenceContextType.EXTENDED)
      private EntityManager em;
      private Calendar cal = new GregorianCalendar();

      @In Identity identity;
      private Klasifikacija k;
      private Integer sifraOrgJed;
      private Integer klasifikacijaId;
      private String nazivKlasifikacije;
      private Integer delatnostId;
      private String opis;
      private String naziv;
      private Integer god=cal.get(Calendar.YEAR);
      private Date datumKreiranja=cal.getTime();
      @Out(required=false)
      private List listaKlasifikacija;
      private List completions;

      public void otvaranjeInternogPredmeta() {

      Predmet p = new Predmet ();
      InterniAkt a = new InterniAkt();
      int broj = napraviBroj(god)+1;
      String delBroj = napraviDelBroj(god, sifraOrgJed, klasifikacijaId, broj, delatnostId );
      Radnik r = vratiRadnika(identity.getUsername());
      if (r==null) {
      r = new Radnik();
      r.setImeRadnika(identity.getUsername());
      }
      if (delatnostId==0){
      Klasifikacija klas = em.find(Klasifikacija.class, klasifikacijaId);
      p.setKlasifikacija(klas);
      p.setVrstaPredmeta(klas.getVrstaPredmeta());
      OrganizacionaJedinica orgJed = em.getReference(OrganizacionaJedinica.class, sifraOrgJed);
      p.setOrganizacionaJedinica(orgJed);
      a.setOrgJed(orgJed);
      } else {
      Delatnost del = em.find(Delatnost.class, delatnostId);
      p.setDelatnost(del);
      p.setKlasifikacija(del.getKlasifikacija());
      p.setVrstaPredmeta(del.getVrstaPredmeta());
      p.setOrganizacionaJedinica(del.getOrgJed());
      a.setOrgJed(del.getOrgJed());
      }
      p.setOpis(opis);
      p.setGodina(god);
      p.setBroj(broj);
      p.setDelovodniBroj(delBroj);
      p.setDatumKreiranja(datumKreiranja);
      p.setStatusPonistavanja(false);
      p.setNaziv(naziv);
      p.setRadnikKreirao(r);
      p.setMaxBrojAkta(1);
      p.setMaxBrojKretanja(0);
      p.setMaxBrojPrimedbi(0);
      // ...
      VrstaAkta va = em.getReference(VrstaAkta.class, 2);
      a.setPredmet(p);
      a.setRadnikKreirao(r);
      a.setVrstaAkta(va);
      a.setDatumKreiranja(datumKreiranja);
      a.setDatumZdruzivanja(datumKreiranja);
      a.setStatusPonistavanja(false);
      a.setDelovodniBroj(delBroj);
      a.setPodbroj(p.getMaxBrojAkta());
      // ...

      /* Collection kol = p.getAkta();
      kol.add(a);
      p.setAkta(kol);*/
      em.persist(r);
      em.persist(p);
      em.persist(a);
      destroy();
      }

      public List autocomplete(ValueChangeEvent e){
      String pref = (String) e.getNewValue ();
      completions = em.createQuery("SELECT k.nazivKlasifikacije FROM Klasifikacija k WHERE k.nazivKlasifikacije LIKE ?1")
      .setParameter(1, pref).getResultList();
      return completions;

      }


      @Factory("listaKlasifikacija")
      public void nadjiKlasifikacije() {
      listaKlasifikacija = em.createQuery("SELECT k FROM Klasifikacija k")
      .getResultList();

      }

      private int napraviBroj(int godina){
      try {
      return (Integer) em.createQuery("SELECT MAX(p.broj) FROM Predmet p WHERE p.godina = ?1")
      .setParameter(1, godina)
      .getSingleResult();
      } catch(NoResultException e) {
      return 0;
      } catch(NullPointerException f) {
      return 0;
      }
      }

      private String napraviDelBroj(int e, int d, int a, int c, int b){
      return a+"-"+b+"-"+c+"-"+d+"-"+e;
      }

      private Radnik vratiRadnika(String imeRadnika){
      try {
      return (Radnik) em.createQuery("SELECT r FROM Radnik r WHERE r.imeRadnika= ?1")
      .setParameter(1, imeRadnika)
      .getSingleResult();
      } catch(NoResultException e) {
      return null;
      } catch(NullPointerException f) {
      return null;
      }
      }

      public Integer getKlasifikacijaId() {
      return klasifikacijaId;
      }


      public void setKlasifikacijaId(Integer klasifikacijaId) {
      this.klasifikacijaId = klasifikacijaId;

      }


      public Integer getDelatnostId() {
      return delatnostId;
      }
      public void setDelatnostId(Integer delatnostId) {

      if (delatnostId == null) {
      this.delatnostId = 0;
      } else {
      this.delatnostId = delatnostId;
      }
      }

      public String getOpis() {
      return opis;
      }


      public void setOpis(String opis) {
      this.opis = opis;
      }


      public String getNaziv() {
      return naziv;
      }


      public void setNaziv(String naziv) {
      this.naziv = naziv;
      }


      public Integer getSifraOrgJed() {
      return sifraOrgJed;
      }


      public void setSifraOrgJed(Integer sifraOrgJed) {
      this.sifraOrgJed = sifraOrgJed;
      }


      public Integer getGod() {
      return god;
      }


      public void setGod(Integer god) {
      if (god == null) {
      this.god = cal.get(Calendar.YEAR);
      } else {
      this.god = god;
      }
      }

      public Date getDatumKreiranja() {
      return datumKreiranja;
      }
      public void setDatumKreiranja(Date datumKreiranja) {
      if (datumKreiranja == null) {
      this.datumKreiranja = cal.getTime();
      } else {
      this.datumKreiranja = datumKreiranja;
      }
      }
      @Destroy @Remove
      public void destroy() { }

      public Klasifikacija getK() {
      return k;
      }
      public void setK(Klasifikacija k) {
      this.k = k;
      }
      public String getNazivKlasifikacije() {
      return nazivKlasifikacije;
      }
      public void setNazivKlasifikacije(String nazivKlasifikacije) {
      this.nazivKlasifikacije = nazivKlasifikacije;
      }
      public List getCompletions() {
      return completions;
      }
      public void setCompletions(List completions) {
      this.completions = completions;
      }
      }