Repository: cayenne Updated Branches: refs/heads/master c55e46f0c -> 23732634d
Fix Win text field UI compilation on JDK 9 and 10 Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/a985d7b8 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/a985d7b8 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/a985d7b8 Branch: refs/heads/master Commit: a985d7b85addc6c130738ee5a38fb51617999a70 Parents: c55e46f Author: stariy <stari...@gmail.com> Authored: Sat Mar 24 12:47:05 2018 +0300 Committer: stariy <stari...@gmail.com> Committed: Sat Mar 24 12:47:05 2018 +0300 ---------------------------------------------------------------------- .../modeler/win/WinCustomTextFieldUI.java | 24 ++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/a985d7b8/modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCustomTextFieldUI.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCustomTextFieldUI.java b/modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCustomTextFieldUI.java index 3828e69..bb6a278 100644 --- a/modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCustomTextFieldUI.java +++ b/modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCustomTextFieldUI.java @@ -19,11 +19,11 @@ package org.apache.cayenne.modeler.win; +import java.lang.reflect.Constructor; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicTextFieldUI; -import com.jgoodies.looks.windows.WindowsTextFieldUI; import org.apache.cayenne.modeler.util.combo.EditorTextField; /** @@ -31,6 +31,19 @@ import org.apache.cayenne.modeler.util.combo.EditorTextField; */ public class WinCustomTextFieldUI extends BasicTextFieldUI { + private static Constructor<? extends ComponentUI> winFieldUIConstructor; + + static { + try { + @SuppressWarnings("unchecked") + Class<? extends ComponentUI> winFieldUIClass = (Class<? extends ComponentUI>)Class + .forName("com.jgoodies.looks.windows.WindowsTextFieldUI"); + winFieldUIConstructor = winFieldUIClass.getDeclaredConstructor(); + } catch (ClassNotFoundException | NoSuchMethodException ex) { + winFieldUIConstructor = null; + } + } + public WinCustomTextFieldUI() { } @@ -38,7 +51,14 @@ public class WinCustomTextFieldUI extends BasicTextFieldUI { if(c instanceof EditorTextField) { c.putClientProperty("TextField.fullSizeBackground", Boolean.TRUE); } - return new WindowsTextFieldUI(); + if(winFieldUIConstructor == null) { + return new BasicTextFieldUI(); + } + try { + return winFieldUIConstructor.newInstance(); + } catch (Exception ex) { + return new BasicTextFieldUI(); + } } }