+++ /dev/null
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.v7.tests.server.component.grid;
-
-import java.util.Iterator;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.vaadin.ui.Component;
-import com.vaadin.ui.Label;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.FooterCell;
-import com.vaadin.v7.ui.Grid.HeaderCell;
-
-public class GridChildrenTest {
-
- private Grid grid;
-
- @Before
- public void createGrid() {
- grid = new Grid();
- grid.addColumn("foo");
- grid.addColumn("bar");
- grid.addColumn("baz");
-
- }
-
- @Test
- public void iteratorFindsComponentsInMergedHeader() {
- HeaderCell merged = grid.getDefaultHeaderRow().join("foo", "bar",
- "baz");
- Label label = new Label();
- merged.setComponent(label);
- Iterator<Component> i = grid.iterator();
- Assert.assertEquals(label, i.next());
- Assert.assertFalse(i.hasNext());
- }
-
- @Test
- public void removeComponentInMergedHeaderCell() {
- HeaderCell merged = grid.getDefaultHeaderRow().join("foo", "bar",
- "baz");
- Label label = new Label();
- merged.setComponent(label);
- Assert.assertEquals(grid, label.getParent());
- merged.setText("foo");
- Assert.assertNull(label.getParent());
- }
-
- @Test
- public void removeHeaderWithComponentInMergedHeaderCell() {
- HeaderCell merged = grid.getDefaultHeaderRow().join("foo", "bar",
- "baz");
- Label label = new Label();
- merged.setComponent(label);
- Assert.assertEquals(grid, label.getParent());
- grid.removeHeaderRow(0);
- Assert.assertNull(label.getParent());
- }
-
- @Test
- public void removeComponentInMergedFooterCell() {
- FooterCell merged = grid.addFooterRowAt(0).join("foo", "bar", "baz");
- Label label = new Label();
- merged.setComponent(label);
- Assert.assertEquals(grid, label.getParent());
- merged.setText("foo");
- Assert.assertNull(label.getParent());
- }
-
- @Test
- public void removeFooterWithComponentInMergedFooterCell() {
- FooterCell merged = grid.addFooterRowAt(0).join("foo", "bar", "baz");
- Label label = new Label();
- merged.setComponent(label);
- Assert.assertEquals(grid, label.getParent());
- grid.removeFooterRow(0);
- Assert.assertNull(label.getParent());
- }
-
- @Test
- public void componentsInMergedFooter() {
- FooterCell merged = grid.addFooterRowAt(0).join("foo", "bar", "baz");
- Label label = new Label();
- merged.setComponent(label);
- Iterator<Component> i = grid.iterator();
- Assert.assertEquals(label, i.next());
- Assert.assertFalse(i.hasNext());
- Assert.assertEquals(grid, label.getParent());
- }
-}
import com.vaadin.ui.components.grid.Editor;
import com.vaadin.ui.components.grid.EditorImpl;
import com.vaadin.ui.components.grid.Footer;
-import com.vaadin.ui.components.grid.FooterCell;
import com.vaadin.ui.components.grid.FooterRow;
import com.vaadin.ui.components.grid.GridSelectionModel;
import com.vaadin.ui.components.grid.Header;
return column;
}
+ /**
+ * {@inheritDoc}
+ * <p>
+ * Note that the order of the returned components it not specified.
+ */
@Override
public Iterator<Component> iterator() {
Set<Component> componentSet = new LinkedHashSet<>(extensionComponents);
Header header = getHeader();
for (int i = 0; i < header.getRowCount(); ++i) {
HeaderRow row = header.getRow(i);
- getColumns().forEach(column -> {
- HeaderCell cell = row.getCell(column);
- if (cell.getCellType() == GridStaticCellType.WIDGET) {
- componentSet.add(cell.getComponent());
- }
- });
+ componentSet.addAll(row.getComponents());
}
Footer footer = getFooter();
for (int i = 0; i < footer.getRowCount(); ++i) {
FooterRow row = footer.getRow(i);
- getColumns().forEach(column -> {
- FooterCell cell = row.getCell(column);
- if (cell.getCellType() == GridStaticCellType.WIDGET) {
- componentSet.add(cell.getComponent());
- }
- });
+ componentSet.addAll(row.getComponents());
}
return Collections.unmodifiableSet(componentSet).iterator();
}
package com.vaadin.ui.components.grid;
import java.io.Serializable;
+import java.util.Collection;
import java.util.Set;
+import com.vaadin.ui.Component;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
* the style name to set or null to not use any style name
*/
public void setStyleName(String styleName);
+
+ /**
+ * Gets a collection of all components inside this row.
+ * <p>
+ * The order of the components in the returned collection is not specified.
+ *
+ * @return a collection of components in the row
+ */
+ public Collection<? extends Component> getComponents();
+
}
package com.vaadin.ui.components.grid;
import java.io.Serializable;
+import java.util.Collection;
import java.util.Set;
+import com.vaadin.ui.Component;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
* the style name to set or null to not use any style name
*/
public void setStyleName(String styleName);
+
+ /**
+ * Gets a collection of all components inside this row.
+ * <p>
+ * The order of the components in the returned collection is not specified.
+ *
+ * @return a collection of components in the row
+ */
+ public Collection<? extends Component> getComponents();
}
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
void addMergedCell(CELL newCell, Set<String> columnGroup) {
rowState.cellGroups.put(newCell.getCellState(), columnGroup);
}
+
+ public Collection<? extends Component> getComponents() {
+ List<Component> components = new ArrayList<>();
+ cells.forEach((id, cell) -> {
+ if (cell.getCellType() == GridStaticCellType.WIDGET) {
+ components.add(cell.getComponent());
+ }
+ });
+ rowState.cellGroups.forEach((cellState, columnIds) -> {
+ if (cellState.connector != null) {
+ components.add((Component) cellState.connector);
+ }
+ });
+ return components;
+ }
}
/**
public GridStaticCellType getCellType() {
return cellState.type;
}
-
+
/**
* Returns the custom style name for this cell.
*
* Sets a custom style name for this cell.
*
* @param styleName
- * the style name to set or null to not use any style
- * name
+ * the style name to set or null to not use any style name
*/
public void setStyleName(String styleName) {
cellState.styleName = styleName;
--- /dev/null
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.server.component.grid;
+
+import java.util.Iterator;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.vaadin.tests.data.bean.Person;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.components.grid.FooterCell;
+import com.vaadin.ui.components.grid.HeaderCell;
+
+public class GridChildrenTest {
+
+ private Grid<Person> grid;
+
+ @Before
+ public void createGrid() {
+ grid = new Grid<>();
+ grid.addColumn(Person::getFirstName).setId("foo");
+ grid.addColumn(Person::getLastName).setId("bar");
+ grid.addColumn(Person::getEmail).setId("baz");
+
+ }
+
+ @Test
+ public void iteratorFindsComponentsInMergedHeader() {
+ HeaderCell merged = grid.getDefaultHeaderRow().join("foo", "bar",
+ "baz");
+ Label label = new Label();
+ merged.setComponent(label);
+ Iterator<Component> i = grid.iterator();
+ Assert.assertEquals(label, i.next());
+ Assert.assertFalse(i.hasNext());
+ }
+
+ @Test
+ public void removeComponentInMergedHeaderCell() {
+ HeaderCell merged = grid.getDefaultHeaderRow().join("foo", "bar",
+ "baz");
+ Label label = new Label();
+ merged.setComponent(label);
+ Assert.assertEquals(grid, label.getParent());
+ merged.setText("foo");
+ Assert.assertNull(label.getParent());
+ }
+
+ @Test
+ public void removeComponentInMergedFooterCell() {
+ FooterCell merged = grid.addFooterRowAt(0).join("foo", "bar", "baz");
+ Label label = new Label();
+ merged.setComponent(label);
+ Assert.assertEquals(grid, label.getParent());
+ merged.setText("foo");
+ Assert.assertNull(label.getParent());
+ }
+
+ @Test
+ public void componentsInMergedFooter() {
+ FooterCell merged = grid.addFooterRowAt(0).join("foo", "bar", "baz");
+ Label label = new Label();
+ merged.setComponent(label);
+ Iterator<Component> i = grid.iterator();
+ Assert.assertEquals(label, i.next());
+ Assert.assertFalse(i.hasNext());
+ Assert.assertEquals(grid, label.getParent());
+ }
+}