diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/ViewerColumnController.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/ViewerColumnController.java index c633e4c061afc159d3c4b24c49258875fbc3da11..319602aa025c5fc67a19b5acf9701fa338a07207 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/ViewerColumnController.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/ViewerColumnController.java @@ -147,42 +147,47 @@ public class ViewerColumnController { private void recreateColumns() { - boolean needRefresh = false; - for (ColumnInfo columnInfo : columns) { - if (columnInfo.column != null) { - columnInfo.column.dispose(); - columnInfo.column = null; - needRefresh = true; - } - } - createVisibleColumns(); - boolean allSized = true; - for (ColumnInfo columnInfo : getVisibleColumns()) { - if (columnInfo.width <= 0) { - allSized = false; - break; - } - } - if (!allSized) { - repackColumns(); - viewer.getControl().addControlListener(new ControlAdapter() { - @Override - public void controlResized(ControlEvent e) - { - viewer.getControl().removeControlListener(this); - repackColumns(); + final Control control = viewer.getControl(); + control.setRedraw(false); + try { + boolean needRefresh = false; + for (ColumnInfo columnInfo : columns) { + if (columnInfo.column != null) { + columnInfo.column.dispose(); + columnInfo.column = null; + needRefresh = true; } - }); - } - if (needRefresh) { - viewer.refresh(); + } + createVisibleColumns(); + boolean allSized = true; for (ColumnInfo columnInfo : getVisibleColumns()) { - if (columnInfo.column instanceof TreeColumn) { - ((TreeColumn) columnInfo.column).pack(); - } else { - ((TableColumn) columnInfo.column).pack(); + if (columnInfo.width <= 0) { + allSized = false; + break; + } + } + if (!allSized) { + repackColumns(); + control.addControlListener(new ControlAdapter() { + @Override + public void controlResized(ControlEvent e) { + control.removeControlListener(this); + repackColumns(); + } + }); + } + if (needRefresh) { + viewer.refresh(); + for (ColumnInfo columnInfo : getVisibleColumns()) { + if (columnInfo.column instanceof TreeColumn) { + ((TreeColumn) columnInfo.column).pack(); + } else { + ((TableColumn) columnInfo.column).pack(); + } } } + } finally { + control.setRedraw(true); } } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java index 09a7dce59c0ed253d876e852981c2e920740dd95..fc26e4508afb9a1a560675751facb931e494a28c 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java @@ -929,7 +929,7 @@ public abstract class ObjectListControl extends ProgressPageControl if (prop != null) { return ObjectViewerRenderer.getCellString(cellValue, prop.isNameProperty()); } else { - return "?"; + return ""; } }