diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnDefsAndConfigs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnDefsAndConfigs.java index c58b554f1986e5df3abebb71595df06e41eee783..0d79fe70d6210b66cd5d32f562cc3f6086dd6a30 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnDefsAndConfigs.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnDefsAndConfigs.java @@ -120,7 +120,7 @@ public class ColumnDefsAndConfigs<T> if (column.isEditable() && ClientStaticState.isSimpleMode() == false) { toolTip += " This is an editibale column. Just double-click on a cell."; - CellEditor editor = new CellEditor(ColumnUtils.createCellEditorField(column.tryToGetDataType())); + CellEditor editor = ColumnUtils.createCellEditor(column.tryToGetDataType()); columnConfig.setEditor(editor); } columnConfig.setToolTip(toolTip); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnUtils.java index 2c01b7d773872881fd04e1050a2fefa858f4b477..87b4d5b99ed6bdc1049c4bb3eee5bd59df1f132f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnUtils.java @@ -16,28 +16,44 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid; -import com.extjs.gxt.ui.client.widget.form.Field; +import com.extjs.gxt.ui.client.event.FieldEvent; import com.extjs.gxt.ui.client.widget.grid.CellEditor; +import com.google.gwt.event.dom.client.KeyCodes; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; /** * Utility methods for columns. - * + * * @author Franz-Josef Elmer */ public class ColumnUtils { /** - * Creates a field for {@link CellEditor} based on specified data type. + * Creates a {@link CellEditor} based on specified data type. */ - public static Field<? extends Object> createCellEditorField(DataTypeCode dataTypeOrNull) + public static CellEditor createCellEditor(DataTypeCode dataTypeOrNull) { + CellEditor editor; switch (dataTypeOrNull) { - case MULTILINE_VARCHAR: return new MultiLineCellEditorField(); - default: return new DefaultCellEditorField(); + case MULTILINE_VARCHAR: + editor = new CellEditor(new MultiLineCellEditorField()) + { + // WORKAROUND to allow use enter key in table editing + @Override + protected void onSpecialKey(FieldEvent fe) + { + if (fe.getKeyCode() != KeyCodes.KEY_ENTER) + { + super.onSpecialKey(fe); + } + } + }; + return editor; + default: + editor = new CellEditor(new DefaultCellEditorField()); + return editor; } } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptExecutionFramework.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptExecutionFramework.java index 69a3b1331c9d877040dbb0555384978143bc2105..55a74589e711d30d4c2da2ef183822fc42ae0b65 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptExecutionFramework.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptExecutionFramework.java @@ -173,7 +173,7 @@ public class ScriptExecutionFramework private void reset() { panel.reset(); - html.setHTML(""); + html.setMultilineHTML(""); evaluationResultPanel.setVisible(false); } @@ -346,7 +346,7 @@ public class ScriptExecutionFramework private void updateEvaluationResultField(String result) { - html.setHTML(result == null ? "(null)" : result); + html.setMultilineHTML(result == null ? "(null)" : result); } private static void updateVisibleEntityLink(boolean visible, Field<?> entityLink) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/MultilineHTML.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/MultilineHTML.java index 54eaa759f656ebcffa21b8508624ba25e6cafc9c..67cee7986a59ed199dd01896e5a92d4150d17e27 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/MultilineHTML.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/MultilineHTML.java @@ -44,10 +44,9 @@ public final class MultilineHTML extends HTML super(preserveWhitespace(html)); } - @Override - public void setHTML(String html) + public void setMultilineHTML(String html) { - super.setHTML(preserveWhitespace(html)); + setHTML(preserveWhitespace(html)); } private static final String BR = DOM.toString(DOM.createElement("br")); @@ -64,7 +63,8 @@ public final class MultilineHTML extends HTML result = result.replaceAll("[\t]", " "); result = result.replaceAll(" ", " "); // result will not be wrapped in AbstractBrowserGrid so we wrap it up in div with tooltip - return wrapUpInDivWithTooltip(result, html); + // WORKAROUND HTML tooltips don't support <br/> :( + return wrapUpInDivWithTooltip(result, result.replaceAll(BR, " ")); } public static String wrapUpInDivWithTooltip(String text, String tooltip) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/plus-icon.png b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/plus-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..79f062aa94e5c5cff258bb52c2ff79fa1387b6c2 Binary files /dev/null and b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/plus-icon.png differ