aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/ui/Root.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin/ui/Root.java')
-rw-r--r--src/com/vaadin/ui/Root.java48
1 files changed, 20 insertions, 28 deletions
diff --git a/src/com/vaadin/ui/Root.java b/src/com/vaadin/ui/Root.java
index 32c40836c0..3fcf70b922 100644
--- a/src/com/vaadin/ui/Root.java
+++ b/src/com/vaadin/ui/Root.java
@@ -27,10 +27,12 @@ import com.vaadin.event.MouseEvents.ClickListener;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
+import com.vaadin.terminal.Vaadin6Component;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.terminal.WrappedRequest.BrowserDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.RootConnector.RootServerRPC;
+import com.vaadin.terminal.gwt.client.ui.RootConnector.RootState;
import com.vaadin.terminal.gwt.client.ui.VNotification;
import com.vaadin.terminal.gwt.client.ui.VView;
import com.vaadin.tools.ReflectTools;
@@ -74,7 +76,7 @@ import com.vaadin.ui.Window.CloseListener;
* @since 7.0
*/
public abstract class Root extends AbstractComponentContainer implements
- Action.Container, Action.Notifier {
+ Action.Container, Action.Notifier, Vaadin6Component {
/**
* Listener that gets notified when the size of the browser window
@@ -344,11 +346,6 @@ public abstract class Root extends AbstractComponentContainer implements
public static final int BORDER_DEFAULT = 2;
/**
- * The container in which the component hierarchy of the root starts.
- */
- private ComponentContainer content;
-
- /**
* The application to which this root belongs
*/
private Application application;
@@ -422,8 +419,7 @@ public abstract class Root extends AbstractComponentContainer implements
* {@link VerticalLayout} with margins enabled as its content.
*/
public Root() {
- registerRpc(rpc);
- setSizeFull();
+ this((ComponentContainer) null);
}
/**
@@ -435,7 +431,8 @@ public abstract class Root extends AbstractComponentContainer implements
* @see #setContent(ComponentContainer)
*/
public Root(ComponentContainer content) {
- this();
+ registerRpc(rpc);
+ setSizeFull();
setContent(content);
}
@@ -450,7 +447,7 @@ public abstract class Root extends AbstractComponentContainer implements
* @see #setCaption(String)
*/
public Root(String caption) {
- this();
+ this((ComponentContainer) null);
setCaption(caption);
}
@@ -471,6 +468,11 @@ public abstract class Root extends AbstractComponentContainer implements
setCaption(caption);
}
+ @Override
+ public RootState getState() {
+ return (RootState) super.getState();
+ }
+
/**
* Overridden to return a value instead of referring to the parent.
*
@@ -505,17 +507,6 @@ public abstract class Root extends AbstractComponentContainer implements
}
}
- ComponentContainer content = getContent();
- if (content != null) {
- content.paint(target);
- }
-
- // Paint subwindows
- for (final Iterator<Window> i = windows.iterator(); i.hasNext();) {
- final Window w = i.next();
- w.paint(target);
- }
-
// Paint notifications
if (notifications != null) {
target.startTag("notifications");
@@ -1035,10 +1026,7 @@ public abstract class Root extends AbstractComponentContainer implements
* @see #createDefaultLayout()
*/
public ComponentContainer getContent() {
- if (content == null) {
- setContent(createDefaultLayout());
- }
- return content;
+ return (ComponentContainer) getState().getContent();
}
/**
@@ -1066,10 +1054,14 @@ public abstract class Root extends AbstractComponentContainer implements
* @see #createDefaultLayout()
*/
public void setContent(ComponentContainer content) {
- if (this.content != null) {
- super.removeComponent(this.content);
+ if (content == null) {
+ content = createDefaultLayout();
+ }
+
+ if (getState().getContent() != null) {
+ super.removeComponent((Component) getState().getContent());
}
- this.content = content;
+ getState().setContent(content);
if (content != null) {
super.addComponent(content);
}