diff --git a/migration/i7.1z/oracle/201804111700_TicketAP2-19.sql b/migration/i7.1z/oracle/201804111700_TicketAP2-19.sql new file mode 100644 index 0000000000..d792b096ab --- /dev/null +++ b/migration/i7.1z/oracle/201804111700_TicketAP2-19.sql @@ -0,0 +1,27 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Apr 10, 2018 7:56:35 PM GMT+08:00 +-- Radio Group List +INSERT INTO AD_Reference (AD_Client_ID,AD_Org_ID,AD_Reference_ID,AD_Reference_UU,Created,CreatedBy,EntityType,IsActive,IsOrderByValue,Name,Updated,UpdatedBy,ValidationType) VALUES (0,0,200152,'bde88a42-3601-499e-a2ee-2185eb6fc785',TO_DATE('2018-04-10 19:56:29','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','N','Radio Group List',TO_DATE('2018-04-10 19:56:29','YYYY-MM-DD HH24:MI:SS'),100,'D') +; + +-- Apr 10, 2018 7:57:56 PM GMT+08:00 +UPDATE AD_Val_Rule SET Code='AD_Reference.ValidationType=CASE WHEN @AD_Reference_ID@ IN (17,28,200152) THEN ''L'' ELSE ''T'' END',Updated=TO_DATE('2018-04-10 19:57:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=115 +; + +-- Apr 10, 2018 8:00:03 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-04-10 20:00:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Apr 10, 2018 8:01:28 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-04-10 20:01:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Apr 10, 2018 8:02:27 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-04-10 20:02:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +SELECT register_migration_script('201804111700_TicketAP2-19.sql') FROM dual +; + diff --git a/migration/i7.1z/oracle/202010241339_IDEMPIERE-2902.sql b/migration/i7.1z/oracle/202010241339_IDEMPIERE-2902.sql new file mode 100644 index 0000000000..40940fef0f --- /dev/null +++ b/migration/i7.1z/oracle/202010241339_IDEMPIERE-2902.sql @@ -0,0 +1,83 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- IDEMPIERE-2902 UX: Implement Radio buttons +-- Oct 24, 2020, 12:46:20 PM CEST +UPDATE AD_Val_Rule SET Code='AD_Reference.ValidationType=CASE WHEN @AD_Reference_ID@ IN (17,28,200152,200161) THEN ''L'' ELSE ''T'' END',Updated=TO_DATE('2020-10-24 12:46:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=115 +; + +-- Oct 24, 2020, 12:47:54 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 12:47:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Oct 24, 2020, 12:48:35 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 12:48:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Oct 24, 2020, 12:49:14 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 12:49:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +-- Oct 24, 2020, 12:58:30 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 12:58:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10225 +; + +-- Oct 24, 2020, 12:59:32 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 12:59:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Oct 24, 2020, 1:01:26 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 & @AttributeValueType@=''R''', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:01:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204144 +; + +-- Oct 24, 2020, 1:01:51 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:01:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201895 +; + +-- Oct 24, 2020, 1:22:34 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_DATE('2020-10-24 13:22:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=53002 +; + +-- Oct 24, 2020, 1:26:26 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_DATE('2020-10-24 13:26:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200989 +; + +-- Oct 24, 2020, 1:29:27 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:29:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172 +; + +-- Oct 24, 2020, 1:29:46 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:29:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206091 +; + +-- Oct 24, 2020, 1:31:42 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:31:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54401 +; + +-- Oct 24, 2020, 1:31:49 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:31:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206129 +; + +-- Oct 24, 2020, 1:32:45 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:32:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=203266 +; + +-- Oct 24, 2020, 1:33:17 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 & @AttributeValueType@=''R''', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:33:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206510 +; + +-- Oct 24, 2020, 1:33:41 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:33:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Oct 24, 2020, 1:38:25 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2020-10-24 13:38:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206130 +; + +-- Oct 24, 2020, 1:42:01 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_DATE('2020-10-24 13:42:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211257 +; + +SELECT register_migration_script('202010241339_IDEMPIERE-2902.sql') FROM dual +; + diff --git a/migration/i7.1z/postgresql/201804111700_TicketAP2-19.sql b/migration/i7.1z/postgresql/201804111700_TicketAP2-19.sql new file mode 100644 index 0000000000..e70ec97147 --- /dev/null +++ b/migration/i7.1z/postgresql/201804111700_TicketAP2-19.sql @@ -0,0 +1,24 @@ +-- Apr 10, 2018 7:56:35 PM GMT+08:00 +-- Radio Group List +INSERT INTO AD_Reference (AD_Client_ID,AD_Org_ID,AD_Reference_ID,AD_Reference_UU,Created,CreatedBy,EntityType,IsActive,IsOrderByValue,Name,Updated,UpdatedBy,ValidationType) VALUES (0,0,200152,'bde88a42-3601-499e-a2ee-2185eb6fc785',TO_TIMESTAMP('2018-04-10 19:56:29','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','N','Radio Group List',TO_TIMESTAMP('2018-04-10 19:56:29','YYYY-MM-DD HH24:MI:SS'),100,'D') +; + +-- Apr 10, 2018 7:57:56 PM GMT+08:00 +UPDATE AD_Val_Rule SET Code='AD_Reference.ValidationType=CASE WHEN @AD_Reference_ID@ IN (17,28,200152) THEN ''L'' ELSE ''T'' END',Updated=TO_TIMESTAMP('2018-04-10 19:57:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=115 +; + +-- Apr 10, 2018 8:00:03 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-04-10 20:00:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Apr 10, 2018 8:01:28 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-04-10 20:01:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Apr 10, 2018 8:02:27 PM GMT+08:00 +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152', AD_Val_Rule_ID=NULL, AD_Reference_Value_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-04-10 20:02:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +SELECT register_migration_script('201804111700_TicketAP2-19.sql') FROM dual +; + diff --git a/migration/i7.1z/postgresql/202010241339_IDEMPIERE-2902.sql b/migration/i7.1z/postgresql/202010241339_IDEMPIERE-2902.sql new file mode 100644 index 0000000000..062510433f --- /dev/null +++ b/migration/i7.1z/postgresql/202010241339_IDEMPIERE-2902.sql @@ -0,0 +1,80 @@ +-- IDEMPIERE-2902 UX: Implement Radio buttons +-- Oct 24, 2020, 12:46:20 PM CEST +UPDATE AD_Val_Rule SET Code='AD_Reference.ValidationType=CASE WHEN @AD_Reference_ID@ IN (17,28,200152,200161) THEN ''L'' ELSE ''T'' END',Updated=TO_TIMESTAMP('2020-10-24 12:46:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=115 +; + +-- Oct 24, 2020, 12:47:54 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 12:47:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Oct 24, 2020, 12:48:35 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 12:48:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Oct 24, 2020, 12:49:14 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 12:49:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +-- Oct 24, 2020, 12:58:30 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 12:58:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10225 +; + +-- Oct 24, 2020, 12:59:32 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 12:59:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Oct 24, 2020, 1:01:26 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 & @AttributeValueType@=''R''', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:01:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204144 +; + +-- Oct 24, 2020, 1:01:51 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:01:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201895 +; + +-- Oct 24, 2020, 1:22:34 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_TIMESTAMP('2020-10-24 13:22:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=53002 +; + +-- Oct 24, 2020, 1:26:26 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_TIMESTAMP('2020-10-24 13:26:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200989 +; + +-- Oct 24, 2020, 1:29:27 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:29:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172 +; + +-- Oct 24, 2020, 1:29:46 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:29:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206091 +; + +-- Oct 24, 2020, 1:31:42 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:31:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54401 +; + +-- Oct 24, 2020, 1:31:49 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:31:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206129 +; + +-- Oct 24, 2020, 1:32:45 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:32:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=203266 +; + +-- Oct 24, 2020, 1:33:17 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 & @AttributeValueType@=''R''', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:33:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206510 +; + +-- Oct 24, 2020, 1:33:41 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:33:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Oct 24, 2020, 1:38:25 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2020-10-24 13:38:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206130 +; + +-- Oct 24, 2020, 1:42:01 PM CEST +UPDATE AD_Column SET AD_Reference_ID=200152,Updated=TO_TIMESTAMP('2020-10-24 13:42:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211257 +; + +SELECT register_migration_script('202010241339_IDEMPIERE-2902.sql') FROM dual +; + diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 3eb7a984b8..dcebbbb787 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -188,7 +188,7 @@ public class MLookupFactory MLookupInfo info = null; boolean needToAddSecurity = true; // List - if (AD_Reference_ID == DisplayType.List || AD_Reference_ID == DisplayType.ChosenMultipleSelectionList) // 17 + if (AD_Reference_ID == DisplayType.List || AD_Reference_ID == DisplayType.ChosenMultipleSelectionList || AD_Reference_ID == DisplayType.RadiogroupList) // 17 { info = getLookup_List(language, AD_Reference_Value_ID); needToAddSecurity = false; diff --git a/org.adempiere.base/src/org/compiere/model/SystemIDs.java b/org.adempiere.base/src/org/compiere/model/SystemIDs.java index 11ffa58441..fd19b10d76 100644 --- a/org.adempiere.base/src/org/compiere/model/SystemIDs.java +++ b/org.adempiere.base/src/org/compiere/model/SystemIDs.java @@ -127,6 +127,7 @@ public class SystemIDs public final static int REFERENCE_DATATYPE_PRINTNAME = 42; public final static int REFERENCE_DATATYPE_PRODUCTATTRIBUTE = 35; public final static int REFERENCE_DATATYPE_QUANTITY = 29; + public final static int REFERENCE_DATATYPE_RADIOGROUP_LIST= 200152; public final static int REFERENCE_DATATYPE_ROWID = 26; public final static int REFERENCE_DATATYPE_SEARCH = 30; public final static int REFERENCE_DATATYPE_STRING = 10; diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java index a4c07f1c3a..ff787da52a 100644 --- a/org.adempiere.base/src/org/compiere/util/DisplayType.java +++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java @@ -21,11 +21,13 @@ import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_AMOUNT; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_ASSIGNMENT; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BINARY; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BUTTON; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHART; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_LIST; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_TABLE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_SEARCH; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_TABLE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_COLOR; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_COSTPRICE; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DASHBOARD_CONTENT; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DATE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DATETIME; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_FILENAME; @@ -37,13 +39,16 @@ import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LIST; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LOCATION; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LOCATOR; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_MEMO; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_MULTIPLE_SELECTION_GRID; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_NUMBER; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_PAYMENT; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_PRINTNAME; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_PRODUCTATTRIBUTE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_QUANTITY; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_RADIOGROUP_LIST; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_ROWID; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SEARCH; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SINGLE_SELECTION_GRID; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_STRING; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLEDIR; @@ -52,10 +57,6 @@ import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TEXTLONG; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TIME; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_URL; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_YES_NO; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_CHART; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DASHBOARD_CONTENT; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SINGLE_SELECTION_GRID; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_MULTIPLE_SELECTION_GRID; import java.text.DateFormat; import java.text.DecimalFormat; @@ -163,6 +164,8 @@ public final class DisplayType public static final int MultipleSelectionGrid = REFERENCE_DATATYPE_MULTIPLE_SELECTION_GRID; + public static final int RadiogroupList = REFERENCE_DATATYPE_RADIOGROUP_LIST; + public static final int ChosenMultipleSelectionList = REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_LIST; public static final int ChosenMultipleSelectionTable = REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_TABLE; @@ -311,6 +314,7 @@ public final class DisplayType || displayType == URL || displayType == PrinterName || displayType == SingleSelectionGrid || displayType == Color || displayType == MultipleSelectionGrid + || displayType == RadiogroupList || displayType == ChosenMultipleSelectionList || displayType == ChosenMultipleSelectionTable || displayType == ChosenMultipleSelectionSearch) @@ -370,6 +374,7 @@ public final class DisplayType { if (displayType == List || displayType == Table || displayType == TableDir || displayType == Search + || displayType == RadiogroupList || displayType == ChosenMultipleSelectionTable || displayType == ChosenMultipleSelectionSearch || displayType == ChosenMultipleSelectionList) @@ -655,7 +660,7 @@ public final class DisplayType */ public static Class getClass (int displayType, boolean yesNoAsBoolean) { - if (isText(displayType) || displayType == List || displayType == Payment) + if (isText(displayType) || displayType == List || displayType == Payment || displayType == RadiogroupList) return String.class; else if (isID(displayType) || displayType == Integer) // note that Integer is stored as BD return Integer.class; @@ -744,7 +749,7 @@ public final class DisplayType return getDatabase().getClobDataType(); if (displayType == DisplayType.YesNo) return getDatabase().getCharacterDataType()+"(1)"; - if (displayType == DisplayType.List || displayType == DisplayType.Payment) { + if (displayType == DisplayType.List || displayType == DisplayType.Payment || displayType == DisplayType.RadiogroupList) { if (fieldLength == 1) return getDatabase().getCharacterDataType()+"(" + fieldLength + ")"; else @@ -809,6 +814,8 @@ public final class DisplayType return "DateTime"; if (displayType == List) return "List"; + if (displayType == RadiogroupList) + return "RadiogroupList"; if (displayType == Table) return "Table"; if (displayType == TableDir) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java index f8b35c2516..d1c6bac956 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java @@ -28,6 +28,7 @@ import org.adempiere.webui.component.EditorBox; import org.adempiere.webui.component.NumberBox; import org.adempiere.webui.component.Textbox; import org.adempiere.webui.component.Urlbox; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WButtonEditor; import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.editor.WEditorPopupMenu; @@ -109,6 +110,18 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt /** DefaultFocusField */ private WEditor defaultFocusField = null; + private final static IEditorConfiguration readOnlyEditorConfiguration = new IEditorConfiguration() { + @Override + public Boolean getReadonly() { + return Boolean.TRUE; + } + + @Override + public Boolean getMandatory() { + return Boolean.FALSE; + } + }; + /** * * @param gridTab @@ -503,9 +516,8 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt } //readonly for display text - WEditor readOnlyEditor = WebEditorFactory.getEditor(gridPanelFields[i], true); + WEditor readOnlyEditor = WebEditorFactory.getEditor(gridPanelFields[i], true, readOnlyEditorConfiguration); if (readOnlyEditor != null) { - readOnlyEditor.setReadWrite(false); readOnlyEditors.put(gridPanelFields[i], readOnlyEditor); } @@ -706,8 +718,10 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt { popupMenu.addMenuListener((ContextMenuListener)editor); div.appendChild(popupMenu); - popupMenu.addContextElement((XulElement) editor.getComponent()); - } + Component editorComponent = editor.getComponent(); + if (editorComponent instanceof XulElement) + popupMenu.addContextElement((XulElement) editorComponent); + } Properties ctx = isDetailPane() ? new GridRowCtx(Env.getCtx(), gridTab) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/IEditorConfiguration.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/IEditorConfiguration.java new file mode 100644 index 0000000000..45774f200a --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/IEditorConfiguration.java @@ -0,0 +1,49 @@ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - hengsin * + **********************************************************************/ +package org.adempiere.webui.editor; + +/** + * Interface to override editor setting that's usually derived from GridField + * @author hengsin + * + */ +public interface IEditorConfiguration { + + /** + * Return a not null Boolean to override GridField.isReadOnly + * @return Boolean + */ + public default Boolean getReadonly() { + return null; + } + + /** + * Return a not null Boolean to override GridField.isMandatory + * @return Boolean + */ + public default Boolean getMandatory() { + return null; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/INumberEditorConfiguration.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/INumberEditorConfiguration.java new file mode 100644 index 0000000000..fbe512ca22 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/INumberEditorConfiguration.java @@ -0,0 +1,41 @@ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - hengsin * + **********************************************************************/ +package org.adempiere.webui.editor; + +/** + * Interface for NumberEditor configuration + * @author hengsin + * + */ +public interface INumberEditorConfiguration extends IEditorConfiguration { + + /** + * Return a not null value to override the integral setting from GridField.getDisplayType + * @return Boolean + */ + public default Boolean getIntegral() { + return null; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAccountEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAccountEditor.java index 7580de109f..432b0ce90b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAccountEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAccountEditor.java @@ -52,9 +52,24 @@ public class WAccountEditor extends WEditor implements ContextMenuListener /** Logger */ private static final CLogger log = CLogger.getCLogger(WAccountEditor.class); + /** + * + * @param gridField + */ public WAccountEditor(GridField gridField) { - super(new Combinationbox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WAccountEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new Combinationbox(), gridField, tableEditor, editorConfiguration); if (ThemeManager.isUseFontIconForImage()) getComponent().getButton().setIconSclass("z-icon-Account"); else diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAssignmentEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAssignmentEditor.java index 515d99824a..4c27aeecc5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAssignmentEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WAssignmentEditor.java @@ -48,8 +48,22 @@ public class WAssignmentEditor extends WEditor implements ContextMenuListener { private DateFormat m_dateFormat = DisplayType.getDateFormat(DisplayType.DateTime); private NumberFormat m_qtyFormat = DisplayType.getNumberFormat(DisplayType.Quantity); + /** + * + * @param gridField + */ public WAssignmentEditor(GridField gridField) { - super(new EditorBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WAssignmentEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new EditorBox(), gridField, tableEditor, editorConfiguration); initComponents(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java index cb7a86828a..94b93a29d6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java @@ -45,9 +45,24 @@ public class WBinaryEditor extends WEditor private ADWindow adwindow; - public WBinaryEditor(GridField gridField) + /** + * + * @param gridField + */ + public WBinaryEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WBinaryEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new Button(), gridField); + super(new Button(), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WButtonEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WButtonEditor.java index 2dc784dcc0..e2fa48113d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WButtonEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WButtonEditor.java @@ -83,13 +83,43 @@ public class WButtonEditor extends WEditor implements IProcessButton private IADTabpanel adTabpanel; + /** + * + * @param gridField + */ public WButtonEditor(GridField gridField) { this(gridField, -1); } + /** + * + * @param gridField + * @param rowIndex + */ public WButtonEditor(GridField gridField, int rowIndex) { - super(new Button(), gridField, rowIndex); + this(gridField, rowIndex, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WButtonEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + this(gridField, -1, tableEditor, editorConfiguration); + } + + /** + * + * @param gridField + * @param rowIndex + * @param tableEditor + * @param editorConfiguration + */ + public WButtonEditor(GridField gridField, int rowIndex, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new Button(), gridField, rowIndex, tableEditor, editorConfiguration); m_text = gridField.getHeader(); AD_Process_ID = gridField.getAD_Process_ID(); gridfield = gridField; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChartEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChartEditor.java index afd9639ea1..c2d2d69703 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChartEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChartEditor.java @@ -53,9 +53,26 @@ public class WChartEditor extends WEditor @SuppressWarnings("unused") private static final CLogger log = CLogger.getCLogger(WChartEditor.class); - public WChartEditor(GridField gridField, int windowNo) + /** + * + * @param gridField + * @param windowNo + */ + public WChartEditor(GridField gridField, int windowNo) + { + this(gridField, windowNo, false, null); + } + + /** + * + * @param gridField + * @param windowNo + * @param tableEditor + * @param editorConfiguration + */ + public WChartEditor(GridField gridField, int windowNo, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new Panel(), gridField); + super(new Panel(), gridField, tableEditor, editorConfiguration); chartModel = new MChart(Env.getCtx(), gridField.getAD_Chart_ID(), null); chartModel.setWindowNo(windowNo); init(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxListEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxListEditor.java index ff2fe712b5..74ddadbef7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxListEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxListEditor.java @@ -71,14 +71,29 @@ public class WChosenboxListEditor extends WEditor implements ContextMenuListener private ListModelList model = new ListModelList<>(); - public WChosenboxListEditor(GridField gridField) + /** + * + * @param gridField + */ + public WChosenboxListEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WChosenboxListEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - this(new ChosenboxEditor(), gridField); + this(new ChosenboxEditor(), gridField, tableEditor, editorConfiguration); } - private WChosenboxListEditor(Component comp, GridField gridField) + private WChosenboxListEditor(Component comp, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(comp, gridField); + super(comp, gridField, tableEditor, editorConfiguration); lookup = gridField.getLookup(); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxSearchEditor.java index f380ec15b4..19a9a6a278 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WChosenboxSearchEditor.java @@ -73,9 +73,24 @@ public class WChosenboxSearchEditor extends WEditor implements ContextMenuListen private static final int MAX_AUTO_COMPLETE_ROWS = 50; private boolean onselecting; + /** + * + * @param gridField + */ public WChosenboxSearchEditor (GridField gridField) { - super(new ChosenSearchBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WChosenboxSearchEditor (GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new ChosenSearchBox(), gridField, tableEditor, editorConfiguration); lookup = gridField.getLookup(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDashboardContentEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDashboardContentEditor.java index cee555b076..ba87797d53 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDashboardContentEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDashboardContentEditor.java @@ -33,11 +33,23 @@ public class WDashboardContentEditor extends WEditor { private final static CLogger logger = CLogger.getCLogger(WDashboardContentEditor.class); /** - * @param comp + * * @param gridField + * @param windowNo */ public WDashboardContentEditor(GridField gridField, int windowNo) { - super(new Panel(), gridField); + this(gridField, windowNo, false, null); + } + + /** + * + * @param gridField + * @param windowNo + * @param tableEditor + * @param editorConfiguration + */ + public WDashboardContentEditor(GridField gridField, int windowNo, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new Panel(), gridField, tableEditor, editorConfiguration); dashboardController = new DashboardController(); content = new MDashboardContent(Env.getCtx(), gridField.getPA_DashboardContent_ID(), null); Panelchildren pc = new Panelchildren(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDateEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDateEditor.java index 406ebfb743..046c097e56 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDateEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDateEditor.java @@ -52,12 +52,23 @@ public class WDateEditor extends WEditor implements ContextMenuListener private Timestamp oldValue = new Timestamp(0); /** - * - * @param gridField - */ + * + * @param gridField + */ public WDateEditor(GridField gridField) { - super(new Datebox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WDateEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new Datebox(), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDatetimeEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDatetimeEditor.java index 4dcb8e22a5..4e32e3d613 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDatetimeEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WDatetimeEditor.java @@ -47,13 +47,22 @@ public class WDatetimeEditor extends WEditor implements ContextMenuListener private Timestamp oldValue = new Timestamp(0); + /** + * + * @param gridField + */ + public WDatetimeEditor(GridField gridField) + { + this(gridField, false, null); + } + /** * * @param gridField */ - public WDatetimeEditor(GridField gridField) + public WDatetimeEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new DatetimeBox(), gridField); + super(new DatetimeBox(), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java index b3a23f0e97..0176399494 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java @@ -94,7 +94,7 @@ public abstract class WEditor implements EventListener, PropertyChangeLis private String description; - private boolean readOnly; + protected boolean readOnly; private String columnName; @@ -154,16 +154,45 @@ public abstract class WEditor implements EventListener, PropertyChangeLis } + /** + * + * @param comp + * @param gridField + */ public WEditor(Component comp, GridField gridField) { this(comp, gridField, -1); } - /** - * + /** + * * @param comp * @param gridField + * @param tableEditor + * @param editorConfiguration */ - public WEditor(Component comp, GridField gridField, int rowIndex) + public WEditor(Component comp, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + this(comp, gridField, -1, tableEditor, editorConfiguration); + } + + /** + * + * @param comp + * @param gridField + * @param rowIndex + */ + public WEditor(Component comp, GridField gridField, int rowIndex) { + this(comp, gridField, rowIndex, false, null); + } + + /** + * + * @param comp + * @param gridField + * @param rowIndex + * @param tableEditor + * @param editorConfiguration + */ + public WEditor(Component comp, GridField gridField, int rowIndex, boolean tableEditor, IEditorConfiguration editorConfiguration) { if (comp == null) { @@ -175,7 +204,7 @@ public abstract class WEditor implements EventListener, PropertyChangeLis throw new IllegalArgumentException("Grid field cannot be null"); } - this.setComponent(comp); + this.setComponent(comp); this.gridField = gridField; if (gridField.getGridTab() != null) { comp.setClientAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, gridField.getGridTab().getTableName()+"0"+gridField.getColumnName()); @@ -183,8 +212,15 @@ public abstract class WEditor implements EventListener, PropertyChangeLis } else { comp.setClientAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, gridField.getColumnName()); } - this.setMandatory(gridField.isMandatory(true)); - this.readOnly = gridField.isReadOnly(); + if (editorConfiguration != null && editorConfiguration.getMandatory() != null) + this.setMandatory(editorConfiguration.getMandatory()); + else + this.setMandatory(gridField.isMandatory(true)); + this.tableEditor = tableEditor; + if (editorConfiguration != null && editorConfiguration.getReadonly() != null) + this.readOnly = editorConfiguration.getReadonly(); + else + this.readOnly = gridField.isReadOnly(); this.description = gridField.getDescription(); this.columnName = gridField.getColumnName(); this.strLabel = gridField.getHeader(); @@ -613,6 +649,8 @@ public abstract class WEditor implements EventListener, PropertyChangeLis } else { label.setStyle(style); } +// if (this instanceof WRadioGroupEditor) +// System.out.println(getComponent().getUuid() + " label stype="+label.getStyle()); } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java index 7184b3b355..7d95739a95 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFileDirectoryEditor.java @@ -39,9 +39,24 @@ public class WFileDirectoryEditor extends WEditor private String oldValue; + /** + * + * @param gridField + */ public WFileDirectoryEditor(GridField gridField) { - super(new FilenameBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WFileDirectoryEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new FilenameBox(), gridField, tableEditor, editorConfiguration); if (ThemeManager.isUseFontIconForImage()) getComponent().getButton().setIconSclass("z-icon-Open"); else diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFilenameEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFilenameEditor.java index bf3325964b..fcfb53ae33 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFilenameEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WFilenameEditor.java @@ -45,9 +45,24 @@ public class WFilenameEditor extends WEditor private String oldValue; + /** + * + * @param gridField + */ public WFilenameEditor(GridField gridField) { - super(new FilenameBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WFilenameEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new FilenameBox(), gridField, tableEditor, editorConfiguration); if (ThemeManager.isUseFontIconForImage()) getComponent().getButton().setIconSclass("z-icon-Open"); else diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WHtmlEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WHtmlEditor.java index acf4f2ec67..c8000067bd 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WHtmlEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WHtmlEditor.java @@ -65,9 +65,24 @@ public class WHtmlEditor extends WEditor implements ContextMenuListener /** Logger */ private static final CLogger log = CLogger.getCLogger(WHtmlEditor.class); - public WHtmlEditor(GridField gridField) + /** + * + * @param gridField + */ + public WHtmlEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WHtmlEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new Div(), gridField); + super(new Div(), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java index 2645b41528..c9ceae914b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java @@ -54,7 +54,22 @@ public class WImageEditor extends WEditor /** Logger */ private static final CLogger log = CLogger.getCLogger(WImageEditor.class); - public WImageEditor(GridField gridField) + /** + * + * @param gridField + */ + public WImageEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WImageEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { super(new Image() { private static final long serialVersionUID = 8492629361709791256L; @@ -70,7 +85,7 @@ public class WImageEditor extends WEditor } } } - }, gridField); + }, gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java index 4d94361ffe..806df057cf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocationEditor.java @@ -81,7 +81,17 @@ public class WLocationEditor extends WEditor implements EventListener, Pr * @param gridField */ public WLocationEditor(GridField gridField) { - super(new Locationbox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WLocationEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new Locationbox(), gridField, tableEditor, editorConfiguration); m_Location = (MLocationLookup)gridField.getLookup(); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java index 8823509da5..709c4e3813 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WLocatorEditor.java @@ -108,10 +108,21 @@ public class WLocatorEditor extends WEditor implements EventListener, Pro } /** + * * @param gridField */ public WLocatorEditor(GridField gridField) { - super(new EditorBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WLocatorEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new EditorBox(), gridField, tableEditor, editorConfiguration); m_mLocator = (MLocatorLookup)gridField.getLookup(); if (ThemeManager.isUseFontIconForImage()) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java index 6a68e7e154..dd8a8cdd0c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java @@ -59,8 +59,6 @@ public class WNumberEditor extends WEditor implements ContextMenuListener private int displayType; - private boolean tableEditor; - private String originalStyle; public WNumberEditor() @@ -74,22 +72,41 @@ public class WNumberEditor extends WEditor implements ContextMenuListener */ public WNumberEditor(GridField gridField) { - this(false, gridField); + this(gridField, false, null); } /** - * + * * @param gridField + * @param tableEditor + * @param editorConfiguration */ - public WNumberEditor(boolean tableEditor, GridField gridField) + public WNumberEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new NumberBox(gridField.getDisplayType() == DisplayType.Integer, tableEditor), - gridField); + super(newNumberBox(gridField, tableEditor, editorConfiguration), + gridField, tableEditor, editorConfiguration); this.displayType = gridField.getDisplayType(); - this.tableEditor = tableEditor; + if (editorConfiguration != null && editorConfiguration instanceof INumberEditorConfiguration) { + INumberEditorConfiguration config = (INumberEditorConfiguration) editorConfiguration; + if (config.getIntegral() != null) { + if (config.getIntegral()) + this.displayType = DisplayType.Integer; + else + this.displayType = DisplayType.Number; + } + } init(); } + protected static NumberBox newNumberBox(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + if (editorConfiguration != null && editorConfiguration instanceof INumberEditorConfiguration) { + INumberEditorConfiguration config = (INumberEditorConfiguration) editorConfiguration; + if (config.getIntegral() != null) + return new NumberBox(config.getIntegral(), tableEditor); + } + return new NumberBox(gridField.getDisplayType() == DisplayType.Integer, tableEditor); + } + /** * * @param gridField @@ -97,9 +114,12 @@ public class WNumberEditor extends WEditor implements ContextMenuListener */ public WNumberEditor(GridField gridField, boolean integral) { - super(new NumberBox(integral), gridField); - this.displayType = integral ? DisplayType.Integer : DisplayType.Number; - init(); + this(gridField, false, new INumberEditorConfiguration() { + @Override + public Boolean getIntegral() { + return Boolean.valueOf(integral); + } + }); } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPAttributeEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPAttributeEditor.java index 319095c56e..c153ce7528 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPAttributeEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPAttributeEditor.java @@ -61,9 +61,26 @@ public class WPAttributeEditor extends WEditor implements ContextMenuListener /** No Instance Key */ private static Integer NO_INSTANCE = Integer.valueOf(0); + /** + * + * @param gridTab + * @param gridField + */ public WPAttributeEditor(GridTab gridTab, GridField gridField) { - super(new PAttributebox(), gridField); + this(gridTab, gridField, false, null); + } + + /** + * + * @param gridTab + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WPAttributeEditor(GridTab gridTab, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new PAttributebox(), gridField, tableEditor, editorConfiguration); m_GridTab = gridTab; initComponents(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPasswordEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPasswordEditor.java index 40ecdfb1fd..a4124ce631 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPasswordEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPasswordEditor.java @@ -27,7 +27,10 @@ import org.compiere.model.GridField; */ public class WPasswordEditor extends WStringEditor { - + /** + * + * @param gridField + */ public WPasswordEditor(GridField gridField) { super(gridField); @@ -35,9 +38,25 @@ public class WPasswordEditor extends WStringEditor setChangeEventWhenEditing (true); } + /** + * + * @param gridField + * @param tableEditor + */ public WPasswordEditor(GridField gridField, boolean tableEditor) { - super(gridField, tableEditor); + this(gridField, tableEditor, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WPasswordEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(gridField, tableEditor, editorConfiguration); super.setTypePassword(true); setChangeEventWhenEditing (false); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPaymentEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPaymentEditor.java index 92f929a264..518d0c4202 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPaymentEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WPaymentEditor.java @@ -58,8 +58,22 @@ public class WPaymentEditor extends WEditor implements ListDataListener, Context private MPaymentLookup lookup; private Object oldValue; + /** + * + * @param gridField + */ public WPaymentEditor(GridField gridField) { - super(new Paymentbox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WPaymentEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new Paymentbox(), gridField, tableEditor, editorConfiguration); lookup = (MPaymentLookup) gridField.getLookup(); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WRadioGroupEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WRadioGroupEditor.java new file mode 100644 index 0000000000..ced94e23e3 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WRadioGroupEditor.java @@ -0,0 +1,616 @@ +/****************************************************************************** + * Project: Trek Global ERP * + * Copyright (C) 2009-2018 Trek Global Corporation * + * * + * Product: Posterita Ajax UI * + * Copyright (C) 2007 Posterita Ltd. All Rights Reserved. * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * Posterita Ltd., 3, Draper Avenue, Quatre Bornes, Mauritius * + * or via info@posterita.org or http://www.posterita.org/ * + *****************************************************************************/ + +package org.adempiere.webui.editor; + +import java.beans.PropertyChangeEvent; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; +import java.util.Properties; + +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; + +import org.adempiere.webui.ValuePreference; +import org.adempiere.webui.event.ContextMenuEvent; +import org.adempiere.webui.event.ContextMenuListener; +import org.adempiere.webui.event.ValueChangeEvent; +import org.adempiere.webui.window.WFieldRecordInfo; +import org.compiere.model.GridField; +import org.compiere.model.GridTable; +import org.compiere.model.Lookup; +import org.compiere.model.MColumn; +import org.compiere.model.MLookup; +import org.compiere.model.MRole; +import org.compiere.model.MTable; +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; +import org.compiere.util.NamePair; +import org.compiere.util.Util; +import org.compiere.util.ValueNamePair; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Hlayout; +import org.zkoss.zul.Radio; +import org.zkoss.zul.Radiogroup; + +/** + * + * @author hengsin + * + */ +public class WRadioGroupEditor extends WEditor implements ContextMenuListener, ListDataListener +{ + public final static String[] LISTENER_EVENTS = {Events.ON_CHECK}; + + @SuppressWarnings("unused") + private static final CLogger logger; + + static + { + logger = CLogger.getCLogger(WRadioGroupEditor.class); + } + + private Lookup lookup; + private Object oldValue; + + private boolean onselecting = false; + + /** + * + * @param gridField + */ + public WRadioGroupEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WRadioGroupEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new RadioGroupEditor(), gridField, tableEditor, editorConfiguration); + lookup = gridField.getLookup(); + init(); + } + + /** + * Constructor for use if a grid field is unavailable + * + * @param lookup Store of selectable data + * @param label column name (not displayed) + * @param description description of component + * @param mandatory whether a selection must be made + * @param readonly whether or not the editor is read only + * @param updateable whether the editor contents can be changed + */ + public WRadioGroupEditor(Lookup lookup, String label, String description, boolean mandatory, boolean readonly, boolean updateable) + { + super(new RadioGroupEditor(), label, description, mandatory, readonly, updateable); + if (lookup == null) + { + throw new IllegalArgumentException("Lookup cannot be null"); + } + + this.lookup = lookup; + super.setColumnName(lookup.getColumnName()); + init(); + } + + /** + * For ease of porting swing form + * @param columnName + * @param mandatory + * @param isReadOnly + * @param isUpdateable + * @param lookup + */ + public WRadioGroupEditor(String columnName, boolean mandatory, boolean isReadOnly, boolean isUpdateable, + Lookup lookup) + { + super(new RadioGroupEditor(), columnName, null, null, mandatory, isReadOnly, isUpdateable); + if (lookup == null) + { + throw new IllegalArgumentException("Lookup cannot be null"); + } + this.lookup = lookup; + init(); + } + + private void init() + { + boolean zoom= false; + if (lookup != null) + { + lookup.addListDataListener(this); + lookup.setMandatory(true); + lookup.setMandatory(isMandatory()); + + if ((lookup.getDisplayType() == DisplayType.List && Env.getContextAsInt(Env.getCtx(), "#AD_Role_ID") == 0) + || lookup.getDisplayType() != DisplayType.List) + { + zoom= true; + } + + //no need to refresh readonly lookup + if (isReadWrite()) + lookup.refresh(); + else + refreshList(); + } + + popupMenu = new WEditorPopupMenu(zoom, true, isShowPreference(), false, false, false, lookup); + addChangeLogMenu(popupMenu); + } + + @Override + public String getDisplay() + { + + String display = ""; + Radio selItem = getComponent().getSelectedItem(); + if (selItem != null) + { + display = selItem.getLabel(); + } + return display; + } + + @Override + public Object getValue() + { + Object retVal = null; + Radio selItem = getComponent().getSelectedItem(); + if (selItem != null) + { + retVal = selItem.getValue(); + if ((retVal instanceof Integer) && (Integer)retVal == -1) + retVal = null; + else if ((retVal instanceof String) && "".equals(retVal)) + retVal = null; + } + return retVal; + } + + public void setValue(Object value) + { + if (onselecting) { + return; + } + + if (value != null && (value instanceof Integer || value instanceof String || value instanceof Timestamp || value instanceof BigDecimal)) + { + + getComponent().setValue(value); + if (!getComponent().isSelected(value)) + { + Object curValue = oldValue; + oldValue = value; + + if (isReadWrite() && lookup != null) + { + lookup.refresh(); + } + else + { + refreshList(); + } + + //still not in list, reset to zero + if (!getComponent().isSelected(value)) + { + if (value instanceof Integer && gridField != null && gridField.getDisplayType() != DisplayType.ID && + (gridTab==null || !gridTab.getTableModel().isImporting())) // for IDs is ok to be out of the list + { + //if it is problem with record lock, just keep value (no trigger change) and set field readonly + MRole role = MRole.getDefault(Env.getCtx(), false); + int refTableID = -1; + if (gridTab != null) // fields process para don't represent a column ID + { + MColumn col = MColumn.get(Env.getCtx(), gridField.getAD_Column_ID()); + if (col.get_ID() > 0) { + String refTable = col.getReferenceTableName(); + if (refTable != null) { + MTable table = MTable.get(Env.getCtx(), refTable); + refTableID = table.getAD_Table_ID(); + } + } + } + if (refTableID > 0 && ! role.isRecordAccess(refTableID, (int)value, false)) + { + oldValue = value; + setReadWrite(false); + gridField.setLockedRecord(true); + } + else + { + getComponent().setValue(null); + if (curValue == null) + curValue = value; + ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), curValue, null); + super.fireValueChange(changeEvent); + oldValue = null; + if (gridField!=null) + gridField.setLockedRecord(false); + } + } + } + } + else + { + oldValue = value; + if (gridField!=null) + gridField.setLockedRecord(false); + } + } + else + { + getComponent().setValue(null); + oldValue = null; + } + } + + @Override + public RadioGroupEditor getComponent() { + return (RadioGroupEditor) component; + } + + @Override + public boolean isReadWrite() { + return getComponent().isEnabled(); + } + + @Override + public void setReadWrite(boolean readWrite) { + getComponent().setEnabled(readWrite); + } + + private void refreshList() + { + if (getComponent().getItemCount() > 0) + getComponent().removeAllItems(); + + if (isReadWrite()) + { + if (lookup != null) + { + lookup.refresh(); + int size = lookup.getSize(); + + boolean found = false; + for (int i = 0; i < size; i++) + { + Object obj = lookup.getElementAt(i); + if (obj instanceof KeyNamePair) + { + KeyNamePair lookupKNPair = (KeyNamePair) obj; + getComponent().appendItem(lookupKNPair.getName(), lookupKNPair.getKey()); + if (!found && oldValue != null && oldValue instanceof Integer && + lookupKNPair.getKey() == (Integer)oldValue) + { + found = true; + } + } + else if (obj instanceof ValueNamePair) + { + ValueNamePair lookupKNPair = (ValueNamePair) obj; + getComponent().appendItem(lookupKNPair.getName(), lookupKNPair.getValue()); + if (!found && oldValue != null && lookupKNPair.getValue().equals(oldValue.toString())) + { + found = true; + } + } + } + if (!found && oldValue != null) + { + NamePair pair = lookup.getDirect(oldValue, false, true); + if (pair != null) { + if (pair instanceof KeyNamePair) { + int key = ((KeyNamePair)pair).getKey(); + getComponent().appendItem(pair.getName(), key); + } else if (pair instanceof ValueNamePair) { + ValueNamePair valueNamePair = (ValueNamePair) pair; + getComponent().appendItem(valueNamePair.getName(), valueNamePair.getValue()); + } + } + } + } + } + else + { + if (lookup != null) + { + String trxName = null; + if ( gridField != null + && gridField.getGridTab() != null + && gridField.getGridTab().getTableModel() != null) { + GridTable gt = gridField.getGridTab().getTableModel(); + if (gt.isImporting()) { + trxName = gt.get_TrxName(); + } + } + NamePair pair = lookup.getDirect(oldValue, false, false, trxName); + if (pair != null) { + if (pair instanceof KeyNamePair) { + int key = ((KeyNamePair)pair).getKey(); + getComponent().appendItem(pair.getName(), key); + } else if (pair instanceof ValueNamePair) { + ValueNamePair valueNamePair = (ValueNamePair) pair; + getComponent().appendItem(valueNamePair.getName(), valueNamePair.getValue()); + } + } + } + } + getComponent().setValue(oldValue); + } + + public void onEvent(Event event) + { + if (Events.ON_CHECK.equalsIgnoreCase(event.getName())) + { + try { + onselecting = true; + Object newValue = getValue(); + if (isValueChange(newValue)) { + try { + if (gridField != null) + gridField.setLookupEditorSettingValue(true); + ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); + super.fireValueChange(changeEvent); + oldValue = newValue; + getComponent().setValue(newValue); + } finally { + if (gridField != null) + gridField.setLookupEditorSettingValue(false); + } + } + } finally { + onselecting = false; + } + } + } + + private boolean isValueChange(Object newValue) { + return (oldValue == null && newValue != null) || (oldValue != null && newValue == null) + || ((oldValue != null && newValue != null) && !oldValue.equals(newValue)); + } + + public String[] getEvents() + { + return LISTENER_EVENTS; + } + + public void actionRefresh() + { + if (lookup != null) + { + Object curValue = getValue(); + + if (isReadWrite()) + { + if (lookup instanceof MLookup) + ((MLookup) lookup).refreshItemsAndCache(); + else + lookup.refresh(); + } + else + refreshList(); + if (curValue != null) + { + setValue(curValue); + } + } + } + + public Lookup getLookup() + { + return lookup; + } + + public void onMenu(ContextMenuEvent evt) + { + if (WEditorPopupMenu.REQUERY_EVENT.equals(evt.getContextEvent())) + { + actionRefresh(); + } + else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent())) + { + if (isShowPreference()) + ValuePreference.start (getComponent(), this.getGridField(), getValue()); + return; + } + else if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent())) + { + WFieldRecordInfo.start(gridField); + } + } + + public void propertyChange(PropertyChangeEvent evt) + { + if ("FieldValue".equals(evt.getPropertyName())) + { + setValue(evt.getNewValue()); + } + } + + @Override + public void dynamicDisplay(Properties ctx) + { + if (oldValue != null && getComponent().getItemCount() > 0 && getComponent().getSelectedItem() == null) + { + getComponent().setValue(oldValue); + } + + if (lookup instanceof MLookup) + { + ((MLookup) lookup).getLookupInfo().ctx = ctx; + } + if ((lookup != null) && (!lookup.isValidated() || !lookup.isLoaded() + || (isReadWrite() && lookup.getSize() != getComponent().getItemCount()))) + this.actionRefresh(); + + super.dynamicDisplay(ctx); + } + + private static class RadioGroupEditor extends Hlayout { + /** + * generated serial id + */ + private static final long serialVersionUID = -8814498538711459900L; + private Radiogroup radioGroup; + private boolean enabled; + + private RadioGroupEditor() { + newRadioGroup(); + appendChild(radioGroup); + enabled = true; + setSpacing("0"); + setStyle("white-space: normal"); + } + + private void newRadioGroup() { + radioGroup = new Radiogroup(); + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean readWrite) { + enabled = readWrite; + List items = radioGroup.getItems(); + for (Radio radio : items) { + radio.setDisabled(!readWrite); + } + } + + public boolean isSelected(Object value) { + Radio radio = getSelectedItem(); + if (radio != null && radio.getValue() != null && value != null) { + return radio.getValue().equals(value); + } + return false; + } + + public Radio getSelectedItem() { + return radioGroup.getSelectedItem(); + } + + public void setSelectedItem(Radio item) { + if (item != null && item.isSelected()) + item.setSelected(false); + radioGroup.setSelectedItem(item); + } + + public void removeAllItems() { + List items = radioGroup.getItems(); + for (Radio radio : items) { + radio.detach(); + } + } + + public void setValue(Object newValue) { + boolean found = false; + if (newValue != null) { + List items = radioGroup.getItems(); + for (Radio radio : items) { + if (radio.getValue() != null && radio.getValue().equals(newValue)) { + setSelectedItem(radio); + found = true; + break; + } + } + } + if (!found) + setSelectedItem(null); + } + + public int getItemCount() { + return radioGroup.getItemCount(); + } + + public void appendItem(String name, String value) { + if (Util.isEmpty(name)) + return; + Radio radio = newRadio(name, value); + radioGroup.appendChild(radio); + } + + protected Radio newRadio(String name, Object value) { + Radio radio = new Radio(name); + radio.setValue(value); + radio.setDisabled(!enabled); + radio.setStyle("padding-right:1em"); + return radio; + } + + public void appendItem(String name, int key) { + if (Util.isEmpty(name)) + return; + Radio radio = newRadio(name, key); + radioGroup.appendChild(radio); + } + + @Override + public boolean addEventListener(String evtnm, EventListener listener) { + if (Events.ON_CHECK.equals(evtnm)) + return radioGroup.addEventListener(evtnm, listener); + else + return super.addEventListener(evtnm, listener); + } + + @Override + public boolean addEventListener(int priority, String evtnm, EventListener listener) { + if (Events.ON_CHECK.equals(evtnm)) + return radioGroup.addEventListener(priority, evtnm, listener); + else + return super.addEventListener(priority, evtnm, listener); + } + + @Override + public boolean removeEventListener(String evtnm, EventListener listener) { + if (Events.ON_CHECK.equals(evtnm)) + return radioGroup.removeEventListener(evtnm, listener); + else + return super.removeEventListener(evtnm, listener); + } + } + + @Override + public void intervalAdded(ListDataEvent e) { + } + + @Override + public void intervalRemoved(ListDataEvent e) { + } + + @Override + public void contentsChanged(ListDataEvent e) { + refreshList(); + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java index 013cf946d0..d388bb59a0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java @@ -96,9 +96,24 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value private ADWindow adwindow; + /** + * + * @param gridField + */ public WSearchEditor (GridField gridField) { - super(new CustomSearchBox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WSearchEditor (GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new CustomSearchBox(), gridField, tableEditor, editorConfiguration); lookup = gridField.getLookup(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WStringEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WStringEditor.java index 9f529040a6..842aa3def4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WStringEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WStringEditor.java @@ -52,8 +52,6 @@ public class WStringEditor extends WEditor implements ContextMenuListener private String oldValue; - private boolean tableEditor = false; - private AbstractADWindowContent adwindowContent; /** @@ -64,14 +62,33 @@ public class WStringEditor extends WEditor implements ContextMenuListener this("String", false, false, true, 30, 30, "", null); } + /** + * + * @param gridField + */ public WStringEditor(GridField gridField) { this(gridField, false); } + /** + * + * @param gridField + * @param tableEditor + */ public WStringEditor(GridField gridField, boolean tableEditor) { - super(gridField.isAutocomplete() ? new Combobox() : new Textbox(), gridField); - this.tableEditor = tableEditor; + this(gridField, tableEditor, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WStringEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(gridField.isAutocomplete() ? new Combobox() : new Textbox(), gridField, tableEditor, editorConfiguration); if (gridField.getVFormat() != null && !gridField.getVFormat().isEmpty()) getComponent().setWidgetListener("onBind", "jq(this).mask('" + gridField.getVFormat() + "');"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java index 81162789c4..92f563ac2d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java @@ -103,14 +103,24 @@ ContextMenuListener, IZoomableEditor private boolean onselecting = false; - public WTableDirEditor(GridField gridField) + /** + * + * @param gridField + */ + public WTableDirEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WTableDirEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - this(gridField.isAutocomplete() ? new EditorAutoComplete() : new EditorCombobox(), gridField); - } - - private WTableDirEditor(Component comp, GridField gridField) - { - super(comp, gridField); + super(gridField.isAutocomplete() ? new EditorAutoComplete() : new EditorCombobox(), gridField, tableEditor, editorConfiguration); ((ITableDirEditor)getComponent()).setEditor(this); lookup = gridField.getLookup(); init(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTimeEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTimeEditor.java index 6f7780e760..90ba1caf67 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTimeEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTimeEditor.java @@ -45,12 +45,23 @@ public class WTimeEditor extends WEditor implements ContextMenuListener private Timestamp oldValue = new Timestamp(0); /** - * + * + * @param gridField + */ + public WTimeEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * * @param gridField + * @param tableEditor + * @param editorConfiguration */ - public WTimeEditor(GridField gridField) + public WTimeEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(new Timebox(), gridField); + super(new Timebox(), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUnknownEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUnknownEditor.java index e6ef912f77..106599db31 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUnknownEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUnknownEditor.java @@ -27,9 +27,24 @@ import org.compiere.model.GridField; */ public class WUnknownEditor extends WStringEditor { - public WUnknownEditor(GridField gridField) + /** + * + * @param gridField + */ + public WUnknownEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WUnknownEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(gridField); + super(gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUrlEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUrlEditor.java index 1079bf99e1..4a89dc88a8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUrlEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WUrlEditor.java @@ -33,9 +33,24 @@ public class WUrlEditor extends WEditor implements ContextMenuListener private static final String[] LISTENER_EVENTS = {Events.ON_CHANGE, Events.ON_OK}; private String oldValue; + /** + * + * @param gridField + */ public WUrlEditor(GridField gridField) { - super(new Urlbox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WUrlEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new Urlbox(), gridField, tableEditor, editorConfiguration); if (ThemeManager.isUseFontIconForImage()) getComponent().getButton().setIconSclass("z-icon-Online"); else diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WYesNoEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WYesNoEditor.java index ad135b7ab8..d8d9a04a78 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WYesNoEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WYesNoEditor.java @@ -51,12 +51,36 @@ public class WYesNoEditor extends WEditor implements ContextMenuListener private boolean oldValue = false; + /** + * + * @param gridField + */ public WYesNoEditor(GridField gridField) { - super(new Checkbox(), gridField); + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WYesNoEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + super(new Checkbox(), gridField, tableEditor, editorConfiguration); init(); } + /** + * + * @param columnName + * @param label + * @param description + * @param mandatory + * @param readonly + * @param updateable + */ public WYesNoEditor(String columnName, String label, String description, boolean mandatory, boolean readonly, boolean updateable) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java index 9006eb8d48..9baa93b10e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WebEditorFactory.java @@ -47,7 +47,19 @@ public class WebEditorFactory */ public static WEditor getEditor(GridField gridField, boolean tableEditor) { - return getEditor(gridField.getGridTab(), gridField, tableEditor); + return getEditor(gridField, tableEditor, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + * @return {@link WEditor} + */ + public static WEditor getEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) + { + return getEditor(gridField.getGridTab(), gridField, tableEditor, editorConfiguration); } private static final CCache> s_editorFactoryCache = new CCache<>(null, "IEditorFactory", 10, false); @@ -57,9 +69,22 @@ public class WebEditorFactory * @param gridTab * @param gridField * @param tableEditor - * @return WEditor for GridField + * @return {@link WEditor} */ public static WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor) + { + return getEditor(gridTab, gridField, tableEditor, null); + } + + /** + * + * @param gridTab + * @param gridField + * @param tableEditor + * @param editorConfiguration + * @return {@link WEditor} + */ + public static WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { List visitedIds = new ArrayList(); if (!s_editorFactoryCache.isEmpty()) { @@ -70,7 +95,7 @@ public class WebEditorFactory IEditorFactory service = serviceReference.getService(); if (service != null) { visitedIds.add(key); - WEditor editor = service.getEditor(gridTab, gridField, tableEditor); + WEditor editor = service.getEditor(gridTab, gridField, tableEditor, editorConfiguration); if (editor != null) return editor; } else { @@ -79,6 +104,7 @@ public class WebEditorFactory } } } + WEditor editor = null; List> serviceReferences = Service.locator().list(IEditorFactory.class).getServiceReferences(); for(IServiceReferenceHolder serviceReference : serviceReferences) @@ -90,7 +116,7 @@ public class WebEditorFactory if (service != null) { s_editorFactoryCache.put(serviceId, serviceReference); - editor = service.getEditor(gridTab, gridField, tableEditor); + editor = service.getEditor(gridTab, gridField, tableEditor, editorConfiguration); if (editor != null) break; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabMultiSelectionEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabMultiSelectionEditor.java index 1e046fab09..2fad63deae 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabMultiSelectionEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabMultiSelectionEditor.java @@ -21,6 +21,7 @@ import java.util.Set; import org.adempiere.webui.ValuePreference; import org.adempiere.webui.component.Listbox; import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.editor.WEditorPopupMenu; import org.adempiere.webui.event.ContextMenuEvent; @@ -52,22 +53,38 @@ public class WGridTabMultiSelectionEditor extends WEditor implements ContextMenu private Object oldValue; - private boolean tableEditor = false; - private GridTab listViewGridTab = null; private String currentLinkValue = null; private boolean readWrite; + /** + * + * @param gridField + */ public WGridTabMultiSelectionEditor(GridField gridField) { this(gridField, false); } - public WGridTabMultiSelectionEditor(GridField gridField, boolean tableEditor) + /** + * + * @param gridField + * @param tableEditor + */ + public WGridTabMultiSelectionEditor(GridField gridField, boolean tableEditor) { + this(gridField, tableEditor, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WGridTabMultiSelectionEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(tableEditor ? new Textbox() : new GridTabSelectionListView(true, gridField.getWindowNo()), gridField); - this.tableEditor = tableEditor; + super(tableEditor ? new Textbox() : new GridTabSelectionListView(true, gridField.getWindowNo()), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabSingleSelectionEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabSingleSelectionEditor.java index 2bd50a9c66..6cf1507624 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabSingleSelectionEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/grid/selection/WGridTabSingleSelectionEditor.java @@ -16,6 +16,7 @@ package org.adempiere.webui.editor.grid.selection; import org.adempiere.webui.ValuePreference; import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.editor.WEditorPopupMenu; import org.adempiere.webui.event.ContextMenuEvent; @@ -45,22 +46,38 @@ public class WGridTabSingleSelectionEditor extends WEditor implements ContextMen private Object oldValue; - private boolean tableEditor = false; - private GridTab listViewGridTab = null; private String currentLinkValue = null; private boolean readWrite; + /** + * + * @param gridField + */ public WGridTabSingleSelectionEditor(GridField gridField) { this(gridField, false); } - public WGridTabSingleSelectionEditor(GridField gridField, boolean tableEditor) + /** + * + * @param gridField + * @param tableEditor + */ + public WGridTabSingleSelectionEditor(GridField gridField, boolean tableEditor) { + this(gridField, tableEditor, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public WGridTabSingleSelectionEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - super(tableEditor ? new Textbox() : new GridTabSelectionListView(false, gridField.getWindowNo()), gridField); - this.tableEditor = tableEditor; + super(tableEditor ? new Textbox() : new GridTabSelectionListView(false, gridField.getWindowNo()), gridField, tableEditor, editorConfiguration); init(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java index b1c6b1c8c7..7ba8f43594 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java @@ -13,6 +13,7 @@ *****************************************************************************/ package org.adempiere.webui.factory; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WAccountEditor; import org.adempiere.webui.editor.WAssignmentEditor; import org.adempiere.webui.editor.WBinaryEditor; @@ -34,6 +35,7 @@ import org.adempiere.webui.editor.WNumberEditor; import org.adempiere.webui.editor.WPAttributeEditor; import org.adempiere.webui.editor.WPasswordEditor; import org.adempiere.webui.editor.WPaymentEditor; +import org.adempiere.webui.editor.WRadioGroupEditor; import org.adempiere.webui.editor.WSearchEditor; import org.adempiere.webui.editor.WStringEditor; import org.adempiere.webui.editor.WTableDirEditor; @@ -57,6 +59,12 @@ public class DefaultEditorFactory implements IEditorFactory { @Override public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor) { + return getEditor(gridTab, gridField, tableEditor, null); + } + + @Override + public WEditor getEditor(GridTab gridTab, GridField gridField, + boolean tableEditor, IEditorConfiguration editorConfiguration) { if (gridField == null) { return null; @@ -78,14 +86,14 @@ public class DefaultEditorFactory implements IEditorFactory { { if (gridField.isEncryptedField()) { - editor = new WPasswordEditor(gridField, tableEditor); + editor = new WPasswordEditor(gridField, tableEditor, editorConfiguration); } else { if (gridField.isHtml()) - editor = new WHtmlEditor(gridField); + editor = new WHtmlEditor(gridField, tableEditor, editorConfiguration); else - editor = new WStringEditor(gridField, tableEditor); + editor = new WStringEditor(gridField, tableEditor, editorConfiguration); } //enable html5 color input type if (displayType == DisplayType.Color) @@ -94,23 +102,23 @@ public class DefaultEditorFactory implements IEditorFactory { /** File */ else if (displayType == DisplayType.FileName) { - editor = new WFilenameEditor(gridField); + editor = new WFilenameEditor(gridField, tableEditor, editorConfiguration); } /** File Path */ else if (displayType == DisplayType.FilePath) { - editor = new WFileDirectoryEditor(gridField); + editor = new WFileDirectoryEditor(gridField, tableEditor, editorConfiguration); } /** Number */ else if (DisplayType.isNumeric(displayType)) { - editor = new WNumberEditor(tableEditor, gridField); + editor = new WNumberEditor(gridField, tableEditor, editorConfiguration); } /** YesNo */ else if (displayType == DisplayType.YesNo) { - editor = new WYesNoEditor(gridField); + editor = new WYesNoEditor(gridField, tableEditor, editorConfiguration); if (tableEditor) ((WYesNoEditor)editor).getComponent().setLabel(""); } @@ -119,113 +127,115 @@ public class DefaultEditorFactory implements IEditorFactory { else if (displayType == DisplayType.Text || displayType == DisplayType.Memo || displayType == DisplayType.TextLong || displayType == DisplayType.ID) { if (gridField.isHtml()) - editor = new WHtmlEditor(gridField); + editor = new WHtmlEditor(gridField, tableEditor, editorConfiguration); else - editor = new WStringEditor(gridField, tableEditor); + editor = new WStringEditor(gridField, tableEditor, editorConfiguration); } /** Date */ else if (DisplayType.isDate(displayType)) { if (displayType == DisplayType.Time) - editor = new WTimeEditor(gridField); + editor = new WTimeEditor(gridField, tableEditor, editorConfiguration); else if (displayType == DisplayType.DateTime) - editor = new WDatetimeEditor(gridField); + editor = new WDatetimeEditor(gridField, tableEditor, editorConfiguration); else - editor = new WDateEditor(gridField); + editor = new WDateEditor(gridField, tableEditor, editorConfiguration); } /** Chart */ else if(displayType == DisplayType.Chart) { - editor = new WChartEditor(gridField, (gridTab == null ? 0 : gridTab.getWindowNo())); + editor = new WChartEditor(gridField, (gridTab == null ? 0 : gridTab.getWindowNo()), tableEditor, editorConfiguration); } /** Dashboard Content */ else if(displayType == DisplayType.DashboardContent) { - editor = new WDashboardContentEditor(gridField, (gridTab == null ? 0 : gridTab.getWindowNo())); + editor = new WDashboardContentEditor(gridField, (gridTab == null ? 0 : gridTab.getWindowNo()), tableEditor, editorConfiguration); } /** Button */ else if (displayType == DisplayType.Button) { - editor = new WButtonEditor(gridField); + editor = new WButtonEditor(gridField, tableEditor, editorConfiguration); } /** Table Direct */ else if (displayType == DisplayType.TableDir || displayType == DisplayType.Table || displayType == DisplayType.List) { - editor = new WTableDirEditor(gridField); + editor = new WTableDirEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Payment) { - editor = new WPaymentEditor(gridField); + editor = new WPaymentEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.URL) { - editor = new WUrlEditor(gridField); + editor = new WUrlEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Search) { - editor = new WSearchEditor(gridField); + editor = new WSearchEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Location) { - editor = new WLocationEditor(gridField); + editor = new WLocationEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Locator) { - editor = new WLocatorEditor(gridField); + editor = new WLocatorEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Account) { - editor = new WAccountEditor(gridField); + editor = new WAccountEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Image) { - editor = new WImageEditor(gridField); + editor = new WImageEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Binary) { - editor = new WBinaryEditor(gridField); + editor = new WBinaryEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.PAttribute) { - editor = new WPAttributeEditor(gridTab, gridField); + editor = new WPAttributeEditor(gridTab, gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.Assignment) { - editor = new WAssignmentEditor(gridField); + editor = new WAssignmentEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.SingleSelectionGrid) { - editor = new WGridTabSingleSelectionEditor(gridField, tableEditor); + editor = new WGridTabSingleSelectionEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.MultipleSelectionGrid) { - editor = new WGridTabMultiSelectionEditor(gridField, tableEditor); + editor = new WGridTabMultiSelectionEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.ChosenMultipleSelectionList || displayType == DisplayType.ChosenMultipleSelectionTable) { - editor = new WChosenboxListEditor(gridField); + editor = new WChosenboxListEditor(gridField, tableEditor, editorConfiguration); } else if (displayType == DisplayType.ChosenMultipleSelectionSearch) { - editor = new WChosenboxSearchEditor(gridField); + editor = new WChosenboxSearchEditor(gridField, tableEditor, editorConfiguration); + } + else if (displayType == DisplayType.RadiogroupList) + { + editor = new WRadioGroupEditor(gridField, tableEditor, editorConfiguration); } else { - editor = new WUnknownEditor(gridField); + editor = new WUnknownEditor(gridField, tableEditor, editorConfiguration); } - editor.setTableEditor(tableEditor); - return editor; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IEditorFactory.java index 098fdd29b4..9b66d8f909 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IEditorFactory.java @@ -13,6 +13,7 @@ *****************************************************************************/ package org.adempiere.webui.factory; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WEditor; import org.compiere.model.GridField; import org.compiere.model.GridTab; @@ -28,7 +29,17 @@ public interface IEditorFactory { * @param gridTab * @param gridField * @param tableEditor - * @return WEditor + * @return {@link WEditor} */ public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor); + + /** + * + * @param gridTab + * @param gridField + * @param tableEditor + * @param editorConfiguration + * @return {@link WEditor} + */ + public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditor.java index b10c6d6484..9268d61d52 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditor.java @@ -29,6 +29,7 @@ import org.adempiere.base.Core; import org.adempiere.util.Callback; import org.adempiere.webui.adwindow.ADWindow; import org.adempiere.webui.component.Button; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.window.FDialog; import org.compiere.model.GridField; @@ -57,13 +58,45 @@ public class SchedulerStateEditor extends WEditor { private int schedulerState; + /** + * + * @param gridField + */ public SchedulerStateEditor(GridField gridField) + { + this(gridField, false, null); + } + + /** + * + * @param gridField + * @param tableEditor + * @param editorConfiguration + */ + public SchedulerStateEditor(GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - this(gridField, -1); + this(gridField, -1, tableEditor, editorConfiguration); } - public SchedulerStateEditor(GridField gridField, int rowIndex) { - super(new Button(), gridField, rowIndex); + /** + * + * @param gridField + * @param rowIndex + */ + public SchedulerStateEditor(GridField gridField, int rowIndex) + { + this(gridField, rowIndex, false, null); + } + + /** + * + * @param gridField + * @param rowIndex + * @param tableEditor + * @param editorConfiguration + */ + public SchedulerStateEditor(GridField gridField, int rowIndex, boolean tableEditor, IEditorConfiguration editorConfiguration) { + super(new Button(), gridField, rowIndex, tableEditor, editorConfiguration); Button btn = getComponent(); btn.addEventListener(ON_START_SCHEDULER_EVENT, evt -> { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java index 0c05419d8c..9e1c6b6584 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java @@ -25,6 +25,7 @@ **********************************************************************/ package org.adempiere.webui.scheduler; +import org.adempiere.webui.editor.IEditorConfiguration; import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.factory.IEditorFactory; import org.compiere.model.GridField; @@ -49,8 +50,14 @@ public class SchedulerStateEditorFactory implements IEditorFactory { @Override public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor) { + return getEditor(gridTab, gridField, tableEditor, null); + } + + @Override + public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor, + IEditorConfiguration editorConfiguration) { if (gridField != null && gridField.getDisplayType() == SCHEDULER_STATE_AD_REFERENCE_ID) { - return new SchedulerStateEditor(gridField); + return new SchedulerStateEditor(gridField, tableEditor, editorConfiguration); } return null; }