From f731b7320793cd258ba183ee504379229193fbd1 Mon Sep 17 00:00:00 2001
From: billkiller <747441355@qq.com>
Date: Sun, 28 Jul 2019 02:00:14 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86bug=EF=BC=8C?=
=?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E6=A1=86=E6=9E=B6=E4=B8=AD=E7=B1=BB?=
=?UTF-8?q?=E5=92=8C=E5=87=BD=E6=95=B0=E5=91=BD=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/workspace.xml | 963 +++++++++---------
.../biubiusuisui/annotation/FXWindow.java | 2 +-
.../biubiusuisui/config/FXMLLoaderPlus.java | 4 +-
.../config/FXPlusApplication.java | 4 +-
.../biubiusuisui/entity/FXBaseController.java | 3 +-
.../entity/FXFieldPropertyMapping.java | 28 -
.../biubiusuisui/entity/FXFieldWarpper.java | 42 +
.../biubiusuisui/entity/FXPlusContext.java | 37 +-
.../biubiusuisui/example/listDemo/Demo.java | 18 +
.../example/listDemo/MainController.java | 47 +
.../biubiusuisui/example/listDemo/User.java | 57 ++
.../expression/data/MyBeanAdapter.java | 3 +-
...XFactory.java => FXControllerFactory.java} | 89 +-
.../biubiusuisui/factory/FXEntityFactory.java | 48 +-
.../messageQueue/MessageQueue.java | 1 -
.../biubiusuisui/proxy/FXEntityProxy.java | 38 +-
.../edu/scau/biubiusuisui/utils/BeanUtil.java | 19 +
src/main/resources/listDemo.fxml | 12 +
.../factory/FXEntityFactoryTest.java | 2 +-
19 files changed, 761 insertions(+), 656 deletions(-)
delete mode 100644 src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldPropertyMapping.java
create mode 100644 src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldWarpper.java
create mode 100644 src/main/java/cn/edu/scau/biubiusuisui/example/listDemo/Demo.java
create mode 100644 src/main/java/cn/edu/scau/biubiusuisui/example/listDemo/MainController.java
create mode 100644 src/main/java/cn/edu/scau/biubiusuisui/example/listDemo/User.java
rename src/main/java/cn/edu/scau/biubiusuisui/factory/{FXFactory.java => FXControllerFactory.java} (77%)
create mode 100644 src/main/java/cn/edu/scau/biubiusuisui/utils/BeanUtil.java
create mode 100644 src/main/resources/listDemo.fxml
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 3cae1e1..7855ba6 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,56 +7,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -86,56 +53,77 @@
-
-
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -144,37 +132,19 @@
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -183,10 +153,10 @@
-
+
-
-
+
+
@@ -201,16 +171,15 @@
-
-
+
+
- Builder
type
Expression.value
getExpression
@@ -240,6 +209,7 @@
managed
String
Property
+ cor
config.FXMLoaer
@@ -265,18 +235,6 @@
@@ -375,6 +345,7 @@
+
@@ -448,7 +419,7 @@
-
+
@@ -460,8 +431,7 @@
-
-
+
@@ -473,7 +443,7 @@
-
+
@@ -485,8 +455,7 @@
-
-
+
@@ -498,8 +467,7 @@
-
-
+
@@ -647,7 +615,6 @@
-
@@ -657,7 +624,7 @@
-
+
@@ -665,7 +632,7 @@
-
+
@@ -686,11 +653,11 @@
+
-
@@ -705,26 +672,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
@@ -789,11 +743,11 @@
-
-
-
+
+
+
@@ -863,6 +817,7 @@
+
1561745555309
@@ -949,7 +904,7 @@
-
+
@@ -964,17 +919,17 @@
-
-
+
+
-
-
-
+
+
+
@@ -983,7 +938,7 @@
-
+
@@ -1096,7 +1051,7 @@
file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/MyBeanAdapter.java
- 11
+ 12
@@ -1154,18 +1109,6 @@
-
- file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/MyExpressionValue.java
- 166
-
-
-
-
- file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java
- 100
-
-
-
file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/ExpressionParser.java
168
@@ -1191,22 +1134,10 @@
- file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/ExpressionParser.java
- 63
+ file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/FXEntityProxy.java
+ 70
-
-
-
- file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/ExpressionParser.java
- 91
-
-
-
-
- file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/expression/data/ExpressionParser.java
- 97
-
-
+
jar://C:/java/jdk/javafx-src.zip!/com/sun/javafx/fxml/expression/BinaryExpression.java
@@ -1271,199 +1202,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1478,23 +1216,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1502,18 +1223,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1528,20 +1237,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1555,48 +1250,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1604,23 +1257,26 @@
-
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -1628,46 +1284,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1675,16 +1320,326 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXWindow.java b/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXWindow.java
index 5fc30e2..14affb7 100644
--- a/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXWindow.java
+++ b/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXWindow.java
@@ -18,7 +18,7 @@ public @interface FXWindow {
double minHeight() default 0.0;
boolean resizable() default false;
boolean draggable() default false;
-
+ boolean mainStage() default false;
StageStyle style() default StageStyle.DECORATED;
String title () ;
}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java b/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java
index f0f3159..53135ce 100644
--- a/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java
+++ b/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java
@@ -3,7 +3,7 @@ package cn.edu.scau.biubiusuisui.config;
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
import cn.edu.scau.biubiusuisui.expression.data.MyBeanAdapter;
import cn.edu.scau.biubiusuisui.expression.data.MyExpressionValue;
-import cn.edu.scau.biubiusuisui.factory.FXFactory;
+import cn.edu.scau.biubiusuisui.factory.FXControllerFactory;
import com.sun.javafx.beans.IDProperty;
import com.sun.javafx.fxml.BeanAdapter;
import com.sun.javafx.fxml.LoadListener;
@@ -1001,7 +1001,7 @@ public class FXMLLoaderPlus {
if (value == null) {
try {
if (FXBaseController.class.isAssignableFrom(type)) {
- value = FXFactory.getFXController(type, fx_id);
+ value = FXControllerFactory.getFXController(type, fx_id);
} else {
value = type.newInstance();
}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java b/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java
index 11c9fca..5402e06 100644
--- a/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java
+++ b/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java
@@ -4,7 +4,7 @@ import cn.edu.scau.biubiusuisui.annotation.FXScan;
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
import cn.edu.scau.biubiusuisui.factory.BeanBuilder;
import cn.edu.scau.biubiusuisui.factory.FXBuilder;
-import cn.edu.scau.biubiusuisui.factory.FXFactory;
+import cn.edu.scau.biubiusuisui.factory.FXControllerFactory;
import cn.edu.scau.biubiusuisui.function.FXWindowParser;
import cn.edu.scau.biubiusuisui.utils.ClassUtils;
@@ -61,7 +61,7 @@ public class FXPlusApplication {
private static void loadFXPlusClass(String className,BeanBuilder beanBuilder) throws ClassNotFoundException {
Class clazz = Class.forName(className);
if(clazz.getAnnotation(FXWindow.class)!=null) {
- FXFactory.loadFXController(clazz, beanBuilder);
+ FXControllerFactory.loadMainStage(clazz, beanBuilder);
}
}
}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java
index 720cdab..1ac6ed8 100644
--- a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java
+++ b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java
@@ -4,6 +4,7 @@ import cn.edu.scau.biubiusuisui.annotation.FXController;
import cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus;
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
import cn.edu.scau.biubiusuisui.utils.StringUtils;
+import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
@@ -31,6 +32,7 @@ public class FXBaseController extends Pane {
private Stage stage;
+
private boolean isController = false;
private boolean isWindows = false;
@@ -107,5 +109,4 @@ public class FXBaseController extends Pane {
this.stage = stage;
}
-
}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldPropertyMapping.java b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldPropertyMapping.java
deleted file mode 100644
index 55ab6c4..0000000
--- a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldPropertyMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package cn.edu.scau.biubiusuisui.entity;
-
-/**
- * @Author jack
- * @Date:2019/6/28 10:03
- */
-public class FXFieldPropertyMapping {
-
- private boolean readOnly;
- private Class type;
-
-
- public boolean isReadOnly() {
- return readOnly;
- }
-
- public void setReadOnly(boolean readOnly) {
- this.readOnly = readOnly;
- }
-
- public Class getType() {
- return type;
- }
-
- public void setType(Class type) {
- this.type = type;
- }
-}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldWarpper.java b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldWarpper.java
new file mode 100644
index 0000000..707072e
--- /dev/null
+++ b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldWarpper.java
@@ -0,0 +1,42 @@
+package cn.edu.scau.biubiusuisui.entity;
+
+import cn.edu.scau.biubiusuisui.annotation.FXField;
+import javafx.beans.property.Property;
+
+/**
+ * @Author jack
+ * @Date:2019/6/28 10:03
+ */
+public class FXFieldWarpper {
+
+ private FXField fxField;
+
+ private Property property;
+
+ private Class type;
+
+ public Class getType() {
+ return type;
+ }
+
+ public void setType(Class type) {
+ this.type = type;
+ }
+
+ public FXField getFxField() {
+ return fxField;
+ }
+
+ public void setFxField(FXField fxField) {
+ this.fxField = fxField;
+ }
+
+ public Property getProperty() {
+ return property;
+ }
+
+ public void setProperty(Property property){
+ this.property = property;
+ }
+
+}
diff --git a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java
index b494b85..c0ae09e 100644
--- a/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java
+++ b/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java
@@ -22,17 +22,8 @@ public class FXPlusContext {
private static Map> controllerContext = new ConcurrentHashMap<>(); //FXController控制器注册表
- private static Map