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();
+        }
     }
 
 }

Reply via email to