CellTable上的复合单元格宽度

时间:2013-06-24 20:18:30

标签: gwt cell celltable

我有一个复合单元格,工作正常,它有一个textinputcell和一个按钮单元格。然而,当它显示它将按钮单元放在文本输入单元格下时,就像在图片enter image description here

中一样

以下是使用hascells实现我的compositecel,谢谢!

final HasCell<ObjetoDato,String> celda1=new HasCell<ObjetoDato,String>(){
                        TextInputCell celda;

                        @Override
                        public Cell<String> getCell() {
                            celda=new TextInputCell();

                            return celda;
                        }

                        @Override
                        public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
                            return null;
                        }

                        @Override
                        public String getValue(ObjetoDato object) {
                            //new Scripter(object,actual.getComportamiento(),true);
                            return object.getValor(actual.getNombreCampo());    
                        }



                    };                        
                    HasCell<ObjetoDato,String> celda2=new HasCell<ObjetoDato,String>(){
                        ButtonCell celda;

                        @Override
                        public Cell<String> getCell() {
                            celda=new ButtonCell();

                            return celda;
                        }

                        @Override
                        public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
                            return new FieldUpdater<ObjetoDato, String> (){

                                @Override
                                public void update(int index,ObjetoDato object, String value) {
                                    new Seleccionador(actual.getClaseRelacion(), actual.getNombreCampo(),object.getValor(actual.getNombreCampo()), object.getIdRelacion(actual.getNombreCampo()), object,tabla,object,actual.getComportamiento());

                                }
                            };
                        }

                        @Override
                        public String getValue(ObjetoDato object) {

                            return "...";
                        }


                    };
                    //Composite
                    List<HasCell<ObjetoDato,?>> celdas = new LinkedList<HasCell<ObjetoDato,?>>();
                    celdas.add(celda1);
                    celdas.add(celda2);
                    CompositeCell<ObjetoDato> cell = new CompositeCell<ObjetoDato>(celdas);

                    Column<ObjetoDato,ObjetoDato> columna = new Column<ObjetoDato,ObjetoDato>(cell) {
                            @Override
                                    public ObjetoDato getValue(ObjetoDato object) {
                                        return object;
                                    }
                    };

                    //columna.setCellStyleNames("columna3puntos");
                    tabla.agregarColumna(columna,actual.getCaption());

1 个答案:

答案 0 :(得分:0)

您可能想看一下render()方法。此外,如果您的内部单元格使用<div>之类的块元素。它将垂直显示。因此,您可以将其更改为<span>。或者你可以添加style =“float:left;”你的div的CSS。我有类似你的东西。但我的是一个2行表的自定义单元格,其中有一列如下:

+----+
|    |
+----+
|    |
+----+

我使用CellList来保存许多这些自定义单元格。 CellList的问题是它垂直显示它们。所以我不得不重写CellList以使其水平显示。我将CellList的模板修改为float:left,我的单元格开始水平渲染,如下所示:

+----+     +----+   +----+
|    |     |    |   |    |
+----+     +----+   +----+
|    |     |    |   |    |
+----+     +----+   +----+