添加了列表对象的Property

This commit is contained in:
billkiller
2019-06-29 13:03:55 +08:00
parent 8b52a68083
commit e91322268a
22 changed files with 613 additions and 393 deletions

639
.idea/workspace.xml generated
View File

@@ -7,7 +7,28 @@
</component>
<component name="ChangeListManager">
<list default="true" id="6b33e508-9d54-442e-8b71-6d2ffaa8f579" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldViewFieldMapping.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldMethodMapping.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Student.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Student.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/MainTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/MainTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/Main.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/Main.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/entity/FXFieldMethodMapping.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/entity/FXPlusContext.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/entity/FXPlusContext.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/example/MainController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/example/MainController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/example/Student.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/example/Student.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/MainTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/MainTest.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.class" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
@@ -36,23 +57,25 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="38" selection-start-line="38" selection-end-line="38" />
<state relative-caret-position="-76">
<caret line="16" column="3" lean-forward="true" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1600#1601#0" expanded="true" />
<element signature="e#1641#1642#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="836">
<caret line="55" column="27" selection-start-line="55" selection-start-column="27" selection-end-line="55" selection-end-column="27" />
<state relative-caret-position="401">
<caret line="45" column="17" selection-start-line="45" selection-start-column="17" selection-end-line="45" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -60,21 +83,11 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/Main.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="8" column="112" selection-start-line="8" selection-start-column="112" selection-end-line="8" selection-end-column="112" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Student.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
<state relative-caret-position="811">
<caret line="64" column="5" selection-start-line="64" selection-start-column="5" selection-end-line="64" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#377#378#0" expanded="true" />
@@ -93,16 +106,20 @@
<element signature="e#794#795#0" expanded="true" />
<element signature="e#834#835#0" expanded="true" />
<element signature="e#866#867#0" expanded="true" />
<element signature="e#1007#1008#0" expanded="true" />
<element signature="e#1030#1031#0" expanded="true" />
<element signature="e#1086#1087#0" expanded="true" />
<element signature="e#1114#1115#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="418">
<caret line="30" column="24" selection-start-line="30" selection-start-column="24" selection-end-line="30" selection-end-column="24" />
<state relative-caret-position="118">
<caret line="43" column="32" selection-start-line="43" selection-start-column="32" selection-end-line="43" selection-end-column="32" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -111,10 +128,10 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/DefaultEventFunction.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="722">
<caret line="46" column="18" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" />
<state relative-caret-position="311">
<caret line="17" column="5" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -123,10 +140,10 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="42978">
<caret line="2411" column="15" selection-start-line="2411" selection-start-column="15" selection-end-line="2411" selection-end-column="15" />
<state relative-caret-position="165">
<caret line="77" column="66" selection-start-line="77" selection-start-column="66" selection-end-line="77" selection-end-column="66" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -137,8 +154,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1007">
<caret line="68" column="13" selection-start-line="68" selection-start-column="13" selection-end-line="68" selection-end-column="13" />
<state relative-caret-position="446">
<caret line="116" selection-start-line="116" selection-end-line="116" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#786#787#0" expanded="true" />
@@ -149,10 +166,10 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="149">
<caret line="94" column="60" lean-forward="true" selection-start-line="94" selection-start-column="60" selection-end-line="94" selection-end-column="60" />
<state relative-caret-position="427">
<caret line="31" column="65" selection-start-line="31" selection-start-column="65" selection-end-line="31" selection-end-column="65" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -160,14 +177,35 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="3572">
<caret line="188" selection-start-line="188" selection-end-line="188" />
</first_editor>
<second_editor />
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/beans/property/SimpleListProperty.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="211">
<caret line="75" column="11" selection-start-line="75" selection-start-column="11" selection-end-line="75" selection-end-column="11" />
<folding>
<element signature="e#1336#1337#0" expanded="true" />
<element signature="e#1398#1399#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldViewFieldMapping.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#344#345#0" expanded="true" />
<element signature="e#375#376#0" expanded="true" />
<element signature="e#424#425#0" expanded="true" />
<element signature="e#464#465#0" expanded="true" />
<element signature="e#494#495#0" expanded="true" />
<element signature="e#521#522#0" expanded="true" />
<element signature="e#560#561#0" expanded="true" />
<element signature="e#592#593#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@@ -218,8 +256,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/annotation/FXSender.java" />
<option value="$PROJECT_DIR$/src/main/resources/index.js" />
<option value="$PROJECT_DIR$/src/main/java/config/FXMLLoaderPlus.java" />
<option value="$PROJECT_DIR$/src/main/java/utils/StringUtils.java" />
<option value="$PROJECT_DIR$/src/main/java/annotation/FXReceiver.java" />
@@ -249,26 +285,28 @@
<option value="$PROJECT_DIR$/src/main/resources/Main2.fxml" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController2.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXEntity.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityProxyFactory.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/utils/ClassUtils.java" />
<option value="$PROJECT_DIR$/src/test/java/MainTest.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Demo.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXField.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/utils/StringUtils.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldMethodMapping.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/PropertyChangeEvent.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/EventFunction.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/DefaultEventFunction.java" />
<option value="$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java" />
<option value="$PROJECT_DIR$/src/main/resources/Main.fxml" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/test/java/MainTest.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldMethodMapping.java" />
<option value="$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldViewFieldMapping.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Student.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java" />
<option value="$PROJECT_DIR$/README.md" />
</list>
</option>
</component>
@@ -315,6 +353,8 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@@ -378,6 +418,30 @@
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="entity" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="example" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
@@ -390,6 +454,55 @@
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="factory" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="function" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="proxy" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="proxy" type="462c0819:PsiDirectoryNode" />
<item name="classProxy" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
@@ -397,6 +510,69 @@
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cn" type="462c0819:PsiDirectoryNode" />
<item name="edu" type="462c0819:PsiDirectoryNode" />
<item name="scau" type="462c0819:PsiDirectoryNode" />
<item name="biubiusuisui" type="462c0819:PsiDirectoryNode" />
<item name="factory" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="JavaFx-Plus" type="b2602c69:ProjectViewProjectNode" />
<item name="JavaFx-Plus" type="462c0819:PsiDirectoryNode" />
@@ -430,8 +606,6 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -587,8 +761,17 @@
<workItem from="1561743123014" duration="393000" />
<workItem from="1561743648341" duration="829000" />
<workItem from="1561744563550" duration="43000" />
<workItem from="1561744676023" duration="797000" />
<workItem from="1561744676023" duration="1443000" />
<workItem from="1561774531508" duration="9816000" />
</task>
<task id="LOCAL-00001" summary="修改readme">
<created>1561745555309</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1561745555309</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="TestHistory">
@@ -624,7 +807,7 @@
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="134565000" />
<option name="totallyTimeSpent" value="145027000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -637,8 +820,9 @@
</component>
<component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.64579904" visible="true" weight="0.34919572" />
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.64579904" visible="true" weight="0.3538874" />
<window_info id="Structure" order="1" sideWeight="0.354201" side_tool="true" weight="0.2811245" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
@@ -647,7 +831,7 @@
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.4427157" />
<window_info anchor="bottom" id="Run" order="2" weight="0.3084112" />
<window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.58981234" visible="true" weight="0.13314448" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@@ -655,9 +839,9 @@
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" sideWeight="0.49932975" weight="0.3286119" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49731904" visible="true" weight="0.26062322" />
<window_info active="true" anchor="bottom" id="Event Log" order="11" sideWeight="0.50268096" side_tool="true" visible="true" weight="0.26062322" />
<window_info anchor="bottom" id="Messages" order="12" weight="0.328877" />
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.4966488" weight="0.39093485" />
<window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.41018766" side_tool="true" visible="true" weight="0.13314448" />
<window_info anchor="bottom" id="Messages" order="12" sideWeight="0.49798927" weight="0.3286119" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -744,41 +928,10 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<option name="LAST_COMMIT_MESSAGE" value="" />
<MESSAGE value="修改readme" />
<option name="LAST_COMMIT_MESSAGE" value="修改readme" />
</component>
<component name="editorHistoryManager">
<entry file="jar://C:/java/jdk/javafx-src.zip!/com/sun/javafx/tk/quantum/QuantumToolkit.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="422" column="14" selection-start-line="422" selection-start-column="14" selection-end-line="422" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="jar://C:/java/jdk/javafx-src.zip!/com/sun/javafx/tk/Toolkit.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3610">
<caret line="283" column="19" selection-start-line="283" selection-start-column="19" selection-end-line="283" selection-end-column="19" />
<folding>
<element signature="e#9615#9616#0" expanded="true" />
<element signature="e#9676#9677#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/java/jdk/jre/lib/rt.jar!/sun/launcher/LauncherHelper.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="576" selection-start-line="576" selection-end-line="576" />
</state>
</provider>
</entry>
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/application/Application.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1946">
<caret line="144" column="22" selection-start-line="144" selection-start-column="22" selection-end-line="144" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/example2/MainController.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXController.java">
<provider selected="true" editor-type-id="text-editor">
@@ -908,26 +1061,7 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/exception/ProtocolNotSupport.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="8" column="33" selection-start-line="8" selection-start-column="33" selection-end-line="8" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFieldFactory.java" />
<entry file="file://$PROJECT_DIR$/src/test/java/MainTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="11" column="72" selection-start-line="11" selection-start-column="72" selection-end-line="11" selection-end-column="72" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#234#235#0" expanded="true" />
<element signature="e#313#314#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/annotation/FXSender.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="429">
@@ -938,13 +1072,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXMethodEntity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="6" column="77" selection-start-line="6" selection-start-column="77" selection-end-line="6" selection-end-column="77" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/utils/ClassUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
@@ -990,72 +1117,77 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldMethodMapping.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="418">
<caret line="30" column="34" selection-start-line="30" selection-start-column="34" selection-end-line="30" selection-end-column="34" />
<folding>
<element signature="e#643#644#0" expanded="true" />
<element signature="e#693#694#0" expanded="true" />
<element signature="e#735#736#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="665">
<caret line="37" column="32" selection-start-line="37" selection-start-column="32" selection-end-line="37" selection-end-column="32" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1147#1148#0" expanded="true" />
<element signature="e#1194#1195#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/PropertyChangeEvent.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/DefaultEventFunction.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="16" selection-start-line="16" selection-end-line="16" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="304">
<caret line="16" column="15" selection-start-line="16" selection-start-column="15" selection-end-line="16" selection-end-column="15" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java">
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/scene/control/cell/PropertyValueFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="25" column="97" selection-start-line="25" selection-start-column="97" selection-end-line="25" selection-end-column="97" />
<state relative-caret-position="165">
<caret line="112" column="11" selection-start-line="112" selection-start-column="11" selection-end-line="112" selection-end-column="11" />
<folding>
<element signature="e#4183#4184#0" expanded="true" />
<element signature="e#4223#4224#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Demo.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="14" column="5" lean-forward="true" selection-start-line="14" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
<state relative-caret-position="285">
<caret line="15" column="15" lean-forward="true" selection-start-line="15" selection-start-column="15" selection-end-line="15" selection-end-column="15" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java">
<entry file="file://$PROJECT_DIR$/src/test/java/MainTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="931">
<caret line="60" selection-start-line="60" selection-end-line="60" />
<state relative-caret-position="209">
<caret line="11" selection-start-line="11" selection-end-line="11" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java">
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/beans/property/SimpleObjectProperty.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="38" selection-start-line="38" selection-end-line="38" />
<state relative-caret-position="152">
<caret line="31" column="19" lean-forward="true" selection-start-line="31" selection-start-column="19" selection-end-line="31" selection-end-column="19" />
<folding>
<element signature="e#1044#1045#0" expanded="true" />
<element signature="e#1092#1093#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/beans/property/ObjectPropertyBase.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2889">
<caret line="50" column="22" selection-start-line="50" selection-start-column="22" selection-end-line="50" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/exception/ProtocolNotSupport.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="8" column="33" selection-start-line="8" selection-start-column="33" selection-end-line="8" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="612">
<caret line="46" column="18" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@@ -1064,7 +1196,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXBaseController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="836">
<state relative-caret-position="-20">
<caret line="55" column="27" selection-start-line="55" selection-start-column="27" selection-end-line="55" selection-end-column="27" />
<folding>
<element signature="imports" expanded="true" />
@@ -1072,6 +1204,32 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXMethodEntity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="6" column="77" selection-start-line="6" selection-start-column="77" selection-end-line="6" selection-end-column="77" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactoryTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="76">
<caret line="17" column="7" lean-forward="true" selection-start-line="17" selection-start-column="7" selection-end-line="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="146">
<caret line="1659" column="20" selection-start-line="1659" selection-start-column="20" selection-end-line="1659" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#70340#70341#0" expanded="true" />
<element signature="e#70385#70386#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/Main.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
@@ -1080,10 +1238,101 @@
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/function/DefaultEventFunction.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="311">
<caret line="17" column="5" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/java/jdk/javafx-src.zip!/javafx/beans/property/SimpleListProperty.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="211">
<caret line="75" column="11" selection-start-line="75" selection-start-column="11" selection-end-line="75" selection-end-column="11" />
<folding>
<element signature="e#1336#1337#0" expanded="true" />
<element signature="e#1398#1399#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXFieldViewFieldMapping.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#344#345#0" expanded="true" />
<element signature="e#375#376#0" expanded="true" />
<element signature="e#424#425#0" expanded="true" />
<element signature="e#464#465#0" expanded="true" />
<element signature="e#494#495#0" expanded="true" />
<element signature="e#521#522#0" expanded="true" />
<element signature="e#560#561#0" expanded="true" />
<element signature="e#592#593#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="77" column="66" selection-start-line="77" selection-start-column="66" selection-end-line="77" selection-end-column="66" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/entity/FXPlusContext.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="427">
<caret line="31" column="65" selection-start-line="31" selection-start-column="65" selection-end-line="31" selection-end-column="65" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="446">
<caret line="116" selection-start-line="116" selection-end-line="116" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#786#787#0" expanded="true" />
<element signature="e#828#829#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXEntityProxy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="118">
<caret line="43" column="32" selection-start-line="43" selection-start-column="32" selection-end-line="43" selection-end-column="32" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="401">
<caret line="45" column="17" selection-start-line="45" selection-start-column="17" selection-end-line="45" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/Student.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
<state relative-caret-position="811">
<caret line="64" column="5" selection-start-line="64" selection-start-column="5" selection-end-line="64" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#377#378#0" expanded="true" />
@@ -1102,72 +1351,26 @@
<element signature="e#794#795#0" expanded="true" />
<element signature="e#834#835#0" expanded="true" />
<element signature="e#866#867#0" expanded="true" />
<element signature="e#1007#1008#0" expanded="true" />
<element signature="e#1030#1031#0" expanded="true" />
<element signature="e#1086#1087#0" expanded="true" />
<element signature="e#1114#1115#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/proxy/classProxy/FXControllerProxy.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/example/MainController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="418">
<caret line="30" column="24" selection-start-line="30" selection-start-column="24" selection-end-line="30" selection-end-column="24" />
<state relative-caret-position="-76">
<caret line="16" column="3" lean-forward="true" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1600#1601#0" expanded="true" />
<element signature="e#1641#1642#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXPlusApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="722">
<caret line="46" column="18" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/config/FXMLLoaderPlus.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="42978">
<caret line="2411" column="15" selection-start-line="2411" selection-start-column="15" selection-end-line="2411" selection-end-column="15" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1007">
<caret line="68" column="13" selection-start-line="68" selection-start-column="13" selection-end-line="68" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#786#787#0" expanded="true" />
<element signature="e#828#829#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/scau/biubiusuisui/factory/FXEntityFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="149">
<caret line="94" column="60" lean-forward="true" selection-start-line="94" selection-start-column="60" selection-end-line="94" selection-end-column="60" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="3572">
<caret line="188" selection-start-line="188" selection-end-line="188" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>

View File

@@ -1,38 +0,0 @@
package cn.edu.scau.biubiusuisui.entity;
import java.lang.reflect.Method;
/**
* @Author jack
* @Date:2019/6/28 10:03
*/
public class FXFieldMethodMapping {
private Method setMethod ;
private Method addMethod ;
private Method delMethod;
public Method getSetMethod() {
return setMethod;
}
public void setSetMethod(Method setMethod) {
this.setMethod = setMethod;
}
public Method getAddMethod() {
return addMethod;
}
public void setAddMethod(Method addMethod) {
this.addMethod = addMethod;
}
public Method getDelMethod() {
return delMethod;
}
public void setDelMethod(Method delMethod) {
this.delMethod = delMethod;
}
}

View File

@@ -0,0 +1,33 @@
package cn.edu.scau.biubiusuisui.entity;
import javafx.beans.property.Property;
import javafx.beans.value.ObservableValue;
import java.lang.reflect.Method;
/**
* @Author jack
* @Date:2019/6/28 10:03
*/
public class FXFieldViewFieldMapping {
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;
}
}

View File

@@ -1,6 +1,7 @@
package cn.edu.scau.biubiusuisui.entity;
import cn.edu.scau.biubiusuisui.proxy.classProxy.FXEntityProxy;
import javafx.beans.property.Property;
import java.util.LinkedList;
import java.util.List;
@@ -19,9 +20,19 @@ public class FXPlusContext {
private FXPlusContext(){}
private static Map<String, List<FXBaseController>> controllerContext = new ConcurrentHashMap<>();
private static Map<String, List<FXBaseController>> controllerContext = new ConcurrentHashMap<>(); //FXController控制器注册表
private static Map<Object, FXEntityProxy> beanProxyMap = new ConcurrentHashMap<>();
private static Map<Object, FXEntityProxy> beanProxyMap = new ConcurrentHashMap<>(); // Object注册为FXEntityObject
public static Property getEntityPropertyByName(Object object, String fieldName){
FXEntityProxy fxEntityProxy = FXPlusContext.getProryByBeanObject(object);
if(fxEntityProxy == null){
return null;
}
return fxEntityProxy.getStringPropertyMap().get(fieldName);
}
private static Map<String, Object> session = new ConcurrentHashMap<>();
public static void addController(FXBaseController fxBaseController){
List<FXBaseController> controllers = controllerContext.get(fxBaseController.getName());
@@ -49,4 +60,20 @@ public class FXPlusContext {
public static void setBeanProxyMap(Map<Object, FXEntityProxy> beanProxyMap) {
FXPlusContext.beanProxyMap = beanProxyMap;
}
public static Map<String, List<FXBaseController>> getControllerContext() {
return controllerContext;
}
public static void setControllerContext(Map<String, List<FXBaseController>> controllerContext) {
FXPlusContext.controllerContext = controllerContext;
}
public static Map<String, Object> getSession() {
return session;
}
public static void setSession(Map<String, Object> session) {
FXPlusContext.session = session;
}
}

View File

@@ -1,17 +1,15 @@
package cn.edu.scau.biubiusuisui.example;
import cn.edu.scau.biubiusuisui.annotation.*;
import cn.edu.scau.biubiusuisui.annotation.FXController;
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
import cn.edu.scau.biubiusuisui.entity.FXPlusContext;
import cn.edu.scau.biubiusuisui.factory.FXEntityFactory;
import cn.edu.scau.biubiusuisui.factory.FXFactory;
import cn.edu.scau.biubiusuisui.proxy.classProxy.FXEntityProxy;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleStringProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import java.net.URL;
import java.util.ResourceBundle;
@@ -25,31 +23,37 @@ import java.util.ResourceBundle;
public class MainController extends FXBaseController{
@FXML
Button btn;
private ResourceBundle resources;
@FXML
Label label;
private URL location;
@FXML
private Button addBtn;
@FXML
private Button delBtn;
@FXML
private ListView<String> list;
Student student;
int count = 1;
@Override
public void initialize() {
student = (Student) FXEntityFactory.getInstance().createJavaBeanProxy(Student.class); //工厂产生一个学生
student.setName("Jack"); //设置学生姓名
FXEntityProxy fxEntityProxy = FXPlusContext.getProryByBeanObject(student); //获取学生代理
Property nameProperty = fxEntityProxy.getPropertyByFieldName("name"); //获取Bean对应的Property
label.textProperty().bind(nameProperty); //属性绑定
@FXML
void addWord(ActionEvent event) {
System.out.println("click add");
student.addList("hello" );
}
@FXML
@FXSender
public String send(){
student.setName("Jack :" + count);
count++;
return "sending msg";
void delWord(ActionEvent event) {
student.delList("hello");
}
@Override
public void initialize() {
student = (Student) FXEntityFactory.createJavaBeanProxy(Student.class);
Property property = FXPlusContext.getEntityPropertyByName(student, "list");
list.itemsProperty().bind(property);
}
}

View File

@@ -3,10 +3,13 @@ package cn.edu.scau.biubiusuisui.example;
import cn.edu.scau.biubiusuisui.annotation.FXEntity;
import cn.edu.scau.biubiusuisui.annotation.FXField;
import java.util.ArrayList;
import java.util.List;
/**
* @Author jack
* @Date:2019/6/27 20:02
*/
@FXEntity
public class Student {
@@ -19,6 +22,9 @@ public class Student {
private String code;
@FXField
private List<String> list = new ArrayList<>();
public String getName() {
return name;
}
@@ -50,4 +56,11 @@ public class Student {
public void setCode(String code) {
this.code = code;
}
public void addList(String word){
list.add(word);
}
public void delList(String word){
list.remove(word);
}
}

View File

@@ -1,18 +1,18 @@
package cn.edu.scau.biubiusuisui.factory;
import cn.edu.scau.biubiusuisui.annotation.FXField;
import cn.edu.scau.biubiusuisui.entity.FXFieldViewFieldMapping;
import cn.edu.scau.biubiusuisui.entity.FXPlusContext;
import cn.edu.scau.biubiusuisui.function.DefaultEventFunction;
import cn.edu.scau.biubiusuisui.proxy.classProxy.FXEntityProxy;
import cn.edu.scau.biubiusuisui.utils.ClassUtils;
import javafx.beans.property.*;
import javafx.beans.value.ChangeListener;
import javafx.collections.FXCollections;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
/**
* @Author jack
@@ -22,18 +22,7 @@ public class FXEntityFactory {
private FXEntityFactory(){}
private static FXEntityFactory instance = null;
ChangeListener propertyChangeEvent = new DefaultEventFunction();
public synchronized static FXEntityFactory getInstance() {
if(instance == null){
instance = new FXEntityFactory();
}
return instance;
}
public Object createJavaBeanProxy(Class clazz) {
public static Object createJavaBeanProxy(Class clazz) {
Object object = null;
try {
object = clazz.newInstance();
@@ -45,15 +34,13 @@ public class FXEntityFactory {
return createJavaBeanProxy(object);
}
public Object createJavaBeanProxy(Object object){
public static Object createJavaBeanProxy(Object object){
FXEntityProxy fxEntityProxy = new FXEntityProxy();
Object objectProxy = null;
try {
objectProxy = fxEntityProxy.getInstance(object);
Map<String, Property> stringPropertyMap = FXEntityFactory.getInstance().getEntityProperty(object,objectProxy);
fxEntityProxy.setStringPropertyMap(stringPropertyMap);
processFXEntityProxy(object,objectProxy,fxEntityProxy);
FXPlusContext.setProxyByBeanObject(objectProxy, fxEntityProxy);
} catch (IllegalAccessException e) {
e.printStackTrace();
@@ -62,47 +49,51 @@ public class FXEntityFactory {
}
public Map<String, Property> getEntityProperty(Object entity,Object proxy) throws IllegalAccessException {
public static void processFXEntityProxy(Object entity, Object proxy,FXEntityProxy fxEntityProxy) throws IllegalAccessException {
Map<String, Property> stringPropertyMap = new HashMap<>();
Map<String, FXFieldViewFieldMapping> stringFXFieldMethodMappingMap = new HashMap<>();
Field []fields = entity.getClass().getDeclaredFields();
for(Field field:fields){
Annotation annotation = ClassUtils.getAnnotationInList( FXField.class,field.getDeclaredAnnotations());
if(annotation != null){
Property property;
Property property = null;
field.setAccessible(true);
FXField fxField = (FXField)annotation;
FXFieldViewFieldMapping fieldMethodMapping = new FXFieldViewFieldMapping();
fieldMethodMapping.setReadOnly(fxField.readOnly());
fieldMethodMapping.setType(field.getType());
stringFXFieldMethodMappingMap.put(field.getName(), fieldMethodMapping);
if(field.get(entity) == null){
if(fxField.readOnly()){
property = getReadOnlyFieldDefalutProperty(field);
}else{
property = getFieldDefalutProperty(field);
}
}else{
if(fxField.readOnly()){
property = getReadOnlyProperty(entity,field);
}else{
property = getFieldProperty(entity, field);
}
}
if(property !=null) {
//添加时间;
property.addListener((object,oldVal,newVal)->{
try {
field.set(proxy, newVal);
} catch (IllegalAccessException e) {
e.printStackTrace();
if(!fxField.readOnly()) {
if(!field.getType().equals(List.class)) {
try {
field.set(proxy, newVal);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
});
stringPropertyMap.put(field.getName(), property);
}
}
}
return stringPropertyMap;
fxEntityProxy.setStringPropertyMap(stringPropertyMap);
fxEntityProxy.setStringFXFieldMethodMappingMap(stringFXFieldMethodMappingMap);
}
private static Property getFieldProperty(Object object,Field field) throws IllegalAccessException {
Class type = field.getType();
Object value = field.get(object);
@@ -119,6 +110,10 @@ public class FXEntityFactory {
property = new SimpleLongProperty((Long) value);
}else if(String.class.equals(type)){
property = new SimpleStringProperty((String) value);
}else if(List.class.equals(type)){
property = new SimpleListProperty(FXCollections.observableList((List)value));
}else if(Object.class.equals(type)){
property = new SimpleObjectProperty(value);
}
return property;
}
@@ -137,50 +132,12 @@ public class FXEntityFactory {
property = new SimpleLongProperty();
}else if(String.class.equals(type)){
property = new SimpleStringProperty();
}else if(List.class.equals(type)){
property = new SimpleListProperty();
}else if(Object.class.equals(type)){
property = new SimpleObjectProperty();
}
return property;
}
private static Property getReadOnlyFieldDefalutProperty(Field field) throws IllegalAccessException{
Class type = field.getType();
Property property = null;
if(Boolean.class.equals(type)){
property = new ReadOnlyBooleanWrapper();
}else if(Double.class.equals(type)){
property = new ReadOnlyDoubleWrapper();
}else if (Float.class.equals(type)){
property = new ReadOnlyFloatWrapper();
}else if(Integer.class.equals(type)){
property = new ReadOnlyIntegerWrapper();
}else if(Long.class.equals(type)){
property = new ReadOnlyLongWrapper();
}else if(String.class.equals(type)){
property = new ReadOnlyStringWrapper();
}
return property;
}
private static Property getReadOnlyProperty(Object object,Field field) throws IllegalAccessException {
Class type = field.getType();
Object value = field.get(object);
Property property = null;
if(Boolean.class.equals(type)){
property = new ReadOnlyBooleanWrapper((Boolean) value);
}else if(Double.class.equals(type)){
property = new ReadOnlyDoubleWrapper((Double) value);
}else if (Float.class.equals(type)){
property = new ReadOnlyFloatWrapper((Float) value);
}else if(Integer.class.equals(type)){
property = new ReadOnlyIntegerWrapper((Integer) value);
}else if(Long.class.equals(type)){
property = new ReadOnlyLongWrapper((Long) value);
}else if(String.class.equals(type)){
property = new ReadOnlyStringWrapper((String) value);
}
return property;
}
private static Method getFieldMethodMapping(Object object ,Field field){
Class clazz = object.getClass();
return null;
}
}

View File

@@ -114,4 +114,5 @@ public class FXFactory {
}
return fxControllerProxy;
}
}

View File

@@ -44,7 +44,6 @@ public class FXControllerProxy implements MethodInterceptor {
}else{
name += fxSender.name();
}
MessageQueue.getInstance().sendMsg(name,o1);
}
}

View File

@@ -1,15 +1,12 @@
package cn.edu.scau.biubiusuisui.proxy.classProxy;
import cn.edu.scau.biubiusuisui.entity.FXFieldMethodMapping;
import cn.edu.scau.biubiusuisui.entity.FXFieldViewFieldMapping;
import cn.edu.scau.biubiusuisui.utils.StringUtils;
import javafx.beans.property.ListProperty;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.*;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.Map;
@@ -22,7 +19,7 @@ public class FXEntityProxy implements MethodInterceptor {
Object target;
private Map<String, Property> stringPropertyMap;
private Map<String, FXFieldMethodMapping> stringFXFieldMethodMappingMap;
private Map<String, FXFieldViewFieldMapping> stringFXFieldMethodMappingMap;
public Object getInstance(Object target) {
this.target = target;
@@ -53,13 +50,33 @@ public class FXEntityProxy implements MethodInterceptor {
} else {
return o1;
}
SimpleStringProperty property = (SimpleStringProperty) stringPropertyMap.get(fieldName);
if (methodName.startsWith("set")) {
property.set((String) objects[0]);
FXFieldViewFieldMapping fieldMethodMapping = stringFXFieldMethodMappingMap.get(fieldName);
Property property = stringPropertyMap.get(fieldName);
if(fieldMethodMapping == null || property == null){
return o1;
}
Class type = fieldMethodMapping.getType();
if (methodName.startsWith("set")) {
if(Boolean.class.equals(type)){
((SimpleBooleanProperty)property).set((Boolean)objects[0]);
}else if(Double.class.equals(type)){
((SimpleDoubleProperty)property).set((Double)objects[0]);
}else if (Float.class.equals(type)){
((SimpleFloatProperty)property).set((Float) objects[0]);
}else if(Integer.class.equals(type)){
((SimpleIntegerProperty)property).set((Integer) objects[0]);
}else if(Long.class.equals(type)){
((SimpleLongProperty)property).set((Long)objects[0]);
}else if(String.class.equals(type)){
((SimpleStringProperty)property).set((String)objects[0]);
}
}else if (methodName.startsWith("add")){
((SimpleListProperty)(property)).add(objects[0]);
}else if(methodName.startsWith("del")){
((SimpleListProperty)(property)).remove(objects[0]);
}
//修改
return o1;
}
@@ -83,4 +100,12 @@ public class FXEntityProxy implements MethodInterceptor {
public void setStringPropertyMap(Map<String, Property> stringPropertyMap) {
this.stringPropertyMap = stringPropertyMap;
}
public Map<String, FXFieldViewFieldMapping> getStringFXFieldMethodMappingMap() {
return stringFXFieldMethodMappingMap;
}
public void setStringFXFieldMethodMappingMap(Map<String, FXFieldViewFieldMapping> stringFXFieldMethodMappingMap) {
this.stringFXFieldMethodMappingMap = stringFXFieldMethodMappingMap;
}
}

View File

@@ -9,6 +9,6 @@ import org.junit.Test;
public class MainTest {
@Test
public void test(){
FXEntityFactory fxEntityFactory = FXEntityFactory.getInstance();
}
}

View File

@@ -1,15 +1,11 @@
package cn.edu.scau.biubiusuisui.factory;
import cn.edu.scau.biubiusuisui.annotation.FXEntity;
import cn.edu.scau.biubiusuisui.entity.FXPlusContext;
import cn.edu.scau.biubiusuisui.example.Student;
import javafx.beans.property.Property;
import org.junit.Test;
import java.util.Map;
import java.util.function.Predicate;
import static org.junit.Assert.*;
/**
* @Author jack
@@ -19,17 +15,16 @@ public class FXEntityFactoryTest {
@Test
public void getClassProperty() {
FXEntityFactory fxEntityFactory =FXEntityFactory.getInstance();
Student student = new Student();
student.setName("Jack");
try {
Map<String, Property> entityProperty = fxEntityFactory.getEntityProperty(student,null);
entityProperty.forEach((k,v)->{
System.out.println("key" + k +" v" + v);
});
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// Student student = new Student();
// student.setName("Jack");
// try {
// Map<String, Property> entityProperty = FXEntityFactory.processFXEntityProxy(student,null);
// entityProperty.forEach((k,v)->{
// System.out.println("key" + k +" v" + v);
// });
// } catch (IllegalAccessException e) {
// e.printStackTrace();
// }
}
@@ -45,7 +40,7 @@ public class FXEntityFactoryTest {
@Test
public void createJavaBeanProxy2() throws InstantiationException, IllegalAccessException {
Student student1 = (Student) FXEntityFactory.getInstance().createJavaBeanProxy(Student.class);
Student student1 = (Student) FXEntityFactory.createJavaBeanProxy(Student.class);
System.out.println(student1);
FXPlusContext.getProryByBeanObject(student1).getStringPropertyMap().forEach((k,v)->{
System.out.println("k " +k +"v" + v);

View File

@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.Pane?>
<fx:root prefHeight="400.0" prefWidth="600.0" type="Pane" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cn.edu.scau.biubiusuisui.example.MainController">
<fx:root prefHeight="400.0" prefWidth="600.0" type="Pane" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="cn.edu.scau.biubiusuisui.example.MainController">
<children>
<Button fx:id="btn" layoutX="366.0" layoutY="159.0" mnemonicParsing="false" text="Button" onAction="#send"/>
<Label fx:id="label" layoutX="130.0" layoutY="159.0" prefHeight="30.0" prefWidth="184.0" text="JavaFX Plus is awesome!" />
<Button fx:id="addBtn" layoutX="454.0" layoutY="98.0" mnemonicParsing="false" onAction="#addWord" text="add" />
<Button fx:id="delBtn" layoutX="454.0" layoutY="144.0" mnemonicParsing="false" onAction="#delWord" text="del" />
<ListView fx:id="list" layoutX="40.0" layoutY="68.0" prefHeight="183.0" prefWidth="373.0" />
</children>
</fx:root>

View File

Binary file not shown.