EDIT: a mistake:
 this.__startWidget.setJourneyContainer("test0rn");

i mean 

 this.__startWidget.setJourneyContainer(this);

at the end (in the last class)



********************************************************
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

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

------------------------------------------------------------------------------
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