Hybrid View

  1. #1
    Ext User
    Join Date
    Apr 2008
    Location
    Brazil
    Posts
    35
    Vote Rating
    0
    vinicius.rabelo is on a distinguished road

      0  

    Default ComboBox with Multi Selection - Dont compile

    ComboBox with Multi Selection - Dont compile


    When I try to compile my app, I receive errors in lines that use JNSI (in the class XComboBox)...
    The error is:
    Code:
    [ERROR] Errors in file:/my workspace path/my app/client/XComboBox.java
    [ERROR] Line 101:  Unresolvable native reference to field 'assetHeight' in type 'my app.client.util.XComboBox'
    [ERROR] Line 105:  Unresolvable native reference to field 'eventPreview' in type 'my app.client.XComboBox'
    [ERROR] Line 109:  Unresolvable native reference to field 'footer' in type 'my app.client.XComboBox'
    [ERROR] Line 113:  Unresolvable native reference to field 'hiddenInput' in type 'my app.client.XComboBox'
    [ERROR] Line 126:  Unresolvable native reference to field 'storeListener' in type 'my app.client.XComboBox'
    [ERROR] Line 200:  Unresolvable native reference to field 'assetHeight' in type 'my app.client.XComboBox'
    [ERROR] Line 204:  Unresolvable native reference to field 'footer' in type 'my app.client.XComboBox'
    [ERROR] Line 208:  Unresolvable native reference to field 'initialized' in type 'my app.client.XComboBox'
    [ERROR] Line 212:  Unresolvable native reference to field 'list' in type 'my app.client.XComboBox'
    [ERROR] Line 216:  Unresolvable native reference to field 'mode' in type 'my app.client.XComboBox'
    [ERROR] Line 220:  Unresolvable native reference to field 'pageTb' in type 'my app.client.XComboBox'


    How to resolve this error?

    Thanks

  2. #2
    Ext User
    Join Date
    Sep 2008
    Location
    Germany
    Posts
    961
    Vote Rating
    1
    Arno.Nyhm is on a distinguished road

      0  

    Default


    without your code its impossible to try to resolve it.

  3. #3
    Ext User
    Join Date
    Apr 2008
    Location
    Brazil
    Posts
    35
    Vote Rating
    0
    vinicius.rabelo is on a distinguished road

      0  

    Default


    Excuse me... The code is:

    My EntryPoint

    Code:
    public class TesteGxt implements EntryPoint {
     public void onModuleLoad() {
      final Viewport viewport = new Viewport();
      viewport.add(getFormPanel());
      RootPanel.get().add(viewport);
      GXT.hideLoadingPanel("loading");
     }
     private FormPanel formPanel;
     private FormPanel getFormPanel() {
      if (formPanel != null) {
       return formPanel;
      }
      formPanel = new FormPanel();
      formPanel.add(getSituacao());
      return formPanel;
     }
     private XComboBox<ModelData> situacao;
     private XComboBox<ModelData> getSituacao() {
      if (situacao != null) {
       return situacao;
      }
      situacao = new XComboBox<ModelData>();
      situacao.setFieldLabel("Situação");
      situacao.setDisplayField("name");
      situacao.setStore(getListStoreSituacoes());
      return situacao;
     }
     private ListStore<ModelData> listStoreSituacoes;
     private ListStore<ModelData> getListStoreSituacoes() {
      if (listStoreSituacoes != null) {
       return listStoreSituacoes;
      }
      listStoreSituacoes = new ListStore<ModelData>();
      listStoreSituacoes.add(new SituacaoBM(1, "Em edição"));
      listStoreSituacoes.add(new SituacaoBM(2, "Em atendimento"));
      listStoreSituacoes.add(new SituacaoBM(3, "Em aprovação"));
      listStoreSituacoes.add(new SituacaoBM(4, "Em prestação de Contas"));
      listStoreSituacoes.add(new SituacaoBM(5, "Concluida"));
      listStoreSituacoes.add(new SituacaoBM(6, "Cancelada"));
      return listStoreSituacoes;
     }
    }
    class SituacaoBM extends BaseModel {
     private static final long serialVersionUID = 1L;
     public SituacaoBM(int id, String name) {
      set("id", id);
      set("name", name);
     }
    }

    The XComboBox (http://www.extjs.com/forum/showthread.php?t=73726)
    I only changed:
    this.@com.extjs.gxt.samples.explorer.client.XComboBox
    to
    this.@br.com.testegxt.client.XComboBox

    Code:
    package br.com.testegxt.client.XComboBox; import java.util.List; import com.extjs.gxt.ui.client.Style.Scroll; import com.extjs.gxt.ui.client.core.El; import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.data.PagingLoader; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.store.StoreListener; import com.extjs.gxt.ui.client.util.BaseEventPreview; import com.extjs.gxt.ui.client.widget.CheckBoxListView; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.ListView; import com.extjs.gxt.ui.client.widget.form.ComboBox; import com.extjs.gxt.ui.client.widget.form.ListModelPropertyEditor; import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar; import com.google.gwt.dom.client.InputElement; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.RootPanel; public class XComboBox<D extends ModelData> extends ComboBox<D> { private String valueFieldSeparator = ";"; private String rawSeparator = ", "; public XComboBox() { messages = new ComboBoxMessages(); setView(new CheckBoxListView<D>()); setPropertyEditor(new ListModelPropertyEditor<D>()); monitorWindowResize = true; windowResizeDelay = 0; initComponent(); setTriggerAction(TriggerAction.ALL); } private void bindStore(ListStore<D> store, boolean initial) { if (this.store != null && !initial) { this.store.removeStoreListener(getStoreListener()); if (store == null) { this.store = null; if (getView() != null) { getView().setStore(null); } } } if (store != null) { this.store = store; if (store.getLoader() == null) { setMode("local"); } if (getView() != null) { getView().setStore(store); } store.addStoreListener(getStoreListener()); } } @Override public void collapse() { super.collapse(); String text = ""; for (D d : getSelection()) { if (text.length() > 0) { text += rawSeparator; } text += d.get(getDisplayField()); } setRawValue(text); updateHiddenValue(); } private void createList(boolean remove, LayoutContainer list) { RootPanel.get().add(list); setInitialized(true); if (getPagingToolBar() != null) { setFooter(list.el().createChild( "<div class='" + getListStyle() + "-ft'></div>")); getPagingToolBar().setBorders(false); getPagingToolBar().render(getFooter().dom); setAssetHeight(getAssetHeight() + getFooter().getHeight()); } if (remove) { RootPanel.get().remove(list); } } @Override protected void doForce() { return; } private native int getAssetHeight() /*-{ return this.@br.com.testegxt.client.XComboBox::assetHeight; }-*/; private native BaseEventPreview getEventPreview() /*-{ return this.@br.com.testegxt.client.XComboBox::eventPreview; }-*/; private native El getFooter() /*-{ return this.@br.com.testegxt.client.XComboBox::footer; }-*/; private native InputElement getHiddenInput() /*-{ return this.@br.com.testegxt.client.XComboBox::hiddenInput; }-*/; public String getRawSeparator() { return rawSeparator; } @Override public List<D> getSelection() { return ((CheckBoxListView<D>) getView()).getChecked(); } private native StoreListener<D> getStoreListener() /*-{ return this.@br.com.testegxt.client.XComboBox::storeListener; }-*/; @Override public D getValue() { return null; } public String getValueFieldSeparator() { return valueFieldSeparator; } @SuppressWarnings("unchecked") @Override protected void initList() { ListView<D> listView = getView(); if (listView == null) { setView(new CheckBoxListView<D>()); } String style = getListStyle(); listView.setStyleAttribute("overflowX", "hidden"); listView.setStyleName(style + "-inner"); listView.setStyleAttribute("padding", "0px"); listView.setSelectOnOver(true); listView.setBorders(false); listView.setStyleAttribute("backgroundColor", "white"); listView.setSelectStyle(getSelectedStyle()); listView.setLoadingText(getLoadingText()); if (getTemplate() == null) { listView.setDisplayProperty(getDisplayField()); } else { listView.setTemplate(getTemplate()); } setAssetHeight(0); LayoutContainer list = new LayoutContainer() { @Override protected void onRender(Element parent, int index) { super.onRender(parent, index); getEventPreview().getIgnoreList().add(getElement()); } }; list.setScrollMode(Scroll.NONE); list.setShim(true); list.setShadow(true); list.setBorders(true); list.setStyleName(style); list.hide(); assert store != null : "ComboBox needs a store"; list.add(listView); setList(list); if (getPageSize() > 0) { PagingToolBar pageTb = new PagingToolBar(getPageSize()); pageTb.bind((PagingLoader) store.getLoader()); setPagingToolBar(pageTb); } if (!isLazyRender()) { createList(true, list); } bindStore(store, true); }; private native void setAssetHeight(int assetHeight) /*-{ this.@br.com.testegxt.client.XComboBox::assetHeight = assetHeight; }-*/; private native void setFooter(El footer) /*-{ this.@br.com.testegxt.client.XComboBox::footer = footer; }-*/; private native void setInitialized(boolean initialized) /*-{ this.@br.com.testegxt.client.XComboBox::initialized = initialized; }-*/; private native void setList(LayoutContainer list)/*-{ this.@br.com.testegxt.client.XComboBox::list = list; }-*/; private native void setMode(String mode)/*-{ this.@br.com.testegxt.client.XComboBox::mode = mode; }-*/; private native void setPagingToolBar(PagingToolBar pageTb)/*-{ this.@br.com.testegxt.client.XComboBox::pageTb = pageTb; }-*/; public void setRawSeparator(String rawSeparator) { this.rawSeparator = rawSeparator; } @Override public void setSelection(List<D> selection) { for (D d : selection) { ((CheckBoxListView<D>) getView()).setChecked(d, true); } super.setSelection(selection); } @Override public void setValue(D value) { return; } public void setValueFieldSeparator(String valueFieldSeparator) { this.valueFieldSeparator = valueFieldSeparator; } private void updateHiddenValue() { if (getHiddenInput() != null) { String v = ""; for (D d : getSelection()) { if (v.length() > 0) { v += valueFieldSeparator; } v += d.get(getValueField()); } getHiddenInput().setValue(v); } } }

  4. #4
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    This is a JSNI issue. To access the private members you need to access them there, where they got defined.

  5. #5
    Ext User
    Join Date
    Apr 2008
    Location
    Brazil
    Posts
    35
    Vote Rating
    0
    vinicius.rabelo is on a distinguished road

      0  

    Default


    Then, in this case I only "can to access" this fields in the class
    com.extjs.gxt.ui.client.widget.form.ComboBox? Is equal the control access on Java...
    Consequently the widget XComboBox is not working?

  6. #6
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    Sure it will work.

    Just change your code:

    Code:
     private native void setInitialized(boolean initialized) /*-{
      this.@com.extjs.gxt.ui.client.form.ComboBox::initialized = initialized;
     }-*/;
    You need to access it there, where it got defined.

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi