This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new fb5ec7a509 static schema dialog improvements, fixes #6421 (#6422)
fb5ec7a509 is described below
commit fb5ec7a5090565977bb28bfacf88594736421bee
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon Jan 19 15:52:45 2026 +0100
static schema dialog improvements, fixes #6421 (#6422)
final fix
---
.../metadata/SchemaDefinitionEditor.java | 7 +-
.../transforms/excelinput/ExcelInputDialog.java | 72 ++++++++++------
.../excelwriter/ExcelWriterTransformDialog.java | 81 +++++++++++-------
.../fileinput/text/TextFileInputDialog.java | 27 ++++--
.../textfileoutput/TextFileOutputDialog.java | 98 ++++++++++++++--------
.../org/apache/hop/ui/core/widget/TableView.java | 34 ++++----
6 files changed, 197 insertions(+), 122 deletions(-)
diff --git
a/plugins/misc/static-schema/src/main/java/org/apache/hop/staticschema/metadata/SchemaDefinitionEditor.java
b/plugins/misc/static-schema/src/main/java/org/apache/hop/staticschema/metadata/SchemaDefinitionEditor.java
index 1fc4b5bef2..05437ea0f3 100644
---
a/plugins/misc/static-schema/src/main/java/org/apache/hop/staticschema/metadata/SchemaDefinitionEditor.java
+++
b/plugins/misc/static-schema/src/main/java/org/apache/hop/staticschema/metadata/SchemaDefinitionEditor.java
@@ -161,8 +161,7 @@ public class SchemaDefinitionEditor extends
MetadataEditor<SchemaDefinition> {
new ColumnInfo(
BaseMessages.getString(PKG,
"SchemaDefinitionDialog.Fields.Column.FieldType"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
- ValueMetaFactory.getValueMetaNames(),
- false),
+ ValueMetaFactory.getValueMetaNames()),
new ColumnInfo(
BaseMessages.getString(PKG,
"SchemaDefinitionDialog.Fields.Column.FieldFormat"),
ColumnInfo.COLUMN_TYPE_FORMAT,
@@ -213,7 +212,7 @@ public class SchemaDefinitionEditor extends
MetadataEditor<SchemaDefinition> {
new TableView(
new Variables(),
parent,
- SWT.BORDER,
+ SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI,
columnInfos,
this.getMetadata().getFieldDefinitions().size(),
null,
@@ -290,7 +289,7 @@ public class SchemaDefinitionEditor extends
MetadataEditor<SchemaDefinition> {
sfd.setIfNullValue(item.getText(9));
sfd.setTrimType(ValueMetaString.getTrimTypeByDesc(item.getText(10)));
sfd.setComment(item.getText(11));
- sfd.setRoundingType(ValueMetaBase.getRoundingTypeCode(item.getText(11)));
+ sfd.setRoundingType(ValueMetaBase.getRoundingTypeCode(item.getText(12)));
SchemaDefinition.getFieldDefinitions().add(sfd);
}
}
diff --git
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
index b49fa2fcd6..18b5729719 100644
---
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
+++
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
@@ -958,6 +958,8 @@ public class ExcelInputDialog extends BaseTransformDialog {
if (r != null) {
String[] fieldNames = r.getFieldNames();
if (fieldNames != null) {
+ // Close any active editors to clear cached combo values
+ wFields.closeActiveEditors();
wFields.clearAll();
for (int i = 0; i < fieldNames.length; i++) {
IValueMeta valueMeta = r.getValueMeta(i);
@@ -992,6 +994,10 @@ public class ExcelInputDialog extends BaseTransformDialog {
wFields.removeEmptyRows();
wFields.setRowNums();
wFields.optWidth(true);
+
+ // Force table to redraw to update combo dropdowns with correct values
+ wFields.table.redraw();
+ wFields.table.update();
}
}
}
@@ -1106,6 +1112,13 @@ public class ExcelInputDialog extends
BaseTransformDialog {
wAccFilenames.setSelection(meta.isAcceptingFilenames());
wSchemaDefinition.setText(Const.NVL(meta.getSchemaDefinition(), ""));
wIgnoreFields.setSelection(meta.isIgnoreFields());
+
+ // Apply the ignore fields state (fill from schema and disable/enable
controls)
+ if (meta.isIgnoreFields()) {
+ fillFieldsLayoutFromSchema(false);
+ setFlags();
+ }
+
if (meta.getAcceptingField() != null &&
!meta.getAcceptingField().isEmpty()) {
wAccField.select(wAccField.indexOf(meta.getAcceptingField()));
}
@@ -1129,33 +1142,38 @@ public class ExcelInputDialog extends
BaseTransformDialog {
if (isDebug()) {
logDebug("getting fields info...");
}
- for (int i = 0; i < meta.getFields().size(); i++) {
- ExcelInputField f = meta.getFields().get(i);
- TableItem item = wFields.table.getItem(i);
- String field = f.getName();
- String type = f.getTypeDesc();
- String length = "" + f.getLength();
- String prec = "" + f.getPrecision();
- String trim = f.getTrimType().getDescription();
- String rep =
- f.isRepeat()
- ? BaseMessages.getString(PKG, CONST_COMBO_YES)
- : BaseMessages.getString(PKG, CONST_COMBO_NO);
- String format = f.getFormat();
- String currency = f.getCurrencySymbol();
- String decimal = f.getDecimalSymbol();
- String grouping = f.getGroupSymbol();
-
- item.setText(1, Const.NVL(field, ""));
- item.setText(2, Const.NVL(type, ""));
- item.setText(3, Const.NVL(length, ""));
- item.setText(4, Const.NVL(prec, ""));
- item.setText(5, Const.NVL(trim, ""));
- item.setText(6, Const.NVL(rep, ""));
- item.setText(7, Const.NVL(format, ""));
- item.setText(8, Const.NVL(currency, ""));
- item.setText(9, Const.NVL(decimal, ""));
- item.setText(10, Const.NVL(grouping, ""));
+
+ // Only populate fields from metadata if NOT ignoring fields (will be
filled from schema
+ // instead)
+ if (!meta.isIgnoreFields()) {
+ for (int i = 0; i < meta.getFields().size(); i++) {
+ ExcelInputField f = meta.getFields().get(i);
+ TableItem item = wFields.table.getItem(i);
+ String field = f.getName();
+ String type = f.getTypeDesc();
+ String length = "" + f.getLength();
+ String prec = "" + f.getPrecision();
+ String trim = f.getTrimType().getDescription();
+ String rep =
+ f.isRepeat()
+ ? BaseMessages.getString(PKG, CONST_COMBO_YES)
+ : BaseMessages.getString(PKG, CONST_COMBO_NO);
+ String format = f.getFormat();
+ String currency = f.getCurrencySymbol();
+ String decimal = f.getDecimalSymbol();
+ String grouping = f.getGroupSymbol();
+
+ item.setText(1, Const.NVL(field, ""));
+ item.setText(2, Const.NVL(type, ""));
+ item.setText(3, Const.NVL(length, ""));
+ item.setText(4, Const.NVL(prec, ""));
+ item.setText(5, Const.NVL(trim, ""));
+ item.setText(6, Const.NVL(rep, ""));
+ item.setText(7, Const.NVL(format, ""));
+ item.setText(8, Const.NVL(currency, ""));
+ item.setText(9, Const.NVL(decimal, ""));
+ item.setText(10, Const.NVL(grouping, ""));
+ }
}
wFields.removeEmptyRows();
diff --git
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
index d3d370671f..3fc7f2c91d 100644
---
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
+++
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
@@ -1678,6 +1678,8 @@ public class ExcelWriterTransformDialog extends
BaseTransformDialog {
if (r != null) {
String[] fieldNames = r.getFieldNames();
if (fieldNames != null) {
+ // Close any active editors to clear cached combo values
+ wFields.closeActiveEditors();
wFields.clearAll();
for (int i = 0; i < fieldNames.length; i++) {
IValueMeta valueMeta = r.getValueMeta(i);
@@ -1698,6 +1700,10 @@ public class ExcelWriterTransformDialog extends
BaseTransformDialog {
wFields.removeEmptyRows();
wFields.setRowNums();
wFields.optWidth(true);
+
+ // Force table to redraw to update combo dropdowns with correct values
+ wFields.table.redraw();
+ wFields.table.update();
}
}
}
@@ -1791,6 +1797,13 @@ public class ExcelWriterTransformDialog extends
BaseTransformDialog {
wSchemaDefinition.setText(Const.NVL(input.getSchemaDefinition(), ""));
wIgnoreFields.setSelection(input.isIgnoreFields());
+
+ // Apply the ignore fields state (fill from schema and disable/enable
controls)
+ if (input.isIgnoreFields()) {
+ fillFieldsLayoutFromSchema(false);
+ enableIgnorefiedls();
+ }
+
wStreamData.setSelection(file.isStreamingData());
wSplitEvery.setText("" + file.getSplitEvery());
wEmptyRows.setText("" + input.getAppendEmpty());
@@ -1857,41 +1870,45 @@ public class ExcelWriterTransformDialog extends
BaseTransformDialog {
logDebug("Getting fields info...");
- for (int i = 0; i < input.getOutputFields().size(); i++) {
- ExcelWriterOutputField field = input.getOutputFields().get(i);
+ // Only populate fields from metadata if NOT ignoring fields (will be
filled from schema
+ // instead)
+ if (!input.isIgnoreFields()) {
+ for (int i = 0; i < input.getOutputFields().size(); i++) {
+ ExcelWriterOutputField field = input.getOutputFields().get(i);
- TableItem item = wFields.table.getItem(i);
- if (field.getName() != null) {
- item.setText(1, field.getName());
- }
- item.setText(2, field.getType());
+ TableItem item = wFields.table.getItem(i);
+ if (field.getName() != null) {
+ item.setText(1, field.getName());
+ }
+ item.setText(2, field.getType());
- if (field.getFormat() != null) {
- item.setText(3, field.getFormat());
- }
- if (field.getStyleCell() != null) {
- item.setText(4, field.getStyleCell());
- }
- if (field.getTitle() != null) {
- item.setText(5, field.getTitle());
- }
- if (field.getTitleStyleCell() != null) {
- item.setText(6, field.getTitleStyleCell());
- }
- if (field.isFormula()) {
- item.setText(7, "Y");
- } else {
- item.setText(7, "N");
- }
+ if (field.getFormat() != null) {
+ item.setText(3, field.getFormat());
+ }
+ if (field.getStyleCell() != null) {
+ item.setText(4, field.getStyleCell());
+ }
+ if (field.getTitle() != null) {
+ item.setText(5, field.getTitle());
+ }
+ if (field.getTitleStyleCell() != null) {
+ item.setText(6, field.getTitleStyleCell());
+ }
+ if (field.isFormula()) {
+ item.setText(7, "Y");
+ } else {
+ item.setText(7, "N");
+ }
- if (field.getHyperlinkField() != null) {
- item.setText(8, field.getHyperlinkField());
- }
- if (field.getCommentField() != null) {
- item.setText(9, field.getCommentField());
- }
- if (field.getCommentAuthorField() != null) {
- item.setText(10, field.getCommentAuthorField());
+ if (field.getHyperlinkField() != null) {
+ item.setText(8, field.getHyperlinkField());
+ }
+ if (field.getCommentField() != null) {
+ item.setText(9, field.getCommentField());
+ }
+ if (field.getCommentAuthorField() != null) {
+ item.setText(10, field.getCommentAuthorField());
+ }
}
}
diff --git
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
index 773fa00d0e..cc2894831d 100644
---
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
+++
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
@@ -2064,13 +2064,11 @@ public class TextFileInputDialog extends
BaseTransformDialog
new ColumnInfo[] {
new ColumnInfo(
BaseMessages.getString(PKG,
"TextFileInputDialog.NameColumn.Column"),
- ColumnInfo.COLUMN_TYPE_TEXT,
- false),
+ ColumnInfo.COLUMN_TYPE_TEXT),
new ColumnInfo(
BaseMessages.getString(PKG,
"TextFileInputDialog.TypeColumn.Column"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
- ValueMetaFactory.getValueMetaNames(),
- true),
+ ValueMetaFactory.getValueMetaNames()),
new ColumnInfo(
BaseMessages.getString(PKG,
"TextFileInputDialog.FormatColumn.Column"),
ColumnInfo.COLUMN_TYPE_FORMAT,
@@ -2110,8 +2108,7 @@ public class TextFileInputDialog extends
BaseTransformDialog
new ColumnInfo(
BaseMessages.getString(PKG,
"TextFileInputDialog.TrimTypeColumn.Column"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
- ValueMetaBase.trimTypeDesc,
- true),
+ ValueMetaBase.trimTypeDesc),
new ColumnInfo(
BaseMessages.getString(PKG,
"TextFileInputDialog.RepeatColumn.Column"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
@@ -2182,6 +2179,8 @@ public class TextFileInputDialog extends
BaseTransformDialog
if (r != null) {
String[] fieldNames = r.getFieldNames();
if (fieldNames != null) {
+ // Close any active editors to clear cached combo values
+ wFields.closeActiveEditors();
wFields.clearAll();
for (int i = 0; i < fieldNames.length; i++) {
IValueMeta valueMeta = r.getValueMeta(i);
@@ -2216,6 +2215,10 @@ public class TextFileInputDialog extends
BaseTransformDialog
wFields.removeEmptyRows();
wFields.setRowNums();
wFields.optWidth(true);
+
+ // Force table to redraw to update combo dropdowns with correct values
+ wFields.table.redraw();
+ wFields.table.update();
}
}
}
@@ -2334,6 +2337,12 @@ public class TextFileInputDialog extends
BaseTransformDialog
wSchemaDefinition.setText(Const.NVL(meta.getSchemaDefinition(), ""));
wIgnoreFields.setSelection(meta.ignoreFields);
+ // Apply the ignore fields state (fill from schema and disable/enable
controls)
+ if (meta.ignoreFields) {
+ fillFieldsLayoutFromSchema(false);
+ }
+ setFlags();
+
if (meta.getFileName() != null) {
wFilenameList.removeAll();
@@ -2399,7 +2408,11 @@ public class TextFileInputDialog extends
BaseTransformDialog
wLimit.setText("" + meta.content.rowLimit);
logDebug("getting fields info...");
- getFieldsData(meta, false, reloadAllFields, newFieldNames);
+ // Only populate fields from metadata if NOT ignoring fields (will be
filled from schema
+ // instead)
+ if (!meta.ignoreFields) {
+ getFieldsData(meta, false, reloadAllFields, newFieldNames);
+ }
if (meta.getEncoding() != null) {
wEncoding.setText(meta.getEncoding());
diff --git
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
index 391c9b1519..e262686eb5 100644
---
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
+++
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
@@ -160,6 +160,8 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
private MetaSelectionLine<SchemaDefinition> wSchemaDefinition;
private Button wIgnoreFields;
+ private Button wMinWidth;
+
private ColumnInfo[] colinf;
private final List<String> inputFields = new ArrayList<>();
@@ -1101,7 +1103,7 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
wGet.setText(BaseMessages.getString(PKG, "System.Button.GetFields"));
wGet.setToolTipText(BaseMessages.getString(PKG,
"System.Tooltip.GetFields"));
- Button wMinWidth = new Button(wFieldsComp, SWT.PUSH);
+ wMinWidth = new Button(wFieldsComp, SWT.PUSH);
wMinWidth.setText(BaseMessages.getString(PKG,
"TextFileOutputDialog.MinWidth.Button"));
wMinWidth.setToolTipText(BaseMessages.getString(PKG,
"TextFileOutputDialog.MinWidth.Tooltip"));
wMinWidth.addSelectionListener(
@@ -1302,6 +1304,8 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
if (r != null) {
String[] fieldNames = r.getFieldNames();
if (fieldNames != null) {
+ // Close any active editors to clear cached combo values
+ wFields.closeActiveEditors();
wFields.clearAll();
for (int i = 0; i < fieldNames.length; i++) {
IValueMeta valueMeta = r.getValueMeta(i);
@@ -1327,7 +1331,10 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
item.setText(10,
Const.NVL(schemaFieldDefinition.getIfNullValue(), ""));
item.setText(
11,
-
ValueMetaBase.getRoundingTypeDesc(schemaFieldDefinition.getRoundingType()));
+ Const.NVL(
+ ValueMetaBase.getRoundingTypeDesc(
+ schemaFieldDefinition.getRoundingType()),
+ ""));
}
}
}
@@ -1340,6 +1347,10 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
wFields.removeEmptyRows();
wFields.setRowNums();
wFields.optWidth(true);
+
+ // Force table to redraw to update combo dropdowns with correct values
+ wFields.table.redraw();
+ wFields.table.update();
}
}
}
@@ -1498,6 +1509,15 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
wServletOutput.setSelection(input.isServletOutput());
wSchemaDefinition.setText(Const.NVL(input.getSchemaDefinition(), ""));
wIgnoreFields.setSelection(input.isIgnoreFields());
+
+ // Apply the ignore fields state (fill from schema and disable/enable
controls)
+ if (input.isIgnoreFields()) {
+ fillFieldsLayoutFromSchema(false);
+ }
+ wFields.setEnabled(!input.isIgnoreFields());
+ wGet.setEnabled(!input.isIgnoreFields());
+ wMinWidth.setEnabled(!input.isIgnoreFields());
+
setFlagsServletOption();
wDoNotOpenNewFileInit.setSelection(input.isDoNotOpenNewFileInit());
wCreateParentFolder.setSelection(input.isCreateParentFolder());
@@ -1550,42 +1570,46 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
logDebug("getting fields info...");
- for (int i = 0; i < input.getOutputFields().length; i++) {
- TextFileField field = input.getOutputFields()[i];
+ // Only populate fields from metadata if NOT ignoring fields (will be
filled from schema
+ // instead)
+ if (!input.isIgnoreFields()) {
+ for (int i = 0; i < input.getOutputFields().length; i++) {
+ TextFileField field = input.getOutputFields()[i];
- TableItem item = wFields.table.getItem(i);
- if (field.getName() != null) {
- item.setText(1, field.getName());
- }
- item.setText(2, field.getTypeDesc());
- if (field.getFormat() != null) {
- item.setText(3, field.getFormat());
- }
- if (field.getLength() >= 0) {
- item.setText(4, "" + field.getLength());
- }
- if (field.getPrecision() >= 0) {
- item.setText(5, "" + field.getPrecision());
- }
- if (field.getCurrencySymbol() != null) {
- item.setText(6, field.getCurrencySymbol());
- }
- if (field.getDecimalSymbol() != null) {
- item.setText(7, field.getDecimalSymbol());
- }
- if (field.getGroupingSymbol() != null) {
- item.setText(8, field.getGroupingSymbol());
- }
- String trim = field.getTrimTypeDesc();
- if (trim != null) {
- item.setText(9, trim);
- }
- if (field.getNullString() != null) {
- item.setText(10, field.getNullString());
- }
- String roundingType =
ValueMetaBase.getRoundingTypeDesc(field.getRoundingType());
- if (roundingType != null) {
- item.setText(11, roundingType);
+ TableItem item = wFields.table.getItem(i);
+ if (field.getName() != null) {
+ item.setText(1, field.getName());
+ }
+ item.setText(2, field.getTypeDesc());
+ if (field.getFormat() != null) {
+ item.setText(3, field.getFormat());
+ }
+ if (field.getLength() >= 0) {
+ item.setText(4, "" + field.getLength());
+ }
+ if (field.getPrecision() >= 0) {
+ item.setText(5, "" + field.getPrecision());
+ }
+ if (field.getCurrencySymbol() != null) {
+ item.setText(6, field.getCurrencySymbol());
+ }
+ if (field.getDecimalSymbol() != null) {
+ item.setText(7, field.getDecimalSymbol());
+ }
+ if (field.getGroupingSymbol() != null) {
+ item.setText(8, field.getGroupingSymbol());
+ }
+ String trim = field.getTrimTypeDesc();
+ if (trim != null) {
+ item.setText(9, trim);
+ }
+ if (field.getNullString() != null) {
+ item.setText(10, field.getNullString());
+ }
+ String roundingType =
ValueMetaBase.getRoundingTypeDesc(field.getRoundingType());
+ if (roundingType != null) {
+ item.setText(11, roundingType);
+ }
}
}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/widget/TableView.java
b/ui/src/main/java/org/apache/hop/ui/core/widget/TableView.java
index b101984d45..cb30d31ae3 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/widget/TableView.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/widget/TableView.java
@@ -117,11 +117,6 @@ public class TableView extends Composite {
toolbar.setEnabled(enabled);
}
- // Cleanup active editors when disabling the table
- if (!enabled) {
- closeActiveEditors();
- }
-
this.table.setEnabled(enabled);
}
@@ -1525,15 +1520,15 @@ public class TableView extends Composite {
}
}
- private void safelyDisposeControl(Control combo) {
- if (combo == null) {
+ private void safelyDisposeControl(Control control) {
+ if (control == null) {
return;
}
- synchronized (combo) {
- if (combo.isDisposed()) {
+ synchronized (control) {
+ if (control.isDisposed()) {
return;
}
- combo.dispose();
+ control.dispose();
}
}
@@ -2441,11 +2436,20 @@ public class TableView extends Composite {
}
public void edit(int rowNr, int colNr) {
+ // Don't create editors if the table is disabled
+ if (!table.isEnabled() || !this.isEnabled()) {
+ return;
+ }
setPosition(rowNr, colNr);
edit(rowNr, colNr, true, (char) 0);
}
private void edit(int rowNr, int colNr, boolean selectText, char extra) {
+ // Don't create editors if the table is disabled
+ if (!table.isEnabled() || !this.isEnabled()) {
+ return;
+ }
+
selectionStart = -1;
TableItem row = table.getItem(rowNr);
@@ -2763,13 +2767,13 @@ public class TableView extends Composite {
safelyDisposeControl(comboVar);
+ int comboStyle = SWT.SINGLE | SWT.LEFT;
+ if (columnInfo.isReadOnly()) {
+ comboStyle |= SWT.READ_ONLY;
+ }
comboVar =
new ComboVar(
- variables,
- table,
- SWT.SINGLE | SWT.LEFT,
- getCaretPositionInterface,
- insertTextInterface);
+ variables, table, comboStyle, getCaretPositionInterface,
insertTextInterface);
if (lsFocusInTabItem != null) {
comboVar.getCComboWidget().addListener(SWT.FocusIn, lsFocusInTabItem);
} else {