Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4239462
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T03:02:18+00:00 2026-05-21T03:02:18+00:00

This app attempts to display its 3 views on the main display page, as

  • 0

This app attempts to display its 3 views on the main display page, as follows:

  1. the AAAView at the “top of page”
  2. the BBBView at the “middle of page”
  3. the CCCView at the “bottom of page”

PROBLEM: Though the app runs, it does NOT position the views (i.e., “AAAView”, “BBBView”, “CCCView”) as described above.

(For example, the “AAAView” is displayed at the “bottom of page” and the “BBBView” and “CCCView” are displayed in the “middle of page”…–Why is this?)

I assume that the problem is a result of my mis-using (misunderstanding?) the ActivityMapper/ActivityManager classes to place (or position) the views/panels properly on the main page.

Unfortunately, I have not been able to locate any comprehensive documentation on how to use the ActivityMapper/ActivityManager classes properly/effectively.
(The examples apps I’ve seen thus far have generally been too complex for me to isolate exactly how the ActivityMapper/ActivityManager classes
work to specify where a panel/view displays on a main page)

The code used in the app is shown, below…

(any advice or explanation of what I am doing wrong would be very appreciated…. –And, I imagine that I am not the only person struggling with this concept)

Thankyou for any help!!

/src/aaa/bbb/ccc/app.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='app'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.google.gwt.user.theme.standard.Standard' />
    <inherits name="com.google.gwt.activity.Activity" />
    <inherits name="com.google.gwt.place.Place" />
    <entry-point class='aaa.bbb.ccc.client.AppEntryPoint' />
    <source path='client' />
    <source path='shared' />
</module>

/src/aaa/bbb/ccc/client/AppEntryPoint

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.ActivityManager;

public class AppEntryPoint extends LayoutPanel implements EntryPoint
{

    private LayoutPanel mainView = null;

    interface AppEntryPointUiBinder extends UiBinder<LayoutPanel, AppEntryPoint>
    {
    }

    private static AppEntryPointUiBinder uiBinder = GWT.create(AppEntryPointUiBinder.class);

    @UiField
    SimplePanel topOfPage;

    @UiField
    SimplePanel middleOfPage;

    @UiField
    SimplePanel bottomOfPage;

    public AppEntryPoint()
    {
        super();
    }

    AcceptsOneWidget top = new AcceptsOneWidget()
    {
        public void setWidget(IsWidget activityWidget)
        {
            Widget widget = Widget.asWidgetOrNull(activityWidget);
            mainView.setWidgetVisible(topOfPage, widget != null);
            topOfPage.setWidget(widget);
        }
    };

    AcceptsOneWidget mid = new AcceptsOneWidget()
    {
        public void setWidget(IsWidget activityWidget)
        {
            Widget widget = Widget.asWidgetOrNull(activityWidget);
            mainView.setWidgetVisible(middleOfPage, widget != null);
            middleOfPage.setWidget(widget);
        }
    };    

    AcceptsOneWidget bot = new AcceptsOneWidget()
    {
        public void setWidget(IsWidget activityWidget)
        {
            Widget widget = Widget.asWidgetOrNull(activityWidget);
            mainView.setWidgetVisible(bottomOfPage, widget != null);
            bottomOfPage.setWidget(widget);
        }
    };

    public void onModuleLoad()
    {
        ClientFactory clientFactory = GWT.create(ClientFactory.class);
        mainView = uiBinder.createAndBindUi(this);
        EventBus eventBus = clientFactory.getEventBus();

        ActivityMapper aaaActivityMapper = new AAAActivityMapper(clientFactory);
        ActivityManager aaaActivityManager = new ActivityManager(aaaActivityMapper, eventBus);
        aaaActivityManager.setDisplay(top);

        ActivityMapper bbbActivityMapper = new BBBActivityMapper(clientFactory);
        ActivityManager bbbActivityManager = new ActivityManager(bbbActivityMapper, eventBus);
        bbbActivityManager.setDisplay(mid);

        ActivityMapper cccActivityMapper = new CCCActivityMapper(clientFactory);
        ActivityManager cccActivityManager = new ActivityManager(cccActivityMapper, eventBus);
        cccActivityManager.setDisplay(bot);

        AppPlaceHistoryMapper historyMapper = GWT.create(AppPlaceHistoryMapper.class);

        PlaceController placeController = clientFactory.getPlaceController();
        PlaceHistoryHandler historyHandler = new PlaceHistoryHandler(historyMapper);
        historyHandler.register(placeController, eventBus, new AAAPlace());

        RootLayoutPanel.get().add(mainView);
        historyHandler.handleCurrentHistory();
    }
}

