What I forget to say is that the problems are the
NullPointerExceptions when you add inner elements not at the last
position.

The project is about creating exams. The outer container are parts of
the exams with a description what the part is about. The inner
container are the exercise with a description what the students have
to do.


On Aug 12, 6:01 pm, Ian Bambury <ianbamb...@gmail.com> wrote:
> Hi Tobe,
> Sorry - what I meant was: can you give a use case example for what you are
> trying to do.
>
> I need more of an idea of how it will be used before I can get my head
> around this.
>
> For example, you might want to create a set of instructions (say a recipe)
> where everything is done in order so you need to be able to insert/append
> steps and move them up and down.
>
> I had a look at your example code and some of it works, but I'm getting
> NullPointerExceptions for addInner.
>
> I don't understand why you need addinner and addouter. A real-world example
> would help.
>
> Cheers,
>
> Ian
>
> http://examples.roughian.com
>
> 2009/8/12 Tobe <tobias.jungnic...@googlemail.com>
>
>
>
>
>
> > @Ian:
> > ok, I have an example what I created so far.I used FlexTables, because
> > I think it's the right one for this problem.
> > All starts with a FlexTable and a button inside for new outer
> > elements. If the user clicks the button, there will be added one new
> > row with a TextBox and a button inside a new inner FlexTable to add a
> > new inner element and one row to add a new outer element at the end.
> > The user can add new outer elements after the first outer button and
> > at the end (after the second outer button) - so he can always add
> > outer elements at any position. If the user adds the inner button
> > there will be added, like the outer one, one new row to the inner
> > FlexTable with a new TextBox and one new row with a button to add new
> > inner elements. So shall be just this two layers and no third one, so
> > there will be added just TextBoxes in the inner FlexTable and no new
> > buttons to add inner-inner elements.
> > Here is my code:
>
> > package de.testgwt.client;
>
> > import com.google.gwt.core.client.EntryPoint;
> > import com.google.gwt.event.dom.client.ClickEvent;
> > import com.google.gwt.event.dom.client.ClickHandler;
> > import com.google.gwt.user.client.ui.AbsolutePanel;
> > import com.google.gwt.user.client.ui.Button;
> > import com.google.gwt.user.client.ui.FlexTable;
> > import com.google.gwt.user.client.ui.HTML;
> > import com.google.gwt.user.client.ui.RootPanel;
> > import com.google.gwt.user.client.ui.TextBox;
> > import com.google.gwt.user.client.ui.HTMLTable.Cell;
>
> > public class TestGWT implements EntryPoint {
>
> >        FlexTable tableOuter;
> >        FlexTable tableInner;
> >        AbsolutePanel divOuter;
> >        AbsolutePanel divInner;
>
> >        public void onModuleLoad() {
> >                System.out.println("---------------");
>
> >                Button buttonAddOuter = new Button("add uter");
> >                buttonAddOuter.addClickHandler(new ClickHandler(){
> >                        public void onClick(ClickEvent event){
> >                                add(event);
> >                        }
> >                });
>
> >                divOuter = new AbsolutePanel();
> >                divOuter.add(buttonAddOuter);
>
> >                tableOuter = new FlexTable();
> >                tableOuter.setWidget(0, 0, divOuter);
> >                RootPanel.get().add(tableOuter);
> >        }
>
> >        public void add(ClickEvent event){
> >                Cell cellForEvent = tableOuter.getCellForEvent(event);
> >                System.out.println("tableOuter: "+tableOuter.hashCode()+" /
> > row:
> > "+cellForEvent.getRowIndex());
>
> >                divOuter = new AbsolutePanel();
> >                divOuter.add(new TextBox());
>
> >                tableInner = new FlexTable();
>
> >                Button buttonAddInner = new Button("add Inner");
> >                buttonAddInner.addClickHandler(new ClickHandler(){
> >                        public void onClick(ClickEvent event){
> >                                addInner(event);
> >                        }
> >                });
>
> >                tableInner.setWidget(0, 0, buttonAddInner);
> >                divOuter.add(tableInner);
>
> >                tableOuter.insertRow(cellForEvent.getRowIndex()+1);
> >                tableOuter.setWidget(cellForEvent.getRowIndex()+1, 0,
> > divOuter);
>
> >                Button buttonAddOuter = new Button("add outer");
> >                buttonAddOuter.addClickHandler(new ClickHandler(){
> >                        public void onClick(ClickEvent event){
> >                                add(event);
> >                        }
> >                });
>
> >                divOuter = new AbsolutePanel();
> >                divOuter.add(buttonAddOuter);
>
> >                tableOuter.insertRow(cellForEvent.getRowIndex()+2);
> >                tableOuter.setWidget(cellForEvent.getRowIndex()+2, 0,
> > divOuter);
> >        }
>
> >        public void addInner(ClickEvent event){
> >                Cell cellForEvent = tableInner.getCellForEvent(event);
> >                System.out.println("tableInner: "+tableInner.hashCode()+" /
> > row:
> > "+cellForEvent.getRowIndex());
>
> >                divInner = new AbsolutePanel();
> >                divInner.add(new TextBox());
>
> >                tableInner.insertRow(cellForEvent.getRowIndex()+1);
> >                tableInner.setWidget(cellForEvent.getRowIndex()+1, 0,
> > divInner);
>
> >                Button buttonAddInner = new Button("add inner");
> >                buttonAddInner.addClickHandler(new ClickHandler(){
> >                        public void onClick(ClickEvent event){
> >                                addInner(event);
> >                        }
> >                });
>
> >                divInner = new AbsolutePanel();
> >                divInner.add(buttonAddInner);
>
> >                tableInner.insertRow(cellForEvent.getRowIndex()+2);
> >                tableInner.setWidget(cellForEvent.getRowIndex()+2, 0,
> > divInner);
> >         }
>
> > }
>
> > On Aug 10, 8:27 pm, Ian Bambury <ianbamb...@gmail.com> wrote:
> > > Hi Tobe,
> > > You seem to have changed from divs in the root panel to a widget, which
> > is
> > > probably the right way to go - depends on what you are doing, and you
> > don't
> > > say.
>
> > > It does rather depend on how you are displaying things, and what you are
> > > displaying. If there are columns (apart from the buttons) then are they
> > > fixed-width or do they self-adjust? Are the items sorted in some way?
>
> > > If you could give (even a theoretical) example of what this list consists
> > > of, then it will be easier to answer. I suspect that the lack of response
> > is
> > > because people have too many possibilities in mind to comment
>
> > > Ian
>
> > >http://examples.roughian.com
>
> > > 2009/8/10 Tobe <tobias.jungnic...@googlemail.com>
>
> > > > I'm currently trying to do it with a FlexTable, but the problem is
> > > > that I don't know how I can find out if the user really clicked the
> > > > button or just somewhere inside the table.
>
> > > > On Aug 10, 3:41 pm, Tobe <tobias.jungnic...@googlemail.com> wrote:
> > > > > I don't really need to know how to create the Array. I already
> > created
> > > > > a Vector of button and adding the buttons to the Vector. But my
> > > > > problem is that I don't know how to handle with it. How can I add the
> > > > > new div at the position behind the corresponding button on the
> > > > > RootPanel?
>
> > > > > On Aug 7, 5:22 pm, Tobe <tobias.jungnic...@googlemail.com> wrote:
>
> > > > > > Hi,
> > > > > > I have a list, which items are divs, and want the user to add new
> > > > > > items at any position. So if there are 2 item there have to be 3
> > > > > > button, one before the first, one between both and one after the
> > last.
> > > > > > Can somebody tell me how to create this "array" of buttons.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to