Hi

I thought that was the case.  The problem is that I was trying to build 
a generic system because I do not yet know all the classes because I 
have not built them.  In my previous development environment it was 
possible to build classes in a factory without every having the actual 
name in the code.  You simply passed in the class name as a string and 
it would return an instance of the class.

The other problem I can see is that if I use this technique QooxDoo will 
not know all the classes to package when it comes time to deploy the 
application.

Simon


On 23/12/2011 2:47 PM, Greg Hellings wrote:
> Simon, you misunderstand the first version. You should not be
> constructing a string with it. What are the possible values that lcWin
> can have and what are the possible classes you're trying to
> instantiate? If I know that I can construct a better example that
> accomplishes what you're trying to do so it's less confusing.
>
> --Greg
>
> On Fri, Dec 23, 2011 at 1:35 PM, Simon White
> <[email protected]>  wrote:
>> Hi
>> I can make the eval technique work but I cannot make the map technique
>> work because it always gives an error about string type.
>>
>> var lcWin =
>> qx.core.Init.getApplication().__frmDesktop.getActiveWindow().classname;
>>                  var lcClass =
>> var map = {
>>      'somekey' :
>> lcWin.substr(0,lcWin.indexOf("."))+".con"+lcWin.substr(lcWin.indexOf(".")+4)+"_"+this.getLabel(),
>>      'otherkey' : dcbase.otherTypeOfButton
>>   };
>>
>> Simon
>>
>> On 23/12/2011 2:04 PM, Greg Hellings wrote:
>>> You can do this a number of ways depending on your need.
>>>
>>> With an associative array/map object:
>>> var map = {
>>>     'somekey' : dcbase.myCustomerButton,
>>>     'otherkey' : dcbase.otherTypeOfButton
>>> };
>>>
>>> var val = 'somekey';
>>> var lcClass = new (map[val])();
>>>
>>> Or you could do it with a call to eval:
>>>
>>> var classToCreate = 'dcbase.myCustomerButton';
>>> var lcClass = eval('new ' + classToCreate + '()');
>>>
>>> Or you could do it, similar to the first technique, but with a factory
>>> method (probably attached statically to a parent class of all the
>>> objects you might create in this instance).
>>>
>>> --Greg
>>>
>>> On Fri, Dec 23, 2011 at 12:58 PM, Simon White
>>> <[email protected]>    wrote:
>>>> Hi
>>>>
>>>> I would like to be able to create a new class by building the class name
>>>> at runtime as opposed to hard coding the class in code.  Can this be done?
>>>>
>>>> For example instead of
>>>>
>>>> var lo = new dcbase.myCustomerButton();
>>>>
>>>> I would like to do the following:
>>>>
>>>> var lcClass = myWindow.Classname.substr(1,8)+"_con"+myButton.getLabel()
>>>>
>>>> var = new lcClass;
>>>>
>>>> Thanks,
>>>> Simon
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Write once. Port to many.
>>>> Get the SDK and tools to simplify cross-platform app development. Create
>>>> new or port existing apps to sell to consumers worldwide. Explore the
>>>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>>>> http://p.sf.net/sfu/intel-appdev
>>>> _______________________________________________
>>>> qooxdoo-devel mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>>
>>> ------------------------------------------------------------------------------
>>> Write once. Port to many.
>>> Get the SDK and tools to simplify cross-platform app development. Create
>>> new or port existing apps to sell to consumers worldwide. Explore the
>>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>>> http://p.sf.net/sfu/intel-appdev
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Write once. Port to many.
>> Get the SDK and tools to simplify cross-platform app development. Create
>> new or port existing apps to sell to consumers worldwide. Explore the
>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>> http://p.sf.net/sfu/intel-appdev
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
> ------------------------------------------------------------------------------
> Write once. Port to many.
> Get the SDK and tools to simplify cross-platform app development. Create
> new or port existing apps to sell to consumers worldwide. Explore the
> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
> http://p.sf.net/sfu/intel-appdev



------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to