/src/aaa/bbb/ccc/client/AppEntryPoint.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:h='urn:import:aaa.bbb.ccc.client'>
    <ui:style src="app.css" />
    <g:LayoutPanel width="800" height='600'>
        <g:layer left='10%' right='10%' top='4px' height='10em'>
            <g:SimplePanel ui:field="topOfPage"/>
        </g:layer>
        <g:layer left='10%' right='10%' top='204px' height='10em'>
            <g:SimplePanel ui:field="middleOfPage"/>
        </g:layer>
        <g:layer left='10%' right='10%' top='404px' height='10em'>
            <g:SimplePanel ui:field="bottomOfPage"/>
        </g:layer>
    </g:LayoutPanel>
</ui:UiBinder>

/src/aaa/bbb/ccc/client/ClientFactory.java

package aaa.bbb.ccc.client;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.place.shared.PlaceController;

public class ClientFactory
{
    public ClientFactory()
    {
    }

    private static final EventBus eventBus = new SimpleEventBus();
    private static final PlaceController placeController = new PlaceController(eventBus);
    private static final AAAView aaaView = new AAAView();
    private static final BBBView bbbView = new BBBView();
    private static final CCCView cccView = new CCCView();

    public EventBus getEventBus()
    {
        return eventBus;
    }

    public PlaceController getPlaceController()
    {
        return placeController;
    }

    public AAAView getAAAView()
    {
        return aaaView;
    }

    public BBBView getBBBView()
    {
        return bbbView;
    }

    public CCCView getCCCView()
    {
        return cccView;
    }
}

/src/aaa/bbb/ccc/client/AppPlaceHistoryMapper.java

package aaa.bbb.ccc.client;

import com.google.gwt.place.shared.PlaceHistoryMapper;
import com.google.gwt.place.shared.WithTokenizers;

@WithTokenizers({AAAPlace.Tokenizer.class, BBBPlace.Tokenizer.class })
public interface AppPlaceHistoryMapper extends PlaceHistoryMapper
{
}

/src/aaa/bbb/ccc/client/AAAView.java

package aaa.bbb.ccc.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;

public class AAAView extends SimplePanel implements IsWidget, AcceptsOneWidget
{
    private final HTMLPanel aaaView;
    private Presenter presenter;

    private static AAAViewUiBinder uiBinder = GWT.create(AAAViewUiBinder.class);   
    interface AAAViewUiBinder extends UiBinder<HTMLPanel, AAAView>
    {
    }

    public AAAView()
    {
        aaaView = uiBinder.createAndBindUi(this);
    }

    @UiField
    Label aaaViewLabel;

    @UiField
    Button bbbButton;

    @UiHandler("bbbButton")
    void onBBBButtonClicked(ClickEvent event)
    {
        presenter.gotoBBBPlace();
    }

    @UiField
    Button cccButton;

    @UiHandler("cccButton")
    void onCCCButtonClicked(ClickEvent event)
    {
        presenter.gotoCCCPlace();
    }

    public void setName(String name)
    {
        aaaViewLabel.setText(name);
    }

    public void setPresenter(Presenter presenter)
    {
        this.presenter = presenter;
    }    
    public interface Presenter
    {
        void gotoBBBPlace();
        void gotoCCCPlace();
    }

    @Override
    public Widget asWidget()
    {
        return aaaView;
    }
}

/src/aaa/bbb/ccc/client/AAAView.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style src="app.css" />
    <g:HTMLPanel  ui:field="aaaView" styleName='{style.aaaView}'>
        <g:Label  ui:field="aaaViewLabel" text="AAAView" styleName='{style.viewLabel}'></g:Label>
        <g:Button ui:field="bbbButton" text="go to bbbView"></g:Button>
        <g:Button ui:field="cccButton" text="go to cccView"></g:Button>
    </g:HTMLPanel>
</ui:UiBinder>

/src/aaa/bbb/ccc/client/AAAActivity.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;

public class AAAActivity extends AbstractActivity implements AAAView.Presenter
{
    private String name = "...the AAAView...";    
    private final AAAView aaaView;
    private final PlaceController placeController;

    public AAAActivity(ClientFactory clientFactory)
    {
        aaaView = clientFactory.getAAAView();
        placeController = clientFactory.getPlaceController();
    }

    @Override
    public void start(AcceptsOneWidget panel, EventBus eventBus)
    {
        aaaView.setPresenter(this);
        aaaView.setName(name);
        panel.setWidget(aaaView.asWidget());
    }    

