i tried this in the constructor of my StartWidget class, but i get "null".


-------- Original-Nachricht --------
> Datum: Wed, 03 Jun 2009 17:02:24 +0100
> Von: Matthew Gregory <[email protected]>
> An: [email protected]
> Betreff: Re: [qooxdoo-devel] Property usage

> this.getLayoutParent() IIRC
> 
> Robert Wende wrote:
> > Hi Matt,
> > 
> > thanks - i didn't see the forest for the trees.
> > i only need a reference in the StartWidget to the TravelplanerContainer.
> Is this possible about a getParent-method?
> > 
> > Thanks
> > 
> > 
> > -------- Original-Nachricht --------
> >> Datum: Wed, 03 Jun 2009 16:45:52 +0100
> >> Von: Matthew Gregory <[email protected]>
> >> An: [email protected]
> >> Betreff: Re: [qooxdoo-devel] Property usage
> > 
> >> OK, I haven't examined the code in detail but it looks fine, the
> problem 
> >> is you are calling getJourneyContainer before setJourneyContainer
> >>
> >> You do this first:
> >> this.__startWidget = new travelagent..StartWidget(componentData);
> >>
> >> This will call the constructor which is where you are calling 
> >> getJourneyContainer. Then after the constructor returns you are 
> >> setting it                                 
> >> this.__startWidget.setJourneyContainer("test0rn");
> >>
> >> You need to rearrange your code
> >>
> >>  >   properties: {
> >>  >         journeyContainer : {inheritable:true, deferredInit: true}
> >>
> >> you could add an apply key to this
> >>
> >>  >   properties: {
> >>  >         journeyContainer : {inheritable:true, deferredInit: true, apply 
> >> :
> >> "_applyJourneyContainer"}
> >>
> >> You can then add a function to your class that will get called when you
> >> set the property
> >>
> >> _applyJourneyContainer : function(value)
> >> {
> >>    alert(value);
> >> }
> >>
> >>
> >> Hope that helps!
> >> Matt
> >>
> >>
> >>
> >> Robert Wende wrote:
> >>> Hi Matt,
> >>>
> >>> my abstract class looks like:
> >>>
> >>>
> qx.Class.define("travelagent.impl.fe.travelplaner.uis.AbstractMediator",
> >>> {
> >>>   type: "abstract",
> >>>   extend: qx.ui.container.Composite,
> >>>   
> >>>   properties: {
> >>>           journeyContainer : {inheritable:true, deferredInit: true}
> >>>   },
> >>>  
> >>>   members: {
> >>>   /**
> >>>    * @abstract
> >>>    */
> >>>   edit: function() {return true;},
> >>>   openMap: function() {return true;},
> >>>   save: function() {return true;},
> >>>   update: function(e) {return true;}
> >>>   
> >>>   }
> >>> });
> >>>
> >>> then i derive a DestinationWidget:
> >>>
> >>>
> >>
> qx.Class.define("travelagent.impl.fe.travelplaner.uis.DestinationWidget",{
> >>>   
> >>>   type: "abstract",
> >>>   extend: travelagent.impl.fe.travelplaner.uis.AbstractMediator,
> >>>   
> >>>   properties: {
> >>>           destinationData : {inheritable:true, deferredInit:true, check :
> >> "travelagent.impl.data.DestinationData"},
> >>>           clockWidget : {inheritable:true, deferredInit:true},
> >>>           calendarWidget : {inheritable:true, deferredInit:true},
> >>>           mapWidget : {inheritable:true, deferredInit:true}
> >>>   },
> >>>   
> >>>   members:{
> >>>           openMap:function(){
> >>>                   return true;
> >>>           }       
> >>>   }
> >>> });
> >>>
> >>> and in my StartWidget, i want to use the journeyContainer-Prop from
> the
> >> AbstractMediator. 
> >>> qx.Class.define("travelagent.impl.fe.travelplaner.uis.StartWidget",{
> >>>   
> >>>   extend:travelagent.impl.fe.travelplaner.uis.DestinationWidget,
> >>>   
> >>>           
> >>>   construct: function(data){
> >>>   
> >>>           this.base(arguments);
> >>>           this.initDestinationData(data);
> >>>           
> >>>           this.__buildLayout(); //external method for the layout
> >>>                           
> >>>           alert(this.getJourneyContainer()); //test the prop
> >>>   },
> >>> ...
> >>> }
> >>>
> >>> The alert-methode give my the following: null
> >>>
> >>> I set the JourneyContainer-Prop in another class:
> >>>
> >>>
> >>
> qx.Class.define("travelagent.impl.fe.travelplaner.TravelplanerContainer", {
> >>>   extend : qx.ui.container.Scroll,
> >>>   construct : function() {
> >>>           this.base(arguments);
> >>>           this.set({
> >>>                                   width : 1024,
> >>>                                   height : 400
> >>>                           });
> >>>
> >>>           var layout = new qx.ui.layout.VBox().set({
> >>>                   spacing : 5
> >>>                           // alignX: "center"
> >>>                   });
> >>>
> >>>           this.__journeyContainer = new
> qx.ui.container.Composite(layout).set({
> >>>                                   padding : 20,
> >>>                                   width : 1008,
> >>>                                   backgroundColor : "white"
> >>>                           });
> >>>
> >>>           this.__journeyContainer.setAllowStretchX(false);
> >>>           this.add(this.__journeyContainer);
> >>>
> >>>           this.__journeyContainer.add(new 
> >>> qx.ui.basic.Label("Travelplan"));
> >>>
> >>>           // init dummywidgets
> >>>           var start = new travelagent.impl.data.DestinationData();
> >>>           start.setType("StartWidget");
> >>>           var goal = new travelagent.impl.data.DestinationData();
> >>>           goal.setType("GoalWidget");
> >>>           var waypoint = new travelagent.impl.data.DestinationData();
> >>>           waypoint.setType("WaypointWidget");
> >>>           var waypoint2 = new travelagent.impl.data.DestinationData();
> >>>           waypoint2.setType("WaypointWidget");
> >>>           var waypoint3 = new travelagent.impl.data.DestinationData();
> >>>           waypoint3.setType("WaypointWidget");
> >>>
> >>>           goal.setPrev(waypoint);
> >>>           waypoint.setPrev(start);
> >>>           waypoint2.setPrev(waypoint);
> >>>           waypoint3.setPrev(waypoint2);
> >>> ...
> >>>           this.addWidget(start);
> >>>
> >>>
> >>>
> >>>   },
> >>>
> >>>   members : {
> >>>           // ref to component
> >>>           __journeyContainer : null,
> >>>           __startWidget : null,
> >>>           __goalWidget : null,
> >>>
> >>>           /**
> >>>            * Adds a widget to the travel plan. Therefore the type of the 
> >>> given
> >>>            * data object is checked.
> >>>            * 
> >>>            * @param componentData
> >>>            *            {IComponentData} The data object of the widget to 
> >>> add.
> >>>            */
> >>>           addWidget : function(componentData) {
> >>>                   switch (componentData.getType()) {
> >>>                           case "StartWidget" :
> >>>                                   this.__startWidget = new
> >> travelagent.impl.fe.travelplaner.uis.StartWidget(componentData);
> >>>                                   
> >>> this.__startWidget.setJourneyContainer("test0rn");
> >>>                                   
> >>> this.__journeyContainer.add(this.__startWidget);
> >>> ...
> >>>
> >>> I hope this helps,
> >>> Thanks
> >>>
> >>>
> >>>
> >>> -------- Original-Nachricht --------
> >>>> Datum: Wed, 03 Jun 2009 16:10:02 +0100
> >>>> Von: Matthew Gregory <[email protected]>
> >>>> An: [email protected]
> >>>> Betreff: Re: [qooxdoo-devel] Property usage
> >>>>> now i have a new problem with my property.
> >>>>> Another class set the journeyContainer:
> >>>>>
> >>>>> this.__startWidget.setJourneyContainer(this)
> >>>>>
> >>>>> when i call the getter in the startWidget, i get a null value. why?
> i
> >>>> thought that the property is inherit from AbstractMediator to
> >> StartWidget.
> >>>> That should work, any chance of a bit more code? Would be good if you
> >>>> could post the code that creates the class, sets the property and
> then 
> >>>> where the property is being read
> >>>>
> >>>>> My second problem concerns the init-process. 
> >>>>>
> >>>>> i have tried the following:
> >>>>>
> >>>>> properties: {
> >>>>>  newTest:{nullable:true} //i guess this is the same like newTest =
> >> null;
> >>>>> }
> >>>>>
> >>>>> now i want to init the property in my constructor like:
> >>>>>
> >>>>> this.initNewTest("hello");
> >>>>>
> >>>>> Firebug says that the function ist undefined. how can i init my
> >>>> properties?
> >>>>
> >>>> (not 100% sure about the accuracy of this statement) Nullable
> >> properties 
> >>>> are initialized to null by default, use setTest() instead. Or you
> could
> >>>> add an init value to the property
> >>>>
> >>>>  >  newTest:{nullable:true, init:"hello"}
> >>>>
> >>>> This only works well for "simple" types though, arrays and objects
> are 
> >>>> initialized by reference and not value
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> ------------------------------------------------------------------------------
> >>>> OpenSolaris 2009.06 is a cutting edge operating system for
> enterprises 
> >>>> looking to deploy the next generation of Solaris that includes the
> >> latest 
> >>>> innovations from Sun and the OpenSource community. Download a copy
> and 
> >>>> enjoy capabilities such as Networking, Storage and Virtualization. 
> >>>> Go to: http://p.sf.net/sfu/opensolaris-get
> >>>> _______________________________________________
> >>>> qooxdoo-devel mailing list
> >>>> [email protected]
> >>>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> >>
> >>
> ------------------------------------------------------------------------------
> >> OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
> >> looking to deploy the next generation of Solaris that includes the
> latest 
> >> innovations from Sun and the OpenSource community. Download a copy and 
> >> enjoy capabilities such as Networking, Storage and Virtualization. 
> >> Go to: http://p.sf.net/sfu/opensolaris-get
> >> _______________________________________________
> >> qooxdoo-devel mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> > 
> 
> 
> ------------------------------------------------------------------------------
> OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
> looking to deploy the next generation of Solaris that includes the latest 
> innovations from Sun and the OpenSource community. Download a copy and 
> enjoy capabilities such as Networking, Storage and Virtualization. 
> Go to: http://p.sf.net/sfu/opensolaris-get
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

-- 
GMX FreeDSL mit DSL 6.000 Flatrate und Telefonanschluss nur 17,95 Euro/mtl.!
http://dslspecial.gmx.de/freedsl-aktionspreis/?ac=OM.AD.PD003K11308T4569a

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to