Mike, In your ui:binder you are using a SplitlayoutPanel. You have to use the same for the variable definition in your view as well. At runtime assign qn instance of your custom SplitPanel to the declared variable
Example: @UiField SplitLayoutPanel splitPanel = MySplitLayoutPanel(); You need to add a cast anywhere you are using methods which are not part if the base class Thanks Ashwin Sent from my iPhone On Jan 20, 2012, at 12:18 AM, Mike Dee <mdichiapp...@gmail.com> wrote: > That gives a runtime error when the view calls initWidget() in its > constructor. > > Here is a summary of the code. Note it uses Activities and Places. > > // The view > public class MyViewImpl extends Composite implements MyView, > RequiresResize, ProvidesResize > { > interface Binder extends UiBinder<Widget, MyViewImpl> > { > } > > private static final Binder binder = GWT.create( Binder.class ); > > @UiField(provided=true) MySplitLayoutPanel splitPanel; > > ... > public MyViewImpl() > { > initWidget( binder.createAndBindUi( this ) ); // <=== Exception > thrown here > } > > } > > // MyView.ui.xml > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> > <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' > xmlns:g='urn:import:com.google.gwt.user.client.ui' > xmlns:p1="urn:import:com.google.gwt.user.cellview.client"> > > <g:SplitLayoutPanel width="100%" height="100%" ui:field="splitPanel"> > ... > </g:SplitLayoutPanel> > </ui:UiBinder> > > // MySplitLayoutPanel.java > public class MySplitLayoutPanel extends SplitLayoutPanel > { > private static MySplitLayoutPanellUiBinder uiBinder = > GWT.create( MySplitLayoutPanel.class ); > > interface MySplitLayoutPanelUiBinder extends UiBinder<Widget, > MySplitLayoutPanel> > { > } > > @UiField SplitLayoutPanel main; > > // Just want to be able to override onResize. > @Override > public void onResize() > { > System.out.println( "*** ONRESIZE ***" ); > } > } > > // MySplitLayoutPanel.ui.xml > <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> > <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" > xmlns:g="urn:import:com.google.gwt.user.client.ui"> > <g:SplitLayoutPanel ui:field="main"/> > </ui:UiBinder> > > > On Jan 18, 5:57 am, Patrick Tucker <patrick.tuc...@macefusion.com> > wrote: >> Define the element as a SplitLayoutPanel in the uibinder and provide >> it with an instance of your class in the java code. >> >> @UiField(provided=true) >> >> On Jan 17, 7:37 pm,MikeDee<mdichiapp...@gmail.com> wrote: >> >> >> >> >> >> >> >>> Just getting back to this. Was working on something else. >> >>> I did as describe below, by Ashwin. >> >>> However, when I switch to design mode in GWTDesigner, the following >>> error occurs: >> >>> [ERROR] No class matching "west" in >>> urn:import:com.google.gwt.user.client.ui Element <g:west size='150.0'> >> >>> I assume that something else must be done so that GWTDesigner knows >>> either: 1) my class is based on SplitLayoutPanel and thus the same XML >>> is used to define it, 2) I have to some how tell GWTDesigner about all >>> the options supported by MySplitLayoutPanel so that it knows how to >>> interpret the uibinder code. >> >>> It seems like this would be a common practice - to extend GWT widgets >>> - and so I assume it isn't too difficult. Any pointers? >> >>> Mike >> >>> On Dec 28 2011, 8:53 pm, Ashwin Desikan <ashwin.desi...@gmail.com> >>> wrote: >> >>>> Mike, >> >>>> As long as you have a default constrictor in your derivedayout panel, you >>>> should be able to use it in ui:binder like below. >> >>>> <ui:binder> >>>> <m:MySplitLayoutPanel/> >>>> </ui:binder> >> >>>> Above m is the namespace identifier for your package. >> >>>> Did u try something like above? >> >>>> Thanks >>>> Ashwin >>>> Sent from my iPhone >> >>>> On Dec 28, 2011, at 10:53 PM,MikeDee<mdichiapp...@gmail.com> wrote: >> >>>>> Hi Ashwin, >> >>>>> The SplitLayoutPanel is inside a DockLayoutPanel (in the center). I >>>>> can see the DockLayoutPanel->onResize() calling SplitLayoutPanel- >>>>>> onResize(). However, it isn't calling the onResize() I added with >>>>> addHandler(). I assume addHandler() has no effect since >>>>> SplitLayoutPanel implements ResizeRequired. So, now I am figuring out >>>>> how to get a hold of SplitLayoutPanel's onResize() to override. >> >>>>> I've created a derived panel, called MySplitLayoutPanel. Currently >>>>> trying to figure out how to make this work with uibinder. >> >>>>> Mike >> >>>>> On Dec 28, 1:16 am, Ashwin Desikan <ashwin.desi...@gmail.com> wrote: >>>>>> All layout panels implement the onResize method. So you don't Have to >>>>>> extend the widget unless you are doing a custom Splitlayout panel. >> >>>>>> Do you use the Splitlayout panel inside other panels? Also, i trust you >>>>>> are using rootlayout panel instead of rootpanel in the onModule method >>>>>> of your entrypoint >> >>>>>> Since, I can't Access the entire thread over email I am assuming you are >>>>>> having Splitlayout panel inside another layout like a htmlpanel etc and >>>>>> expect it to resize on the change of view dimensions? >> >>>>>> If thats the case on way to fire the onResize automatically is to use a >>>>>> place the splitlayoutpanel inside a ResizeLayoutPanel or for that matter >>>>>> any layout panels >> >>>>>> ~Ashwin >> >>>>>> Sent from my iPhone >> >>>>>> On Dec 28, 2011, at 1:08 PM,MikeDee<mdichiapp...@gmail.com> wrote: >> >>>>>>> Played around with this a little more and came to a few conclusions. >>>>>>> I am guessing that adding a ResizeHandler to SplitLayoutPanel has no >>>>>>> effect because SplitLayoutPanel already implements onResize() - due to >>>>>>> its implementing RequiresResize. I can see SplitLayoutPanel's >>>>>>> onResize() being called by stepping through the code. The >>>>>>> ResizeHandler I added is no where to be found. >> >>>>>>> That leaves the option of deriving my own subclass of SplitLayoutPanel >>>>>>> and then overriding onResize(). Easy enough EXCEPT how does one get >>>>>>> such a class to work with uibinder? >> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Google Web Toolkit" group. >>>>>>> To post to this group, send email to >>>>>>> google-web-toolkit@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> google-web-toolkit+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group >>>>>>> athttp://groups.google.com/group/google-web-toolkit?hl=en. >> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Google Web Toolkit" group. >>>>> To post to this group, send email to google-web-toolkit@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> google-web-toolkit+unsubscr...@googlegroups.com. >>>>> For more options, visit this group >>>>> athttp://groups.google.com/group/google-web-toolkit?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to google-web-toolkit@googlegroups.com. > To unsubscribe from this group, send email to > google-web-toolkit+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.