diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-14 13:34:59 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-14 13:34:59 +0300 |
commit | 3e313cabb025d46f42bebd0d919e59c2638b6289 (patch) | |
tree | ff972bb1416203c798ab7758cf619dede69d6cd3 /src | |
parent | 332195ec278f128043ae842ace48f1b1df340047 (diff) | |
download | vaadin-framework-3e313cabb025d46f42bebd0d919e59c2638b6289.tar.gz vaadin-framework-3e313cabb025d46f42bebd0d919e59c2638b6289.zip |
File missing from previous commit (#6690)
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/AbstractClientConnector.java | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/com/vaadin/terminal/AbstractClientConnector.java b/src/com/vaadin/terminal/AbstractClientConnector.java index a2bf4a0be8..ee1a2ab981 100644 --- a/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/src/com/vaadin/terminal/AbstractClientConnector.java @@ -210,7 +210,7 @@ public abstract class AbstractClientConnector implements ClientConnector { public Iterator<ClientConnector> iterator() { CombinedIterator<ClientConnector> iterator = new CombinedIterator<ClientConnector>(); - iterator.addIterator(connector.getExtensionIterator()); + iterator.addIterator(connector.getExtensions().iterator()); if (connector instanceof HasComponents) { HasComponents hasComponents = (HasComponents) connector; @@ -376,30 +376,22 @@ public abstract class AbstractClientConnector implements ClientConnector { return new AllChildrenIterable(connector); } - public Iterator<Extension> getExtensionIterator() { - return Collections.unmodifiableList(extensions).iterator(); + public Collection<Extension> getExtensions() { + return Collections.unmodifiableCollection(extensions); } protected void addExtension(Extension extension) { - addExtensionAtIndex(extension, extensions.size()); - } - - protected void addExtensionAtIndex(Extension extension, int index) { ClientConnector previousParent = extension.getParent(); if (previousParent == this) { - int oldIndex = extensions.indexOf(extension); - if (oldIndex < index) { - index--; - } - extensions.remove(oldIndex); - extensions.add(index, extension); - } else { - if (previousParent != null) { - previousParent.removeExtension(extension); - } - extensions.add(index, extension); - extension.setParent(this); + // Nothing to do, already attached + return; + } else if (previousParent != null) { + throw new IllegalStateException( + "Moving an extension from one parent to another is not supported"); } + + extensions.add(extension); + extension.setParent(this); requestRepaint(); } |