GWT EditTextCell: Как увеличить ширину редактируемого TextBox в EditTextCell? - PullRequest
3 голосов
/ 12 декабря 2011

Я использую GWT2.3 в своем проекте. Я хочу увеличить ширину editableTextBox, когда пользователь нажимает на editableTextCell. Проблема в ширине моей колонки составляет 200 пикселей. когда пользователь нажимает на editableTextCell, тогда ширина TextBox составляет около 125 пикселей в EditableTextCell по сравнению с шириной столбца.

Я добавил EditTextCell в столбец Celltable

Столбец stringColumn = new Column (new EditTextCell ()) { // Мой код }

cellTable.addColumn (stringColumn, "MyColumn"); cellTable.setColumnWidth (checkBoxColumn, 200, Unit.PX);

Я попробовал следующий способ увеличить ширину TextBox, но проблема в том, что я не могу редактировать в текстовом поле + фокус не потерян

    @Override
            public void onBrowserEvent(Context context, Element elem,Record object, NativeEvent event) {
                String type = event.getType();

                  int editedTexBoxSize = (cellTable.getOffsetWidth()-100)/cellTable.getColumnCount();

                  if(elem.getInnerHTML().startsWith("<INPUT")){
                      String test = elem.getInnerHTML();
                     // test = <INPUT tabIndex=-1 value=P __eventBits="2048"></INPUT>

                     test= test.replace("value", " size="+editedTexBoxSize+" value");


                    // test = <INPUT tabIndex=-1 size=131 value=P __eventBits="2048"></INPUT>


                      elem.setInnerHTML(test);
                  }
                super.onBrowserEvent(context, elem, object, event);
            }

Я хочу увеличить (установить) ширину TextBox, появиться в EditTextCell равной ширине столбца.

Есть решение?

Ответы [ 3 ]

3 голосов
/ 01 ноября 2012

В моем проекте я делаю это:

cellTable.getColumn(cellTable.getColumnIndex(column)).setCellStyleNames(CELL_CSS);

.edit-cell input {
    width: 290px;
}
1 голос
/ 03 января 2013

Наконец-то ответ!Я попробовал это еще проще, используя UIBinder, добавив:

.edit-cell input {
    width: 30px;
    text-align: right;
}

Затем для таблицы ячеек я добавил

 <c:CellTable
        addStyleNames='{style.edit-cell}'
        ui:field='itemTable' />

Замечательно!

0 голосов
/ 18 февраля 2012

Вам нужно будет создать пользовательский компонент. Встроенная функция EditTextCell не позволяет вам установить атрибут размера поля ввода, только ширину столбца.

Взгляните на значение ValidateableInputCell здесь: В поисках примера проверки GWT ... где ты? в качестве примера создания пользовательской ячейки.

По общему признанию, проверка еще не работает, но возможность установить размер в поле ввода в ячейке работает.

...