    @Override
    public void gotoBBBPlace()
    {
        placeController.goTo(new BBBPlace());
    }

    @Override
    public void gotoCCCPlace()
    {
        placeController.goTo(new CCCPlace());
    }    
}

/src/aaa/bbb/ccc/client/AAAActivityMapper.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;

public class AAAActivityMapper implements ActivityMapper
{
    private ClientFactory clientFactory;

    public AAAActivityMapper(ClientFactory clientFactory)
    {
        this.clientFactory = clientFactory;
    }

    @Override
    public Activity getActivity(Place place)
    {

        if (place instanceof BBBPlace)
        {
            return new BBBActivity(clientFactory);//return bbbActivityMapper.getActivity(place);
        }
        else
        if (place instanceof CCCPlace)
        {
            return new CCCActivity(clientFactory);//return cccActivityMapper.getActivity(place);
        }

        return null;
    }
}

/src/aaa/bbb/ccc/client/AAAPlace.java

package aaa.bbb.ccc.client;

import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceTokenizer;
import com.google.gwt.place.shared.Prefix;

public class AAAPlace extends Place
{
    private String aaaName = "AAAPlace";

    public AAAPlace()
    {
    }

    public String getAAAName()
    {
        return aaaName;
    }

    @Prefix("AAAPlace")
    public static class Tokenizer implements PlaceTokenizer<AAAPlace>
    {
        @Override
        public String getToken(AAAPlace place)
        {
            return place.getAAAName(); //"AAAName"; //place.getAAAName();
        }

        @Override
        public AAAPlace getPlace(String token)
        {
            return new AAAPlace();
        }
    }
}

/src/aaa/bbb/ccc/client/BBBView.java

package aaa.bbb.ccc.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;

public class BBBView extends SimplePanel implements IsWidget, AcceptsOneWidget
{
    private final HTMLPanel bbbView;
    private Presenter presenter;

    private static BBBViewUiBinder uiBinder = GWT.create(BBBViewUiBinder.class);    
    interface BBBViewUiBinder extends UiBinder<HTMLPanel, BBBView>
    {
    }

    public BBBView()
    {
        bbbView = uiBinder.createAndBindUi(this);
    }

    @UiField
    Label bbbViewLabel;

    @UiField
    Button aaaButton; 

    @UiHandler("aaaButton")
    void onAAAButtonClicked(ClickEvent event)
    {
        presenter.gotoAAAPlace();
    }

    @UiField
    Button cccButton; 

    @UiHandler("cccButton")
    void onCCCButtonClicked(ClickEvent event)
    {
        presenter.gotoCCCPlace();
    }

    public void setName(String name)
    {
        bbbViewLabel.setText(name);
    }

    public void setPresenter(Presenter presenter)
    {
        this.presenter = presenter;
    }    
    public interface Presenter
    {
        void gotoAAAPlace();
        void gotoCCCPlace();
    }

    @Override
    public Widget asWidget()
    {
        return bbbView;
    }
}

/src/aaa/bbb/ccc/client/BBBView.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style src="app.css" />
    <g:HTMLPanel  ui:field="bbbView" styleName='{style.bbbView}'>
        <g:Label  ui:field="bbbViewLabel" text="BBBView" styleName='{style.viewLabel}'></g:Label>
        <g:Button ui:field="aaaButton" text="go to aaaView"></g:Button>
        <g:Button ui:field="cccButton" text="go to cccView"></g:Button>
    </g:HTMLPanel>
</ui:UiBinder> 

/src/aaa/bbb/ccc/client/BBBActivity.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;

public class BBBActivity extends AbstractActivity implements BBBView.Presenter
{
    private String name = "...the BBBView...";    
    private final BBBView bbbView;
    private final PlaceController placeController;

    public BBBActivity(ClientFactory clientFactory)
    {
        bbbView = clientFactory.getBBBView();
        placeController = clientFactory.getPlaceController();
    }

    @Override
    public void start(AcceptsOneWidget panel, EventBus eventBus)
    {
        bbbView.setPresenter(this);
        bbbView.setName(name);
        panel.setWidget(bbbView.asWidget());
    }    

    @Override
    public void gotoAAAPlace()
    {
        placeController.goTo(new AAAPlace());
    }

    @Override
    public void gotoCCCPlace()
    {
        placeController.goTo(new CCCPlace());
    }
}

/src/aaa/bbb/ccc/client/BBBActivityMapper.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;

