Преглед изворни кода

Add VPaintableWidgetContainer.getChildren() (#8323)

tags/7.0.0.alpha2
Leif Åstrand пре 12 година
родитељ
комит
de6b8ddf41

+ 3
- 1
src/com/vaadin/terminal/gwt/client/VPaintableWidgetContainer.java Прегледај датотеку

@@ -4,6 +4,8 @@

package com.vaadin.terminal.gwt.client;

import java.util.Collection;

import com.google.gwt.user.client.ui.HasWidgets;

/**
@@ -40,6 +42,6 @@ public interface VPaintableWidgetContainer extends VPaintableWidget {
* @return A collection of children for this paintable. An empty collection
* if there are no children.
*/
// public Collection<VPaintableWidget> getChildren();
public Collection<VPaintableWidget> getChildren();

}

+ 51
- 17
src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidgetContainer.java Прегледај датотеку

@@ -1,17 +1,51 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
package com.vaadin.terminal.gwt.client.ui;

import com.vaadin.terminal.gwt.client.VPaintableWidgetContainer;

public abstract class VAbstractPaintableWidgetContainer extends
VAbstractPaintableWidget implements VPaintableWidgetContainer {

/**
* Default constructor
*/
public VAbstractPaintableWidgetContainer() {
}

}
/*
@VaadinApache2LicenseForJavaFiles@
*/
package com.vaadin.terminal.gwt.client.ui;
import java.util.ArrayList;
import java.util.Collection;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.VPaintableMap;
import com.vaadin.terminal.gwt.client.VPaintableWidget;
import com.vaadin.terminal.gwt.client.VPaintableWidgetContainer;
public abstract class VAbstractPaintableWidgetContainer extends
VAbstractPaintableWidget implements VPaintableWidgetContainer {
/**
* Default constructor
*/
public VAbstractPaintableWidgetContainer() {
}
public Collection<VPaintableWidget> getChildren() {
Collection<VPaintableWidget> children = new ArrayList<VPaintableWidget>();
addDescendantPaintables(getWidgetForPaintable(), children,
VPaintableMap.get(getConnection()));
return children;
}
private static void addDescendantPaintables(Widget widget,
Collection<VPaintableWidget> paintables, VPaintableMap paintableMap) {
// FIXME: Store hierarchy instead of doing lookup every time
if (widget instanceof HasWidgets) {
for (Widget child : (HasWidgets) widget) {
VPaintableWidget paintable = paintableMap.getPaintable(child);
if (paintable != null) {
// If child is a paintable, add it to the collection
paintables.add(paintable);
} else {
// Else keep looking for paintables inside the child widget
addDescendantPaintables(child, paintables, paintableMap);
}
}
}
}
}

Loading…
Откажи
Сачувај