Accessing object by dynamically creating it's id?

Hi All,
hopefully this is a quick one, I just can't figure it out:
I'd like to be able to access objects by their id, but I want to be
able to do it dynamically.
For example:
I have two objects, already instantiated, object_01 and
object_02 and would like to do something like:
while (var i:uint = 1; i<=2, i++) {
myMovieClip.addChild("object_0" + i.toString());
Can this be done and if so, how?
Thanks!

Further to my own research, I discover 'this' (pun intended)
while (var i:uint = 1; i<=2, i++) {
myMovieClip.addChild(this["object_0" + i.toString()]);
(it works)

Similar Messages

  • Why objects are  dynamically created in java

    Why objects are dynamically created in java even if dynamically created object requires more space & more memory references as compared to static object?

    I don't even know where to start...
    KAMAL.MUKI wrote:
    Why objects are dynamically created in javaWhat is the alternative?
    even if dynamically created object requires more space & more memory referencesCan you prove that?
    as compared to static object?Can you define "static object"?
    I vote "troll".

  • How to create unique object for dynamically created jTextFields

    Hello to all forum members
    According to my requirement , i have created a number of jpanels(containing textfield,comboboxes etc) and added them to a jScrollPane.
    But my requirement is after adding the jPanels to the JScrollPanel, i want to add some logic to that jpanels; like
    1) i want to sort the panels according to some condition when a sort button is clicked
    2)and the text field which are in the panel should be sorted according to the integer value inside the text field.
    3) and after a buton clicked the value what are in the jText field should store in the data base etc.....
    For the above logic to apply i need the instance variable(i.e object reference ) should be difference, so that when i want to get a value from any component ( text from jtextfield ) i can get the value through its instance variable name.for example
    JTextField textField1=new JTextField("aaa");
    JTextField textField2=new JTextField("cccc");
    JTextField textField3=new JTextField("eee");then
    textField1.getText();
    textField2.getText();
    textField3.getText();But the problem is when i am creating the number of panels the name of the instance variables (of all the components i.e textfield ,panels)are same so i can't add the logic to any particular component.
    I have tried to solve this problem , but not getting any idea .Please help me to find out the solution. I hope i explained my problem clearly if not
    tell me i will explain it again.
    I have given here with the code in which i have created 100 jpanels , each jpanels consisting of 1label and 1text field but the instance variable for each component is same.
    Plese help me to solve this problem,Thanks in advance.
    import javax.swing.*;
    public class NestedPanels extends JFrame
      private static final int NO_OF_NESTED_PANELS = 100;
      public NestedPanels()
        super("Nested Panels");
        setSize(200, 200);
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
         for ( int i=1; i<=NO_OF_NESTED_PANELS; i++)
             mainPanel.add(createChildPanel(i));
         javax.swing.JScrollPane jScrollPane = new javax.swing.JScrollPane();
         jScrollPane.setViewportView(mainPanel);
        getContentPane().add(jScrollPane);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
      private JPanel createChildPanel(int intChildPanelNumber)
        JPanel childPanel = new JPanel();
        childPanel.setLayout(new BoxLayout(childPanel, BoxLayout.X_AXIS));
        childPanel.add(new JLabel("" + intChildPanelNumber));
        childPanel.add(new JTextField());
        return childPanel;
      public static void main(String[] argv)
        javax.swing.SwingUtilities.invokeLater(new Runnable()
          public void run()
            NestedPanels example = new NestedPanels();
    }Thanks & Regards
    Mahendra

    Hi to all forum members,
    Thanks for all your help.
    JayDS, as you have told i have tried with
    return Integer.valueOf( getText() ).compareTo( Integer.valueOf( mp.getText() ) );but it is giving
    java.lang .NumberFormatException.forInputString(unknown source)
    sorry i could not get what is SSCE?
    I am sending the code here with my requirement.
    My requirement is to sort the panels.
    i.e.
    when I will click on to the sortC1 button , the whole panels should be sorted according to the integer value inside the textfield1 (but here in my code it is sorting string wise,if u enter 1,2 ,1111111,3 ,222 the output should be 1,2,3, ,222 ,1111111 but it is actually giving the output as 1, 1111111,2,222,3 which is wrong )
    Arrays.sort(NestedPanelSorting); => this method is used for sorting
    return getText().compareTo(mp.getText());=> method is used for the text comparision in the example ( NestedPanelSorting.java)
    sortC2 also same.
    When I will click sortC3 ,the panel will be sorted according to the string values in the dropdown of combo boxes. Here how to access the instance of combobox to sort or the panel or through array of objects how can i sort?
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Arrays;
    import javax.swing.*;
    public class NestedPanelSorting extends JFrame
        private static final int NO_OF_NESTED_PANELS = 10;
        private MyPanel[] NestedPanelSorting = new MyPanel[NO_OF_NESTED_PANELS];
        //MyPanel[] is a array of MyPanel objects declared below
         private JPanel mainPanel;
        private JScrollPane jScrollPane;
         public NestedPanelSorting()
            super("Nested Panels Sorting");
            setSize(400, 200);
            mainPanel = new JPanel();
            mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.Y_AXIS));
            //in the for loop below MyPanel(i) is called through NestedPanelSorting[i]
              for (int i = 0; i < NestedPanelSorting.length; i++)
                NestedPanelSorting[i] = new MyPanel(i);
                mainPanel.add(NestedPanelSorting);
    jScrollPane = new javax.swing.JScrollPane();
    jScrollPane.setViewportView(mainPanel);
    getContentPane().add(jScrollPane, BorderLayout.CENTER);
    JButton myBtn1 = new JButton("sortC1");
              JButton myBtn2 = new JButton("sortC2");
              JButton myBtn3 = new JButton("sortC3");
    getContentPane().add(myBtn1, BorderLayout.EAST);
    getContentPane().add(myBtn2, BorderLayout.WEST);
    getContentPane().add(myBtn3, BorderLayout.SOUTH);
              myBtn1.addActionListener(new ActionListener()
    public void actionPerformed(ActionEvent arg0)
    myButtonAction(arg0);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    private void myButtonAction(ActionEvent arg0)
              //this Array.sort() method is for sorting the array -
              // accordig to string value but i need to sort integer value wise
    Arrays.sort(NestedPanelSorting);
              mainPanel = new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel,
    BoxLayout.Y_AXIS));
    for (int i = 0; i < NestedPanelSorting.length; i++)
    mainPanel.add(NestedPanelSorting[i]);
    jScrollPane.setViewportView(mainPanel);
         public static void main(String[] argv)
    javax.swing.SwingUtilities.invokeLater(new Runnable()
    public void run()
    new NestedPanelSorting();
    //declaring of MyPanel class where textfield1,txtField2,comboBox1 are added
         class MyPanel extends JPanel implements Comparable<MyPanel>
    private int number;
    private JTextField txtField1;
              private JTextField txtField2;
    private JComboBox comboBox1;
    public MyPanel(int number)
                   super();
    this.number = number;
    setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
    add(new JLabel(String.valueOf(number)));
    txtField1 = new JTextField();
    add(txtField1);
                   txtField2 = new JTextField();
    add(txtField2);
                   comboBox1=new JComboBox();
                   comboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ITEM  1 ", "ITEM  2 ", "ITEM  3 ", "ITEM  4 ","ITEM  5 " }));
                   add(comboBox1);
    public int getNumber()
    return number;
              public String getText()
                   if (txtField1.getText() == null)
    return "";
                   return txtField1.getText();
         public int compareTo(MyPanel mp)
              return getText().compareTo(mp.getText());
              //return Integer.valueOf( getText() ).compareTo( Integer.valueOf( mp.getText() ) );

  • How to access variables in dynamically created custom components? (Flex 4.5)

    Hi i have another riddle here.
    i have few custom MXML components in my library and i am adding them to the stage by script, after that i want to fill some data, lets say Label.text, inside this component.
    The question is how to acces / reference variables or other components inside the main custom component which was added to the stage by script???
    thx M.

    ok, the answer is here
    http://blog.flexexamples.com/2008/08/28/creating-a-component-instance-by-class-name-in-act ionscript-30/

  • ABAP OBJECTS: Dynamic Create object

    Hi folks!
    I have a problem... I need to create a dynamic type object with:
    <b>DATA: my_instance TYPE REF TO class1.
    CREATE OBJECT my_instance TYPE (class2).</b>
    <i>* where class1 is a superclass of class2.</i>
    When I do:
    <b>my_instance ?= m_parent.</b>
    <i>* where m_parent is an instance of class1</i>
    My problem is when I want to access to an attribute of the class2, the compiler says that it cannot find the attribute <i>(this is OK, because the attribute is only in the class2).</i>
    My question:
    Is there anyway to access to an atribute of second class when is not in the first class? (i don't want to create the attribute as an attribute of the first class).
    Thanx!!!!

    Hi David,
    When you do the debugging, you are dealing with run-time - i.e., the program is now running and you are just interrupting it at each statement to examine the program state. You will reach the point where the object is already created. That is why you can see all those attributes. But when you comiple, the program is not yet <i>running</i>, so the attributes will be unknown because of the dynamic type specification.
    I think you will have to redesign the program logic. As i had already said in my earlier post, it is not proper to have the attributes specified statically while the class itself is specified dynamically.
    Your situation is somewhat similar to -
    DATA ITAB TYPE TABLE OF SPFLI.
    PERFORM TEST TABLES ITAB.
    FORM TEST TABLES ITAB.
      LOOP AT ITAB.
        WRITE: / ITAB-CARRID.
      ENDLOOP.
    ENDFORM.
    Hope the point is clear.
    Regards,
    Anand Mandalika.

  • Dynamically created object

    Hi
    I did not find any way of accessing a dynamically created
    object by using notation this[id].
    As the code below shows, only hard coded id objects are
    recognised by this[id] notation.
    Any way to do it ?
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    creationComplete="init()">
    <mx:Script>
    <![CDATA[
    import mx.controls.*;
    public var l:Label;
    public function init():void {
    l = new Label();
    l.id = 'label1';
    l.text = 'firstname';
    addChild(l);
    public function fred(event:Event):void {
    mytextarea1.text+=this['mytextarea1'].name + '\n';
    mytextarea1.text+=this['label1'].name + '\n';
    ]]>
    </mx:Script>
    <mx:TextArea id="mytextarea1" width="1300"
    height="200"/>
    <mx:Button click="fred(event)" />
    </mx:Application>

    Thanks guys but I think my example is too simple compared to
    my "real world" current problem ...
    In my project, I dynamically create containers and children.
    I'd like to reach directly a then dynamically created child by its
    id, but notation this[id] is not recognised.
    A better example : form f1 (id='form1) contains 2 labels (ids
    'form1label1' and 'form1label2') ; f1 is included in form f0.
    Calling this['form1label1'] crashed even though it is a
    declared id control ! The same example using <mx> tags would
    not crash...
    And I have gone aroud 10000 articles but never found an
    answer to this.
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    creationComplete="init()">
    <mx:Script>
    <![CDATA[
    import mx.controls.*;
    import mx.containers.*;
    public function init():void {
    var f0:VBox = new VBox();
    var f1:VBox = new VBox();
    var l:Label;
    f0.id = 'form0';
    f1.id = 'form1';
    l= new Label();
    l.id = 'form1label1';
    l.text = 'mobile';
    f1.addChild(l);
    l = new Label();
    l.id = 'form1label2';
    l.text = 'work';
    f1.addChild(l);
    f0.addChild(f1);
    addChild(f0);
    public function fred(event:Event):void {
    mytextarea1.text+=Label( this['form1label1'] ).text + '\n';
    ]]>
    </mx:Script>
    <mx:TextArea id="mytextarea1" width="1300"
    height="200"/>
    <mx:Button click="fred(event)" />
    </mx:Application>

  • How to create custom BOL object for dynamic query in CRM 7.0

    Hi,
    Could anyone please explain me with steps that how to create the custom BOL object for dynamic query in CRM 7.0, I did it in previous version but its throwing exception when i try to create the object of my dynamic query class. I just defined the entry of my in crmv_obj_btil to create the dynamic query BOL object. do i need to do any other thing also to make it work?
    Regards,
    Kamesh Bathla
    Edited by: Kamesh Bathla on Jul 6, 2009 5:12 PM

    Hi Justin,
    First of thanks for your reply, and coming to my requirement, I need to report the list of items which are there in the dynamic select statement what am getting from the DB. The select statement number of columns may vary in my example for different countries the select item columns count is different. For US its '15', for UK it may be 10 ...like so, and some of the column value might be a combination or calculation part of other table columns (The select query contains more than one table in the from clause).
    In order to execute the dynamic select statement and return the result i choose to write a function which will parse the cursor for dynamic query and then iterate the values and construct a Type Object and append it to the pipe row.
    Am relatively very new for these sort of things, welcome in case of any suggestions to make it simple (Instead of the function what i thought to work with) also a sample narrating the new procedure will be appreciated.
    Thanks in Advance,
    mallikj2.

  • Dynamic creating SAPBobsCOM objects using reflection

    Hi All,
    I'm writing a tool (C#) for SBO for exporting object (oItems, oBanks etc.) to XML files. And I have a problem how to dynamically create object by it's string description. I'm trying to create it using System.Reflection, but cant't find right way to create it.
    It must be like that, but it doesn't work:
               Type  sboObject = System.Type.GetType("SAPbobsCOM.Items, Interop.SAPbobsCOM", true, true);
               object ibaseObject = Activator.CreateInstance(sboObject);
    Any ideas?)

    Hi
    I've writen this code for instantiating DI API objects using .NET reflection
            private object getObjectBo(int tipo) //tipo: integer representing the object type
                object o = null;
                try
                    Type tipoComp = kernel.Company.GetType(); //Type SAPbobsCOM.Company
                    MethodInfo info = tipoComp.GetMethod("GetBusinessObject");
                    object[] parametros = new object[1]; //Parameters of GetBusinessObject
                    object tipoObj = Enum.ToObject(typeof(SAPbobsCOM.BoObjectTypes), tipo);
                    parametros[0] = tipoObj;
                    o = info.Invoke(kernel.Company, parametros);  //Calling GetBusinessObject           
                catch (Exception ex)
                    kernel.Application.MessageBox(ex.Message, 0, "", "", "");
                return o;
    The object returned is COM object (not managed code) then we can't use .NET reflection directly for exploring its methods and attributes .. I think we should use C++ and IDispatch interface, but i don't know how do this yet.
    Hope it helps.
    Regards

  • Trouble accessing a property of an instance inside a dynamically created MC.

    I’m dynamically creating an instance of a movieclip, call it a game piece. This game piece has 4 frames, each with a movieclip called “base” (although one is red, one blue, one green, one yellow). When the game piece is created I set the frame to indicate player color. I’m also changing the alpha of “base” to 1.0 when it’s being dragged, 0.5 when it’s dropped.
    Using the following code, everything works fine if the game piece color is set to the base in frame 1 (red). If the game piece is created and the timeline moved to a frame other than 1, I throw an error when trying to access base.alpha (this would be the second, third, and fourth instances of base in the game piece timeline). Here’s the strange part, this is only a problem when the game piece is first created and added to the display list. Once created, even after the error has been thrown, I can access the alpha of bases 2, 3, and 4 in the drag start/stop listeners. Here’s a link to the work in progress, and the relevant sections of code (shortened for brevity, t1 is the top left piece on the pallet, others just repeat the same code):
    http://www.appliedcd.com/stormbringergrey/cw/CW_Combat_Sim.html
    var gUnitArray:Array = new Array();
    function initUnitPallet():void {
         t1.addEventListener(MouseEvent.MOUSE_DOWN,popNewUnit);
         // other pieces the same as above
         clanSelect.addEventListener(Event.CHANGE,changeClan);
    function popNewUnit(e:MouseEvent):void {
         var isBase:String = e.target.name;
         var unitType:String = e.target.parent.name;
         if (isBase=="base") {
              var classRef:Class = getDefinitionByName(unitType + "master") as Class;
              var newUnit:MovieClip = new classRef();
              gUnitArray.push(newUnit);
              var newUnitIndex:uint = gUnitArray.length-1;
              this.addChild(gUnitArray[newUnitIndex]);
              gUnitArray[newUnitIndex].gotoAndPlay(clanSelect.selectedItem.data);
              // the following line is a problem if the above gotoAndPlay is anything other than frame 1
              gUnitArray[newUnitIndex].base.alpha = 1.0;
              gUnitArray[newUnitIndex].x = e.stageX;
              gUnitArray[newUnitIndex].y = e.stageY;
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_DOWN,startUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_UP,stopUnitDrag);
              gUnitArray[newUnitIndex].startDrag();
    function startUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 1.0;
         e.currentTarget.startDrag();
    function stopUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 0.5;
         e.currentTarget.stopDrag();
    function changeClan(e:Event):void {
         var myClanColor:String = e.target.selectedItem.data
         t1.gotoAndPlay(myClanColor);
         // other pieces the same as above

    Thanks, pointed me in the right direction. I tried implementing a RENDER listener (see commented code below), and it worked, but unreliably. In my case the RENDER event fired before the entire frame was instantiated in about 1 out of 10 tries. I found a bunch of old posts (2007 or so) implying the RENDER event is buggy in Flash at best (apparently it has a better history in Flex). I couldn’t find more recent posts indicating better behavior, but I was unable to eliminate the residual errors in my project.
    Fortunately, while reading I was reminded of the EXIT_FRAME event which seems to work perfectly (but forces me to player 10, not a big deal). Final code below along with proper Z-order control.
    (BTW: I really miss the old forum's code box)
    function initUnitPallet():void {
         t1.addEventListener(MouseEvent.MOUSE_DOWN,popNewUnit);
         clanSelect.addEventListener(Event.CHANGE,changeClan);
    function changeClan(e:Event):void {
         var myClanColor:String = e.target.selectedItem.data
         t1.gotoAndPlay(myClanColor);
    function popNewUnit(e:MouseEvent):void {
         var isBase:String = e.target.name;
         var unitType:String = e.currentTarget.name;
         if (isBase=="base") {
              var classRef:Class = getDefinitionByName(unitType + "master") as Class;
              var newUnit:MovieClip = new classRef();
              gUnitArray.push(newUnit);
              var newUnitIndex:uint = gUnitArray.length-1;
              this.addChild(gUnitArray[newUnitIndex]);
              gUnitArray[newUnitIndex].gotoAndPlay(clanSelect.selectedItem.data);
              gUnitArray[newUnitIndex].x = e.stageX;
              gUnitArray[newUnitIndex].y = e.stageY;
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_DOWN,startUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(MouseEvent.MOUSE_UP,stopUnitDrag);
              gUnitArray[newUnitIndex].addEventListener(Event.EXIT_FRAME,renderUnit);
              // gUnitArray[newUnitIndex].addEventListener(Event.RENDER,renderUnit);
              // stage.invalidate();
              gUnitArray[newUnitIndex].startDrag();
    function renderUnit(e:Event):void {
         e.currentTarget.removeEventListener(Event.EXIT_FRAME,renderUnit);
         // e.currentTarget.removeEventListener(Event.RENDER,renderUnit);
         e.currentTarget.base.alpha = 1.0;
    function startUnitDrag(e:MouseEvent):void {
         if(this.numChildren > 1){
              e.currentTarget.parent.setChildIndex(e.currentTarget,this.numChildren-1);
         e.currentTarget.base.alpha = 1.0;
         e.currentTarget.startDrag();
    function stopUnitDrag(e:MouseEvent):void {
         e.currentTarget.base.alpha = 0.5;
         e.currentTarget.stopDrag();

  • Accessing dynamically created movieclips

    I have an application that I am adding movieclips to a
    container movieclip through a for loop and repeatedly calling
    myClip.addChild(theNewClip). Now I have a dozen clips in my
    container and it seems like the only way to access the clip is to
    use the getChildByName() method and cast it into a temporary clip
    so I can get at the its properties.
    Is this the best and/or only way to do this? Does the old AS2
    myContainer["theName"].property not work with dynamically created
    movieclips? It doesn't seem to work for me anymore.
    Anyway I am getting the clips now, but I was hoping someone
    could show me a better way to access a dynamically created movie
    clip.

    In AS3, this is probably not much better, but you can
    generically loop through all movie clips:

  • Accessing Dynamically created Button

    Hi,
    Can someone give me an example how to access dynamically created button? 
    I know how to create a button dynamically but don't know how to access from AS3.
    Thanks!

    Hi,
    Please go through following links.
    1) http://www.daveoncode.com/2009/05/20/objectcollector-accessing-dynamic-generated-flex-obje cts-by-id/
    2) http://stackoverflow.com/questions/6740813/flex-assigning-events-to-dynamically-created-bu ttons
    3) http://www.justskins.com/forums/adding-click-event-to-35785.html
    Thanks and Regards,
    Vibhuti Gosavi | [email protected] | www.infocepts.com

  • Access dynamically created JTextField

    i need to create an unknown number of JTextField in my GUI, and this number depends on a user-input value.
    Subsequently, i will need to read the strings from the JTextField. This is how I dynamically created my JTextField:
    while (i < num-1) {
    rangePanel.add(new JTextField("0")); // 0 is merely a default value
    how can i access the created JTextFields?
    thanx

    Is this the preferred style?
    I currently have an array of JTextFields but am having real grief (input on screen not availble fro getText(), etc.), code fragment:
    JTextField [] tf = new JTextField[10];
    for (i=0, i<10; i++) {
    ft[i] = new JTextField(15);
    user enters data on screen...
    String str = tf[0].getText() returns blank. Also <tab>ing jumps between first position and where ever mouse originally landed in field.

  • Events from dynamically created CNiGraph object

    Hi,
    My application requires me to create a variable number of CNiGraph objects at runtime. I'm plotting data from a file and I don't know in advance how many variables there will be. So, I'm dynamically creating the graph objects in the OnInitDialog() method of my CView derived class. The thing I'm stuck on is how to get the various messages from the graph when it is created dynamically like this. I can't use Class Wizard for the message maps because the number is variable. I suppose I could create a bunch of static message maps (more than I think I would ever need), but is there a cleaner way to do this? I'm using Visual C++ 6.0.
    Thanks, Bob

    Ok, I figured it out. You need to change the event sink map to use the ON_EVENT_RANGE instead of ON_EVENT. The help for ON_EVENT_RANGE tells you all you need to know.

  • This[id] doesn't see dynamically created objects????

    Hey all!
    If i have
    <mx:Canvas id="TopCanvas" initialize="Init()">
    <mx:Canvas id="VisibleCanvas" >
    </mx:Canvas>
    </mx:Canvas>
    <fx:Script>
    function Init(){
    var NewO = new Canvas();
    NewO.id="InvisibleCanvas";
    TopCanvas.addChild(NewO);
    if (this["VisibleCanvas"]){
    //We can see non-dynamically created canvas
    if (this["InvisibleCanvas"]){
    //ERROR we cannot see the new one!
    Help please! How to access dynamically created Canvases via their id? I know i can save linkage to them in array, but i need to do it through id.
    Cheers!

    If you set the id property on a dynamically created instance, you can check
    the id of an instance later if it happens to be a target of an event, for
    example.  But it will not be assigned to a variable in the document.
    By default, MXML generates a non-dynamic class so you can't add properties
    to it at runtime.  You can set the name property and search the immediate
    parent by calling getChildByName, but if the parent is not the document, you
    still can't search the document.

  • How to access a dynamic created attribute in a context node?

    <i>Hello,</i>
    <i>who could help? I can't set a value for a dynamically created attribute which is bind to a table.</i>
    <i>My context of the view looks as follow (is defined in NetWeaver):</i>
      - Context
         - Availability (Node)
             - vctxService (Attribute)
             - vctxServiceDesc (Attribute)
             - ... (further predefined attributes)
             - ... (some have to be set dynamically as follows)
    <i>Then I have added attributes dynamically in the wdDoModifyView(...) - method, as follows:</i>
    for (int i = 0; i < max; i++) {
       // some code to dynamically create table columns
       // adding attributes dynamically
       IWDAttributeInfo attrInfo =       wdContext.nodeAvailability().getNodeInfo().      addAttribute("vctxAvailability_" + i, "ddic:com.sap.dictionary.string");
       tv.bindText(attrInfo); // bind to TextView in table
    <i>In the method onPlugFrom... I tried to set the values for the attributes "vctxAvailability_ + i" as follows:</i>
    for (int i = 0; i < max; i++) {
       IAvailabilityElement newAvailNodeElement =     wdContext.createAvailabilityElement();
       // some values will be set for the
       // predefined attributes of AvailabilityNode
       // newAvailNodeElement.set...( value );
       // newAvailNodeElement.setVctxService( xy.getServ() );
       // now the values of dynamically created and added
       // attributes in AvailabilityNode will be added
       // THIS DOESN'T WORK
       newAvailNodeElement.setAttributeValue    ("vctxAvailability_" + i, "value" + i);
    <i>It would be great if someone could help me.
    Thanks in advance.
    Kind regards,
    Carsten</i>

    Carsten,
    Here is a sample code that creates context attributes dynamically and also sets values:
    //Creates a node
    IWDNodeInfo nodeInfo = wdContext.wdGetAPI().getRootNodeInfo().addChild("TestNode", null, true, true, false, true, false, true, null, null, null);
    //If you want to bind the node to a model node then the
    //second argument to the above method should be the
    //model class.
    //Creates an attribute under the node just created.
    IWDAttributeInfo testAttrib = wdContext.wdGetAPI().getRootNodeInfo().getChild("TestNode").addAttribute("testAttrib", "ddic:com.sap.dictionary.string");
    IWDNodeElement testNode = wdContext.getChildNode("TestNode", IWDNode.LEAD_SELECTION).getCurrentElement();
    IWDNode testNode2 = wdContext.getChildNode("TestNode", IWDNode.LEAD_SELECTION);
    //Now you can bind testNode with the Model Node
    //You can also set a value to the newly created attribute
    testNode.setAttributeValue("testAttrib", new String("Value"));
    Hope this helps.
    Shakeel

Maybe you are looking for