public class BBBActivityMapper implements ActivityMapper
{
    private ClientFactory clientFactory;

    public BBBActivityMapper(ClientFactory clientFactory)
    {
        this.clientFactory = clientFactory;
    }

    @Override
    public Activity getActivity(Place place)
    {
        if (place instanceof AAAPlace)
        {
            return new AAAActivity(clientFactory);//aaaActivityMapper.getActivity(place);
        }
        else
        if (place instanceof CCCPlace)
        {
            return new CCCActivity(clientFactory);//return cccActivityMapper.getActivity(place);
        }

        return null;
    }
}

/src/aaa/bbb/ccc/client/BBBPlace.java

package aaa.bbb.ccc.client;

import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceTokenizer;
import com.google.gwt.place.shared.Prefix;

public class BBBPlace extends Place
{
    private String bbbName = "BBBPlace";

    public BBBPlace()
    {
    }

    public String getBBBName()
    {
        return bbbName;
    }

    @Prefix("BBBPlace")
    public static class Tokenizer implements PlaceTokenizer<BBBPlace>
    {
        @Override
        public String getToken(BBBPlace place)
        {
            return place.getBBBName(); //"BBBName"; //place.getBBBName();
        }

        @Override
        public BBBPlace getPlace(String token)
        {
            return new BBBPlace();
        }
    }
}

/src/aaa/bbb/ccc/client/CCCView.java

package aaa.bbb.ccc.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;

public class CCCView extends SimplePanel implements IsWidget, AcceptsOneWidget
{
    private final HTMLPanel cccView;
    private Presenter presenter;

    private static CCCViewUiBinder uiBinder = GWT.create(CCCViewUiBinder.class);   
    interface CCCViewUiBinder extends UiBinder<HTMLPanel, CCCView>
    {
    }

    public CCCView()
    {
        cccView = uiBinder.createAndBindUi(this);
    }

    @UiField
    Label cccViewLabel;

    @UiField
    Button aaaButton;

    @UiHandler("aaaButton")
    void onAAAButtonClicked(ClickEvent event)
    {
        presenter.gotoAAAPlace();
    }

    @UiField
    Button bbbButton;

    @UiHandler("bbbButton")
    void onBBBButtonClicked(ClickEvent event)
    {
        presenter.gotoBBBPlace();
    }

    public void setName(String name)
    {
        cccViewLabel.setText(name);
    }

    public void setPresenter(Presenter presenter)
    {
        this.presenter = presenter;
    }    
    public interface Presenter
    {
        void gotoAAAPlace();
        void gotoBBBPlace();
    }

    @Override
    public Widget asWidget()
    {
        return cccView;
    }
}

/src/aaa/bbb/ccc/client/BBBView.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style src="app.css" />
    <g:HTMLPanel  ui:field="cccView" styleName='{style.cccView}'>
        <g:Label  ui:field="cccViewLabel" text="CCCView" styleName='{style.viewLabel}'></g:Label>
        <g:Button ui:field="aaaButton" text="go to aaaView"></g:Button>
        <g:Button ui:field="bbbButton" text="go to bbbView"></g:Button>
    </g:HTMLPanel>
</ui:UiBinder>

/src/aaa/bbb/ccc/client/CCCActivity.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;

public class CCCActivity extends AbstractActivity implements CCCView.Presenter
{
    private String name = "...the CCCView...";    
    private final CCCView cccView;
    private final PlaceController placeController;

    public CCCActivity(ClientFactory clientFactory)
    {
        cccView = clientFactory.getCCCView();
        placeController = clientFactory.getPlaceController();
    }

    @Override
    public void start(AcceptsOneWidget panel, EventBus eventBus)
    {
        cccView.setPresenter(this);
        cccView.setName(name);
        panel.setWidget(cccView.asWidget());
    }    

    @Override
    public void gotoAAAPlace()
    {
        placeController.goTo(new AAAPlace());
    }

    @Override
    public void gotoBBBPlace()
    {
        placeController.goTo(new BBBPlace());
    }    
}

/src/aaa/bbb/ccc/client/CCCActivityMapper.java

package aaa.bbb.ccc.client;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;

public class CCCActivityMapper implements ActivityMapper
{
    private ClientFactory clientFactory;

    public CCCActivityMapper(ClientFactory clientFactory)
    {
        this.clientFactory = clientFactory;
    }

