diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java index 51d0dbc268d40e7f0f96a36fe0ad32041e6408ef..744a56e0a613518fa88c665b69999efed3ad4d99 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java @@ -21,6 +21,7 @@ import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; +import org.jkiss.dbeaver.ui.TextUtils; import org.jkiss.dbeaver.utils.RuntimeUtils; import org.jkiss.dbeaver.runtime.WebUtils; import org.jkiss.dbeaver.utils.GeneralUtils; @@ -248,7 +249,7 @@ public class MavenArtifactVersion implements IMavenIdentifier { version = XMLUtils.getChildElementBody(root, "version"); description = XMLUtils.getChildElementBody(root, "description"); if (description != null) { - description = description.trim().replaceAll("\\s+", " "); + description = TextUtils.compactWhiteSpaces(description.trim()); } { // Parent diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/TextUtils.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/TextUtils.java index 13250d0462c9b75e602b9849dcc537b823f9c1e9..18b4912fc696db1f5d31002cbcc8e52f7c4964ae 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/TextUtils.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/TextUtils.java @@ -35,6 +35,10 @@ import java.util.StringTokenizer; public class TextUtils { public static final char PARAGRAPH_CHAR = (char) 182; + public static String compactWhiteSpaces(String str) { + return str.replaceAll("\\s+", " "); + } + public static boolean isEmptyLine(IDocument document, int line) throws BadLocationException { IRegion region = document.getLineInformation(line); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java index 7ecf966261ea770831836cf870f869292eaea02b..b3da970092e64c851e5340d6290469e7ce781ef2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetFilterPanel.java @@ -53,10 +53,7 @@ import org.jkiss.dbeaver.model.sql.SQLSyntaxManager; import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.model.struct.DBSDataContainer; import org.jkiss.dbeaver.model.struct.DBSEntity; -import org.jkiss.dbeaver.ui.ActionUtils; -import org.jkiss.dbeaver.ui.DBeaverIcons; -import org.jkiss.dbeaver.ui.UIIcon; -import org.jkiss.dbeaver.ui.UIUtils; +import org.jkiss.dbeaver.ui.*; import org.jkiss.dbeaver.ui.controls.StyledTextContentAdapter; import org.jkiss.dbeaver.ui.editors.StringEditorInput; import org.jkiss.dbeaver.ui.editors.SubEditorSite; @@ -383,7 +380,8 @@ class ResultSetFilterPanel extends Composite implements IContentProposalProvider displayName = m.replaceAll(""); } - displayName = displayName.replaceAll("--.+", "").replaceAll("\\s+", " "); + displayName = displayName.replaceAll("--.+", ""); + displayName = TextUtils.compactWhiteSpaces(displayName); activeDisplayName = CommonUtils.notEmpty(CommonUtils.truncateString(displayName, 200)); if (CommonUtils.isEmpty(activeDisplayName)) { activeDisplayName = DEFAULT_QUERY_TEXT; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/stream/ImageStreamValueManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/stream/ImageStreamValueManager.java index 454f88d3b3ebf22b0d2fcff452caf5e178ec9df2..de97209541ed4457969ae6568d3f2910ee9dddd7 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/stream/ImageStreamValueManager.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/stream/ImageStreamValueManager.java @@ -23,14 +23,12 @@ import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; -import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.data.DBDContent; import org.jkiss.dbeaver.model.data.DBDContentStorage; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.model.struct.DBSTypedObject; -import org.jkiss.dbeaver.ui.controls.imageview.ImageViewer; import org.jkiss.dbeaver.ui.data.IStreamValueEditor; import org.jkiss.dbeaver.ui.data.IStreamValueManager; import org.jkiss.dbeaver.ui.data.IValueController; @@ -50,7 +48,11 @@ public class ImageStreamValueManager implements IStreamValueManager { // Applies to image values ImageDetector imageDetector = new ImageDetector(value); if (!DBUtils.isNullValue(value)) { - DBeaverUI.runInUI(DBeaverUI.getActiveWorkbenchWindow(), imageDetector); + try { + imageDetector.run(monitor); + } catch (Throwable e) { + return MatchType.NONE; + } } return imageDetector.isImage() ? MatchType.EXCLUSIVE : MatchType.NONE; } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java index 258d7eb8e69d9aa6cef3b81ae67f953a4307eb2e..a3562b32ace31d470bbb683439e22e9b72b3aab8 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/CopyUnformattedTextAction.java @@ -26,6 +26,7 @@ import org.eclipse.jface.text.rules.IToken; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.widgets.Display; import org.jkiss.dbeaver.model.sql.SQLDialect; +import org.jkiss.dbeaver.ui.TextUtils; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase; import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLRuleManager; @@ -95,7 +96,7 @@ public class CopyUnformattedTextAction extends Action { break; } } - comment = comment.replaceAll("\\s+", " "); + comment = TextUtils.compactWhiteSpaces(comment); result.append(comment); } else { lastWhitespace = false; diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/oci/OCIUtils.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/oci/OCIUtils.java index 0335998b485e926acbeca2ddf1008a8785ec34ce..b80ba4ea67ea202718125e0de36dff5ab1fa1744 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/oci/OCIUtils.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/oci/OCIUtils.java @@ -23,6 +23,7 @@ import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.ext.oracle.model.OracleConstants; +import org.jkiss.dbeaver.ui.TextUtils; import org.jkiss.dbeaver.utils.WinRegistry; import org.jkiss.utils.CommonUtils; import org.jkiss.utils.IOUtils; @@ -349,7 +350,7 @@ public class OCIUtils } private static String getPlainTnsDescription(String line) { - return line.trim().replaceAll("\\s+", " "); + return TextUtils.compactWhiteSpaces(line.trim()); } public static boolean isInstantClient(String oraHome) diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreContentJSON.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreContentJSON.java index 706d9c9bcda5629b57e3229630c404c5b6336c5f..d95b125e7267b49c856c30f0e034efd496e1ea1f 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreContentJSON.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreContentJSON.java @@ -19,11 +19,13 @@ package org.jkiss.dbeaver.ext.postgresql.model.data; import org.jkiss.code.NotNull; import org.jkiss.dbeaver.model.DBPDataSource; +import org.jkiss.dbeaver.model.data.DBDDisplayFormat; import org.jkiss.dbeaver.model.exec.DBCException; import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement; import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession; import org.jkiss.dbeaver.model.impl.jdbc.data.JDBCContentChars; import org.jkiss.dbeaver.model.struct.DBSTypedObject; +import org.jkiss.dbeaver.ui.TextUtils; import org.jkiss.dbeaver.utils.MimeTypes; import java.sql.SQLException; @@ -66,4 +68,8 @@ public class PostgreContentJSON extends JDBCContentChars { } } + @Override + public String getDisplayString(DBDDisplayFormat format) { + return TextUtils.compactWhiteSpaces(data); + } }