    @Override
    public Activity getActivity(Place place)
    {
        if (place instanceof AAAPlace)
        {
            return new AAAActivity(clientFactory);//return aaaActivityMapper.getActivity(place);
        }
        else
        if (place instanceof BBBPlace)
        {
            return new BBBActivity(clientFactory);//return aaaActivityMapper.getActivity(place);
        }

        return null;
    }
}

/src/aaa/bbb/ccc/client/CCCPlace.java

package aaa.bbb.ccc.client;

import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceTokenizer;
import com.google.gwt.place.shared.Prefix;

public class CCCPlace extends Place
{
    private String cccName = "CCCPlace";

    public CCCPlace()
    {
    }

    public String getCCCName()
    {
        return cccName;
    }

    @Prefix("CCCPlace")
    public static class Tokenizer implements PlaceTokenizer<CCCPlace>
    {
        @Override
        public String getToken(CCCPlace place)
        {
            return place.getCCCName(); //"CCCName"; //place.getCCCName();
        }

        @Override
        public CCCPlace getPlace(String token)
        {
            return new CCCPlace();
        }
    }
}

/src/aaa/bbb/ccc/client/app.css

h1 {
    font-size: 2em;
    font-weight: bold;
    color: #777777;
    margin: 40px 0px 70px;
    text-align: center;
}

.aaaView {
    border-color: black;
    border-width: 2 px;
    background-color: navy;
    width: 75%;
    height: 25%;
}

.viewLabel {
    color:white;
    font-size: 24px; 
    font-style: italic;
    font-weight: bolder; 
    border-width: 2 px;
}

.bbbView {
    border-color: black;
    border-width: 2 px;
    background-color: blue;
    width: 75%;
    height: 25%;
}

.cccView {
    border-color: black;
    border-width: 2 px;
    background-color: lightblue;
    width: 75%;
    height: 25%;
}


.layer1 {
    border-color: red;
    border-width: 2 px;
    background-color: yellow;
    width: 100%;
    height: 33%;
}

.layer2 {
    border-color: teal;
    border-width: 2 px;
    background-color: green;
    width: 100%;
    height: 33%;
}

.layer3 {
    border-color: grey;
    border-width: 2 px;
    background-color: aqua;
    width: 100%;
    height: 33%;
}

.gwt-layer {
    border-color: grey;
    border-width: 2 px;
    background-color: aqua;
    width: 100%;
    height: 33%;    
}

/war/app.html

<!doctype html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>app</title>
    <script type="text/javascript" language="javascript" src="app/app.nocache.js"></script>
  </head>
  <body>
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
    <noscript>
      <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
        Your web browser must have JavaScript enabled
        in order for this application to display correctly.
      </div>
    </noscript>
  </body>
</html>

/war/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>app</display-name>
  <welcome-file-list>
    <welcome-file>app.html</welcome-file>
  </welcome-file-list>
</web-app>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T03:02:19+00:00Added an answer on May 21, 2026 at 3:02 am

    The problem is in your ActivityMappers.

    When you go to an AAAPlace (which is the default place, so the one used when you don’t have any history token in the URL):

    • AAAActivityMapper returns null which (given the aaaActivityManager) will hide the topOfPage area
    • BBBActivityMapper returns an AAAActivity, which will display the (singleton) AAAView in the middleOfPage area
    • CCCActivityMapper returns another AAAActivity, which will display the (singleton) AAAView in the bottomOfPage area
      Because the AAAView is a widget, it can only be shown at a single place at a time. And because it’s a singleton, the last setWidget will win (it’ll remove the widget from it’s previous parent before adding it to the new one). Because you initialized cccActivityManager after bbbActivityManager, and event handlers are called in registration order, the bot will win.
      That leaves you with a hidden topOfPage, an empty middleOfPage (not hidden because mid was called with a non-empty value, but just after that bot is called with the same widget, and therefore steals it from middleOfPage to put it into bottomOfPage), and an AAAView in the bottomOfPage.

    Shameless plug: have a look at http://blog.ltgt.net/gwt-21-activities/ (and sibling articles about places and activities). I hope it’ll help you understand how it all works.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

When the users of this app make changes to the fields a large amount
So I have this app which needs to query entities from the Azure Tables
So I have this App in the store, and I would like to release
So im making this app where user could add UP to 3 images to
I had this app using 1.9.2 and rails 3.2 and today I changed the
I can successfully do this: App.SomeCollection = Backbone.Collection.extend({ comparator: function( collection ){ return( collection.get(
I have this app (contacts style) in which you can add instances to a
[edit] I am NOT using jquery in this app. Looking for a way to
I am developing a web app and in this app I sometimes load content
Let me start by saying that this app was working fine the day before.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.