Compare commits

..

63 Commits

Author SHA1 Message Date
sponomarova
4ab77c2d84 feat(TBD-13632): Dataproc GA (#5104) (#5247) 2022-04-20 12:44:41 +03:00
Zhiwei Xue
ff2f9fd884 fix(TUP-35302):Maven URI isn't updated if install R2022-03v2 first then (#5233)
install R2022-04
2022-04-18 14:23:41 +08:00
Laurent BOURGEOIS
b5df336d2f feat(TBD-13522):CDE - GA (#5161) (#5224) 2022-04-15 17:49:41 +02:00
zyuan-talend
ef2db192d1 fix(TUP-35195): Deploy studio index to oss. (#5216) 2022-04-15 14:24:32 +08:00
Jane Ding
6acab4ee3f feat(TUP-35069):Upgrade Redshift driver to v2.x (#5192)
* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069
fix(TUP-35236):[bug] Addition parameter table layout issue

* feat(TUP-35069):Upgrade Redshift driver to v2.x
https://jira.talendforge.org/browse/TUP-35069
fix(TUP-35249):[bug]Use string parameter and Addition parameter table
showed when switch to other DB type
2022-04-14 17:45:08 +08:00
sponomarova
b68673389c feat(TBD-13328): Synapse service principal (#5204) 2022-04-14 12:21:21 +03:00
yyin
06aea8f475 Feat TDQ-20141 add param algoversion (#5212) 2022-04-14 16:05:36 +08:00
Chao MENG
c41901deea Cmeng/feat/tup 31734 test branch 8 (#5169)
* feat(TUP-31734): Prompt users to Test patches when migrating projects
https://jira.talendforge.org/browse/TUP-31734
2022-04-14 14:43:50 +08:00
hzhao-talendbj
0a926f8c03 feat(TDI-46111): update url (#5209) 2022-04-13 16:30:54 +08:00
Emmanuel GALLOIS
53f53ace47 feat(TDI-47693): bump component-runtime to 1.43.1 (#5141)
* feat(TDI-47693): bump component-runtime to 1.43.0
* fix(TDI-47693): component-runtime 1.43.1
- fix misaligned openwebbeans-spi dependency
2022-04-13 09:13:32 +02:00
hzhao-talendbj
ad29b74b2a feat(TUP-34929): Support for MSSQL Database 2019 (#5163)
* feat(TUP-34929): Support for MSSQL Database 2019

* feat(TUP-34929): Support for MSSQL Database 2019

* feat(TUP-34929): add dependency log4j

* feat(TUP-34929): Support for MSSQL Database 2019
2022-04-13 11:25:45 +08:00
jiezhang-tlnd
56ae308496 add new line break (#5206) 2022-04-12 17:35:22 +08:00
bhe-talendbj
c3b356d954 feat(TUP-34987): Identify Jobs having CVEs remediated improvement. (#5159)
* feat(TUP-34987): add cache

* feat(TUP-34987): refactor

* feat(TUP-34987): add cache
2022-04-12 16:51:48 +08:00
jiezhang-tlnd
5eaf89d87e fix(TUP-35153)remove old log4j from plugin (#5198) 2022-04-08 16:12:41 +08:00
hcyi
b2f0466ce3 feat(TUP-34849):Support retrieve SAP ADSOs metadata for provisioning. (#5155) 2022-04-08 10:52:44 +08:00
hzhao-talendbj
6f07c4da98 feat(TUP-34896): support teradata jdbc version 17 (#5168)
* feat(TUP-34896): support teradata jdbc version 17

* feat(TUP-34896): support teradata jdbc version 17
2022-04-07 15:25:25 +08:00
zyuan-talend
80a1ccd382 fix(TUP-35011):Improve Studio index build for monthly. (#5160) 2022-04-07 14:49:48 +08:00
qiongli
27dfb6a195 fix(TDQ-20222):Move backward 'handelDQComponents()' to avoid reset (#5164) 2022-04-06 16:14:33 +08:00
sbliu
330e31abb6 Add localized files (#5177) (#5185)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
2022-04-01 16:12:55 +08:00
jiezhang-tlnd
8763339c06 remove bundle type (#5184) 2022-04-01 15:35:49 +08:00
wang wei
e6946750e0 fix(TDI-47633): CVE: Replace log4j1.x by reload4j or upgrade to log4j2 (#5146) 2022-04-01 14:32:31 +08:00
jiezhang-tlnd
e914973534 fix(TUP-34954)CVE: Replace log4j1.x by reload4j (#5142)
* fix(TUP-34954)CVE: Replace log4j1.x by reload4j

* fix(TUP-34954)CVE: Replace log4j1.x by reload4j

* update driver version

* exclude log4j from slf4j-log4j12

* update maven-repository
2022-04-01 14:14:22 +08:00
Zhiwei Xue
668987a61b fix(TUP-35133):Run a job with subjob failed after applied a patch with (#5167)
new version of CI-Builder
2022-03-30 17:40:30 +08:00
Chao MENG
0accf530d1 fix(TUP-35034): CI - stop the build if custom component is missing (#5151)
* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034

* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034
2022-03-30 16:09:50 +08:00
Oleksandr Zhelezniak
44341a7f9b fix(TDI-47651): bump Redshift driver to 1.2.55.1083 (#5154) 2022-03-25 11:46:31 +02:00
sbliu
ff46e1bab5 Add localized files (#5157) (#5158)
Co-authored-by: jzhangbj <jzhang@talend.com>
2022-03-25 16:02:47 +08:00
sbliu
46b4b3a8db Add localized files (#5149)
* Add localized files (#5147)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#5148)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
2022-03-24 17:33:27 +08:00
jiezhang-tlnd
eb9690239d chore(TUP-34977)Help links in Studio (#5132) 2022-03-21 14:49:43 +08:00
sbliu
7bbef8f4b2 Add localized files (#5138)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jzhangbj <jzhang@talend.com>
2022-03-18 11:38:42 +08:00
kjwang
df8f2bee44 Fix TUP-34930 Talend Studio 7.3 font color issues (#5101)
Fix TUP-34930 Talend Studio 7.3 font color issues
https://jira.talendforge.org/browse/TUP-34930
2022-03-17 10:30:12 +08:00
jiezhang-tlnd
ec8bf846c8 add parameter datacenter (#5118) 2022-03-14 15:09:46 +08:00
bhe-talendbj
61a97e6f00 fix(TUP-33810): fix test case (#5126) 2022-03-14 14:56:31 +08:00
sbliu
09cc2ab88d Add localized files (#5116)
* Add localized files (#5105)
* Add localized files (#5113)
* Add localized files (#5114)
* Add localized files (#5115)
2022-03-11 18:30:11 +08:00
hzhao-talendbj
8abfa5691b chore(TUP-34729): change code simply to trigger plugin updated (#5123) 2022-03-11 15:43:36 +08:00
hzhao-talendbj
5d90e3ddf9 chore(TUP-34729): change order simply to trigger plugin updated (#5119)
* chore(TUP-34729): change order simply to trigger plugin updated

* chore(TUP-34729): change order simply to trigger plugin updated

* chore(TUP-34729): change order simply to trigger plugin updated

* chore(TUP-34729): change code simply to trigger plugin updated
2022-03-11 15:41:10 +08:00
chmyga
51e101a2d6 feat(TDI-46441): update mapping (#4646)
Co-authored-by: Dmytro Chmyga <dmytro.chmyga@globallogic.com>
Co-authored-by: Dmytro Sylaiev <dmytro.sylaiev@globallogic.com>
2022-03-10 19:08:20 +08:00
msjian
e501f74225 fix(TDQ-19889): fix reload database functions for context prompt (#5112)
connection
2022-03-10 17:07:37 +08:00
Emmanuel GALLOIS
bbe564d285 feat(TDI-47609): bump component-runtime to 1.42.0 (#5088) 2022-03-10 08:44:21 +01:00
Liu Xinquan
ca6dd0414d fix(TDQ-20069) new component DQ rules Part 2 for GA (DI standard job) (#5109) 2022-03-10 11:28:24 +08:00
msjian
7c81cea780 feat(TDQ-19889):support analysis when using file connection prompt context (#5094) 2022-03-10 10:05:02 +08:00
Jane Ding
c4196919f7 fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#5077)
not work as tExasolOutput
https://jira.talendforge.org/browse/TUP-28898
2022-03-09 16:03:37 +08:00
hcyi
fccaad16b0 fix(TUP-34427):Resource:"The system cannot find the path specified" (#5100)
error shows if build job first then run job and job calls child job
which using resource.
2022-03-09 14:44:41 +08:00
Jane Ding
78295beef0 feat(TUP-33990):Pendo tracking for Studio integrations with API Designer (#5059)
* feat(TUP-33990):Pendo tracking for Studio integrations with API Designer
& API Tester
https://jira.talendforge.org/browse/TUP-33990

* feat(TUP-33990):Pendo tracking for Studio integrations with API Designer
& API Tester
https://jira.talendforge.org/browse/TUP-33990

* feat(TUP-33990):Pendo tracking for Studio integrations with API Designer
& API Tester
https://jira.talendforge.org/browse/TUP-33990

* fix(TUP-34791):Add project reference to Project Login Pendo tracking
https://jira.talendforge.org/browse/TUP-34791

* fix(TUP-34791):Add project reference to Project Login Pendo tracking
https://jira.talendforge.org/browse/TUP-34791

* fix(TUP-34791):Add project reference to Project Login Pendo tracking
https://jira.talendforge.org/browse/TUP-34791
2022-03-09 14:42:54 +08:00
wang wei
ce8da37a4a fix(TDI-47154): send exception info for audit log (#5103) 2022-03-08 22:02:14 +08:00
bhe-talendbj
7e29ffef3b feat(TUP-33809): Studio commandline: DetectCVE to Get list of jobs impacted by CVE jars (#5022)
* feat(TUP-33809): add detect cve service interface

* feat(TUP-33809): merge cveitem from different distributions

* feat(TUP-33809): add project name to report

* feat(TUP-33809): add columns to report header

* feat(TUP-33809): update report columns

* feat(TUP-33809): update report and cve index column names

* feat(TUP-33809): update usedbyTalend

* feat(TUP-33809): add getproductdate and test case

* feat(TUP-33809): fix test case

* feat(TUP-33809): revert from version changes

* feat(TUP-33809): by default not include fixed is false

* feat(TUP-33809): by default include not fixed is false

* feat(TUP-33809): add cvss colum for report

* feat(TUP-33809): update column name

* feat(TUP-33809): add clone of object
2022-03-08 10:43:54 +08:00
zshen-talend
9a72cf74ae Zshen/feat/tdq 20069 backport on 80 for patch3 (#5095) 2022-03-07 17:24:10 +08:00
Zhiwei Xue
9b02401b3f workitem(TUP-34590):improve performance of import items for tuj (#5087) 2022-03-04 16:26:58 +08:00
jiezhang-tlnd
de0005397b fix(TUP-34772)com.h2database:h2:2.0.206 (#5045) 2022-03-04 14:09:04 +08:00
jiezhang-tlnd
1b99ea876d Backport localized files 0303 (#5084)
* Add localized files (#5064)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#5065)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#5082)

Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: jiezhang-tlnd <40561780+jiezhang-tlnd@users.noreply.github.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2022-03-04 08:43:52 +08:00
kjwang
1cf24c225c Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#5078)
Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a black box in Talend Studio designer tab
https://jira.talendforge.org/browse/TUP-32950
2022-03-02 17:27:44 +08:00
Hongchun Yi
340f3e3029 fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-03-02 12:10:07 +08:00
AlixMetivier
b625946c87 fix(TBD-13493): Hive connection failed in Talend 8 with CDH 7.1.6 (#5058)
https://jira.talendforge.org/browse/TBD-13493

Co-authored-by: Chao MENG <cmeng@talend.com>
2022-03-01 16:52:54 +01:00
msjian
1944bc03fe feat(TDQ-19889): Enabling the prompt context for profiling (#4991) (#5055) 2022-02-28 12:22:27 +08:00
hcyi
f8ae64d1a6 fix(TUP-34593):Cannot connect to Salesforce with password starting with (#5068)
double-quotes
2022-02-25 17:51:57 +08:00
hzhao-talendbj
ca2ebecc4e chore(TUP-34729): remove jar which is not used by osgi or point to any (#5039)
component
2022-02-25 17:41:17 +08:00
Jill Yan
3e276b2faa Revert "APPINT-34310 remove lib folder for MS zip (#5052)" (#5071)
This reverts commit b8d9189565.
2022-02-25 15:40:50 +08:00
sbliu
5ed90797f0 fix(TUP-34769) Error fields for Rejects get dropped from tSalesforceOutput after Sync Columns. (#5061)
fix bug TUP-33497
2022-02-23 18:01:51 +08:00
Jill Yan
b8d9189565 APPINT-34310 remove lib folder for MS zip (#5052)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-02-22 14:42:25 +08:00
Xilai Dai
9c80461254 (APPINT-33481) fix the missing jetty-all when cHttp as server for MS (#5003) 2022-02-22 10:10:05 +08:00
Jane Ding
b301fec008 Revert "fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#4867)" (#5050)
This reverts commit 21aed909e7.
2022-02-18 17:17:37 +08:00
ypiel
f369769f4d fix(TDI-47477): Fix ParserUtils for tExtractPositionalFields 2022-02-18 10:15:52 +01:00
sponomarova
66b27d8a65 feat(TBD-12990): Dataproc TP (#5034) 2022-02-17 18:48:57 +02:00
kjwang
de1c6ab17e Revert "Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#4949)" (#5042)
This reverts commit 7dd57d3b8a.
2022-02-17 17:32:26 +08:00
149 changed files with 7969 additions and 669 deletions

View File

@@ -28,11 +28,21 @@ public interface ColorConstants {
static final Color YELLOW_COLOR = new Color(null, 255, 173, 37);// 254, 182, 84
static final Color RED_COLOR = new Color(null, new RGB(204,87,89));// 255
static final Color RED_COLOR = new Color(null, new RGB(204, 87, 89));// 255
static final Color VERTICAL_SEPERATOR_LINE_COLOR = new Color(null, 162, 179, 195);
static final Color LOCHMARA_COLOR = new Color(null, 6, 117, 193);
static final Color WATHET_COLOR = new Color(null, 135, 206, 235);
static final Color INFO_COLOR = new Color(null, 205, 227, 242);
// static final Color INFO_COLOR = YELLOW_GREEN_COLOR;
static final Color WARN_COLOR = new Color(null, 252, 230, 217);
static final Color ERR_COLOR = new Color(null, 255, 235, 235);
static final Color SUCCEED_COLOR = new Color(null, 221, 242, 217);
}

View File

@@ -106,7 +106,7 @@ SWTCalendarWithTime.contentNoon=\u5348\u5F8C
SWTCalendarWithTime.contentNow=\u73FE\u5728
SWTCalendarWithTime.contnetSec=\u79D2:
TableViewerCreator.CallMethod.ErrorMsg=\u3053\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u3001createTable()\u3092\u65E2\u306B\u547C\u3073\u51FA\u3057\u3066\u3044\u308B\u5834\u5408\u306E\u307F\u547C\u3073\u51FA\u305B\u307E\u3059
TableViewerCreator.CellModifier.ExError=\u73FE\u5728\u306ECellModifier\u306F\u3053\u306E\u64CD\u4F5C\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002\n\u3053\u306E\u6A5F\u80FD\u3092\u4F7F\u3046\u306B\u306F\u3001'{0}'\u304B\u62E1\u5F35\u30AF\u30E9\u30B9\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
TableViewerCreator.CellModifier.ExError=\u73FE\u5728\u306ECellModifier\u306F\u3053\u306E\u64CD\u4F5C\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \n \u3053\u306E\u6A5F\u80FD\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001'{0}'\u304B\u3001\u62E1\u5F35\u3059\u308B\u30AF\u30E9\u30B9\u3092\u4F7F\u3044\u307E\u3059\u3002
TableViewerCreator.columnNoIBeanProperty=\u30AB\u30E9\u30E0'{0}' ('{1}')\u306B\u306FCellEditor\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u3059\u304C\u3001IBeanPropertyAccessors\u304C\u3042\u308A\u307E\u305B\u3093!
TableViewerCreator.columnNullId=\u30AB\u30E9\u30E0'{0}'\u304Cnull\u3067\u3059\uFF01
TableViewerCreator.IdProperty.AssertMsg=\u30AB\u30E9\u30E0\u306EidProperty\u306E\u5909\u66F4\u304C\u5FC5\u8981\u3067\u3059\u3001idProperty\u306F\uFF11\u3064\u306E\u30C6\u30FC\u30D6\u30EB\u3067\u30E6\u30CB\u30FC\u30AF\u3067\u306A\u304F\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002
@@ -125,7 +125,7 @@ ModelSelectionDialog.Update=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u63A5\u7D9A\u30
SSLConfirmDialog.KeyStore=KeyStore\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
SSLConfirmDialog.TrustStore=TrustStore\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
SSLConfirmDialog.Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u3044\u304F\u3064\u304B\u306E\u8A2D\u5B9A\u5909\u66F4\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u4E00\u90E8\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u7684\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
GlobalServiceRegister.ServiceNotRegistered=\u30B5\u30FC\u30D3\u30B9{0}\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
MessageBoxExceptionHandler.showMessageForSchemaImportXml.unParseXML.title=XML\u306B\u89E3\u6790\u3067\u304D\u307E\u305B\u3093.
MessageBoxExceptionHandler.showMessageForSchemaImportXml.unParseXML.msg=\u3053\u306E\u5F62\u5F0F\u3067\u306F\u3001XML\u306B\u89E3\u6790\u3067\u304D\u307E\u305B\u3093.

View File

@@ -106,7 +106,7 @@ SWTCalendarWithTime.contentNoon=\u4E2D\u5348
SWTCalendarWithTime.contentNow=\u73B0\u5728
SWTCalendarWithTime.contnetSec=\u79D2:
TableViewerCreator.CallMethod.ErrorMsg=\u53EA\u6709\u60A8\u5DF2\u7ECF\u8C03\u7528\u4E86 createTable() \u65B9\u6CD5\u540E\uFF0C\u624D\u80FD\u8C03\u7528\u6B64\u65B9\u6CD5\u3002
TableViewerCreator.CellModifier.ExError=\u5F53\u524D CellModifier \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u3002\n \u4F7F\u7528 '{0}' \u6216\u80FD\u591F\u5BF9\u5176\u8FDB\u884C\u6269\u5C55\u7684\u7C7B\u6765\u4F7F\u7528\u6B64\u529F\u80FD
TableViewerCreator.CellModifier.ExError=\u5F53\u524D CellModifier \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u3002 \n \u4F7F\u7528 '{0}' \u6216\u6269\u5C55\u5B83\u7684\u7C7B\u6765\u4F7F\u7528\u6B64\u529F\u80FD
TableViewerCreator.columnNoIBeanProperty=\u5217 '{0}' ('{1}') \u8BBE\u7F6E\u4E86 CellEditor\uFF0C\u4F46\u6CA1\u6709 IBeanPropertyAccessors\uFF01
TableViewerCreator.columnNullId=\u5217 '{0}' \u7684 id \u4E3A null\uFF01
TableViewerCreator.IdProperty.AssertMsg=\u4F60\u5FC5\u987B\u6539\u53D8\u5176\u4E2D\u4E00\u4E2A\u5217\u7684 idProperty\uFF0C\u4E00\u4E2A\u8868\u4E2D\u7684\u6BCF\u4E2A\u5217\u7684 idProperty \u5FC5\u987B\u552F\u4E00\u3002
@@ -114,7 +114,7 @@ TableViewerCreator.Table.BeNull=\u8868\u4E3A null
TableViewerCreator.TableColumn.AssertMsg=TableEditorColumn \u7684 idProperty \u4E3A '{0}' \u7684 TableColumn \u6CA1\u6709\u6B63\u786E\u7684 Table \u7236\u9879
TreeToTablesLinker.Type.Unsupported=\u4E0D\u652F\u6301\u8FD9\u79CD\u7C7B\u578B\u7684 currentControl
commons.error=\u9519\u8BEF
exception.errorOccured=\u53D1\u751F\u9519\u8BEF ({0})\u3002\n\u8BF7\u67E5\u770B\u65E5\u5FD7\u4EE5\u83B7\u53D6\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
exception.errorOccured=\u51FA\u73B0\u9519\u8BEF ({0})\u3002\n\u8BF7\u67E5\u770B\u65E5\u5FD7\u4EE5\u83B7\u53D6\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
ModelSelectionDialog.Message=\u8BF7\u9009\u62E9\u4E00\u4E2A\u9009\u9879\u6216\u53D6\u6D88\u3002
ModelSelectionDialog.Option=\u9009\u9879
ModelSelectionDialog.BuiltIn=\u66F4\u6539\u4E3A\u5185\u7F6E\u5C5E\u6027\u3002
@@ -125,7 +125,7 @@ ModelSelectionDialog.Update=\u66F4\u65B0\u5B58\u50A8\u5E93\u8FDE\u63A5\u3002
SSLConfirmDialog.KeyStore=\u8BF7\u8F93\u5165\u5BC6\u94A5\u5E93
SSLConfirmDialog.TrustStore=\u8BF7\u8F93\u5165\u4FE1\u4EFB\u5E93
SSLConfirmDialog.Password=\u8BF7\u8F93\u5165\u5BC6\u7801
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u987B\u6539\u53D8\u4E00\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u53EF\u80FD\u662F\u56E0\u4E3A\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u9020\u6210\u7684\u3002
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u5FC5\u987B\u66F4\u6539\u67D0\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u901A\u5E38\u662F\u7531\u4E8E\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u5BFC\u81F4\u3002
GlobalServiceRegister.ServiceNotRegistered=\u670D\u52A1 {0} \u8FD8\u672A\u6CE8\u518C\u3002
MessageBoxExceptionHandler.showMessageForSchemaImportXml.unParseXML.title=xml \u65E0\u6CD5\u89E3\u6790\u3002
MessageBoxExceptionHandler.showMessageForSchemaImportXml.unParseXML.msg=xml \u65E0\u6CD5\u4EE5\u8FD9\u79CD\u683C\u5F0F\u89E3\u6790\u3002

View File

@@ -95,10 +95,9 @@
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>bundle</type>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
</dependencies>

View File

@@ -102,7 +102,7 @@ SWTCalendarWithTime.contentNoon=\u5348\u5F8C
SWTCalendarWithTime.contentNow=\u73FE\u5728
SWTCalendarWithTime.contnetSec=\u79D2:
TableViewerCreator.CallMethod.ErrorMsg=\u3053\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u3001createTable()\u3092\u65E2\u306B\u547C\u3073\u51FA\u3057\u3066\u3044\u308B\u5834\u5408\u306E\u307F\u547C\u3073\u51FA\u305B\u307E\u3059
TableViewerCreator.CellModifier.ExError=\u73FE\u5728\u306ECellModifier\u306F\u3053\u306E\u64CD\u4F5C\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002\n\u3053\u306E\u6A5F\u80FD\u3092\u4F7F\u3046\u306B\u306F\u3001'{0}'\u304B\u62E1\u5F35\u30AF\u30E9\u30B9\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
TableViewerCreator.CellModifier.ExError=\u73FE\u5728\u306ECellModifier\u306F\u3053\u306E\u64CD\u4F5C\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 \n \u3053\u306E\u6A5F\u80FD\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001'{0}'\u304B\u3001\u62E1\u5F35\u3059\u308B\u30AF\u30E9\u30B9\u3092\u4F7F\u3044\u307E\u3059\u3002
TableViewerCreator.columnNoIBeanProperty=\u30AB\u30E9\u30E0'{0}' ('{1}')\u306B\u306FCellEditor\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u3059\u304C\u3001IBeanPropertyAccessors\u304C\u3042\u308A\u307E\u305B\u3093!
TableViewerCreator.columnNullId=\u30AB\u30E9\u30E0'{0}'\u304Cnull\u3067\u3059\uFF01
TableViewerCreator.IdProperty.AssertMsg=\u30AB\u30E9\u30E0\u306EidProperty\u306E\u5909\u66F4\u304C\u5FC5\u8981\u3067\u3059\u3001idProperty\u306F\uFF11\u3064\u306E\u30C6\u30FC\u30D6\u30EB\u3067\u30E6\u30CB\u30FC\u30AF\u3067\u306A\u304F\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002
@@ -117,7 +117,7 @@ ModelSelectionDialog.BuiltIn=\u7D44\u307F\u8FBC\u307F\u30D7\u30ED\u30D1\u30C6\u3
ModelSelectionDialog.ViewSchema=\u30B9\u30AD\u30FC\u30DE\u3092\u8868\u793A\u3057\u307E\u3059(\u8AAD\u307F\u53D6\u308A\u5C02\u7528)\u3002
ModelSelectionDialog.ViewQuery=\u30AF\u30A8\u30EA\u30FC\u3046\u3092\u8868\u793A\u3057\u307E\u3059(\u8AAD\u307F\u53D6\u308A\u5C02\u7528)\u3002
ModelSelectionDialog.Update=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u63A5\u7D9A\u3092\u66F4\u65B0\u3057\u307E\u3059\u3002
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u3044\u304F\u3064\u304B\u306E\u8A2D\u5B9A\u5909\u66F4\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u4E00\u90E8\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u7684\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
StateComposite.FLL_DB_INFOR=DB\u60C5\u5831\u3092\u5165\u529B
StateComposite.HELP_MESSAGE=\u30D8\u30EB\u30D7\u30E1\u30C3\u30BB\u30FC\u30B8
StateComposite.MESSAGE1=\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30B8\u30E7\u30D6\u3092\u8A2D\u5B9A\u3057\u3066\u3001\u5165\u529B\u30C6\u30FC\u30D6\u30EB\u306B\u4F9D\u5B58\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002

View File

@@ -102,7 +102,7 @@ SWTCalendarWithTime.contentNoon=\u4E2D\u5348
SWTCalendarWithTime.contentNow=\u73B0\u5728
SWTCalendarWithTime.contnetSec=\u79D2:
TableViewerCreator.CallMethod.ErrorMsg=\u53EA\u6709\u60A8\u5DF2\u7ECF\u8C03\u7528\u4E86 createTable() \u65B9\u6CD5\u540E\uFF0C\u624D\u80FD\u8C03\u7528\u6B64\u65B9\u6CD5\u3002
TableViewerCreator.CellModifier.ExError=\u5F53\u524D CellModifier \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u3002\n \u4F7F\u7528 '{0}' \u6216\u80FD\u591F\u5BF9\u5176\u8FDB\u884C\u6269\u5C55\u7684\u7C7B\u6765\u4F7F\u7528\u6B64\u529F\u80FD
TableViewerCreator.CellModifier.ExError=\u5F53\u524D CellModifier \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u3002 \n \u4F7F\u7528 '{0}' \u6216\u6269\u5C55\u5B83\u7684\u7C7B\u6765\u4F7F\u7528\u6B64\u529F\u80FD
TableViewerCreator.columnNoIBeanProperty=\u5217 '{0}' ('{1}') \u8BBE\u7F6E\u4E86 CellEditor\uFF0C\u4F46\u6CA1\u6709 IBeanPropertyAccessors\uFF01
TableViewerCreator.columnNullId=\u5217 '{0}' \u7684 id \u4E3A null\uFF01
TableViewerCreator.IdProperty.AssertMsg=\u4F60\u5FC5\u987B\u6539\u53D8\u5176\u4E2D\u4E00\u4E2A\u5217\u7684 idProperty\uFF0C\u4E00\u4E2A\u8868\u4E2D\u7684\u6BCF\u4E2A\u5217\u7684 idProperty \u5FC5\u987B\u552F\u4E00\u3002
@@ -110,14 +110,14 @@ TableViewerCreator.Table.BeNull=\u8868\u4E3A null
TableViewerCreator.TableColumn.AssertMsg=TableEditorColumn \u7684 idProperty \u4E3A '{0}' \u7684 TableColumn \u6CA1\u6709\u6B63\u786E\u7684 Table \u7236\u9879
TreeToTablesLinker.Type.Unsupported=\u4E0D\u652F\u6301\u8FD9\u79CD\u7C7B\u578B\u7684 currentControl
commons.error=\u9519\u8BEF
exception.errorOccured=\u53D1\u751F\u9519\u8BEF ({0})\u3002\n\u8BF7\u67E5\u770B\u65E5\u5FD7\u4EE5\u83B7\u53D6\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
exception.errorOccured=\u51FA\u73B0\u9519\u8BEF ({0})\u3002\n\u8BF7\u67E5\u770B\u65E5\u5FD7\u4EE5\u83B7\u53D6\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
ModelSelectionDialog.Message=\u8BF7\u9009\u62E9\u4E00\u4E2A\u9009\u9879\u6216\u53D6\u6D88\u3002
ModelSelectionDialog.Option=\u9009\u9879
ModelSelectionDialog.BuiltIn=\u66F4\u6539\u4E3A\u5185\u7F6E\u5C5E\u6027\u3002
ModelSelectionDialog.ViewSchema=\u67E5\u770B schema (\u53EA\u8BFB)\u3002
ModelSelectionDialog.ViewQuery=\u67E5\u770B\u67E5\u8BE2 (\u53EA\u8BFB)\u3002
ModelSelectionDialog.Update=\u66F4\u65B0\u5B58\u50A8\u5E93\u8FDE\u63A5\u3002
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u987B\u6539\u53D8\u4E00\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u53EF\u80FD\u662F\u56E0\u4E3A\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u9020\u6210\u7684\u3002
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u5FC5\u987B\u66F4\u6539\u67D0\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u901A\u5E38\u662F\u7531\u4E8E\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u5BFC\u81F4\u3002
StateComposite.FLL_DB_INFOR=\u586B\u5199\u6570\u636E\u5E93\u4FE1\u606F
StateComposite.HELP_MESSAGE=\u5E2E\u52A9\u6D88\u606F
StateComposite.MESSAGE1=\u53EF\u4EE5\u521B\u5EFA\u52A8\u6001\u4F5C\u4E1A\u5E76\u8BBE\u7F6E\u4F9D\u8D56\u4E8E\u8F93\u5165\u8868\u7684\u6587\u4EF6\u540D\u6216\u8868\u540D\u3002

View File

@@ -0,0 +1,38 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.dialogs;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.swt.graphics.Color;
/**
* DOC cmeng class global comment. Detailled comment
*/
public interface ITalendWizard extends IWizard {
Color getBackgroundColor();
Color getForegroundColor();
int getHorizonPadding();
int getVerticalPadding();
int getVerticalMargin();
int getHorizonMargin();
boolean hideDefaultMessageArea();
}

View File

@@ -0,0 +1,26 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.dialogs;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.wizard.IWizardContainer2;
/**
* DOC cmeng class global comment. Detailled comment
*/
public interface ITalendWizardContainer extends IWizardContainer2 {
void showMoreInfoLink(IDialogPage page, String name, String link);
}

View File

@@ -0,0 +1,968 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.dialogs;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.window.ToolTip;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.ProgressMonitorPart;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.ui.runtime.ColorConstants;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendWizardDialog extends WizardDialog implements ITalendWizardContainer {
private boolean useNewStyle = false;
private Color backgroundColor;
private Color foregroundColor;
private static Font titleBigFont;
private Canvas titleLabelWithAnimation;
private Canvas messagePanel;
private Color msgPanelColor = ColorConstants.INFO_COLOR;
private Composite topPanel;
private Label errIcon;
private StyledText errMsgTxt;
private Hyperlink moreInfoLink;
private String moreInfoUrl;
private volatile Thread titleAnimationSchedulerThread;
private volatile boolean threadShowingMsg = false;
private Image bigTitleImg;
private Image smallTitleImg;
private String title;
private int messageTopY;
private volatile double percentage = 1.0;
private boolean hideMessageArea = false;
public TalendWizardDialog(Shell parentShell, IWizard newWizard) {
super(parentShell, newWizard);
useNewStyle = true;
if (newWizard instanceof ITalendWizard) {
ITalendWizard talendWizard = (ITalendWizard) newWizard;
backgroundColor = talendWizard.getBackgroundColor();
foregroundColor = talendWizard.getForegroundColor();
hideMessageArea = talendWizard.hideDefaultMessageArea();
}
// this.setTitleAreaColor(new RGB(205, 227, 242));
}
private Thread createTitleAnimationSchedulerThread(boolean showMessage) {
return new Thread(new Runnable() {
@Override
public void run() {
titleAnimationSchedulerThread(showMessage);
}
}, "title anmimation, show: " + showMessage);
}
private void titleAnimationSchedulerThread(boolean showMessage) {
int totalTime = 500;
int split = 30;
int sleepTime = totalTime / split;
double percentPerFrame = 1.0 / split;
for (int i = 1; i < split; i++) {
double curX = 1 - percentPerFrame * i;
double donePercent = Math.sqrt(1 - curX * curX);
onTitleAreaRefresh(donePercent, showMessage);
if (Thread.currentThread().isInterrupted()) {
break;
}
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
onTitleAnimationInterupted(showMessage);
return;
}
}
onTitleAreaRefresh(1.0, showMessage);
}
private void onTitleAnimationInterupted(boolean showMessage) {
this.percentage = 1.0;
}
private boolean isHideMessageArea() {
return hideMessageArea;
}
private void onTitleAreaRefresh(double donePercent, boolean showMessage) {
if (isHideMessageArea()) {
return;
}
topPanel.getDisplay().syncExec(() -> {
onTitleAreaRefreshFrame(donePercent, showMessage);
});
}
private void onTitleAreaRefreshFrame(double donePercent, boolean showMessage) {
if (isHideMessageArea()) {
return;
}
this.percentage = donePercent;
sortPanelOrder();
if (!showMessage) {
messagePanel.setVisible(false);
} else {
messagePanel.setVisible(true);
// errIcon.setVisible(true);
}
Point size = topPanel.getSize();
int totalY = size.y - messageTopY;
int y = 0;
if (showMessage) {
y = messageTopY + (int) ((1.0 - donePercent) * totalY);
} else {
y = messageTopY + (int) (donePercent * totalY);
}
FormData fd = (FormData) messagePanel.getLayoutData();
fd.top = new FormAttachment(0, y);
this.titleLabelWithAnimation.redraw();
topPanel.layout();
}
public void setNewErrorStyle(boolean newErrStyle) {
this.useNewStyle = newErrStyle;
}
@Override
protected Control createContents(Composite parent) {
if (useNewStyle()) {
parent.setBackground(backgroundColor);
parent.setForeground(foregroundColor);
}
Control panel = super.createContents(parent);
try {
if (useNewStyle()) {
sortPanelOrder();
workArea.setBackground(backgroundColor);
workArea.setForeground(foregroundColor);
pageContainer.setBackground(backgroundColor);
pageContainer.setForeground(foregroundColor);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return panel;
}
private boolean useNewStyle() {
return this.useNewStyle;
}
@Override
protected Control createDialogArea(Composite parent) {
Composite panel = (Composite) super.createDialogArea(parent);
if (useNewStyle()) {
this.titleBarSeparator.dispose();
this.separator.dispose();
}
return panel;
}
@Override
protected ProgressMonitorPart createProgressMonitorPart(Composite composite, GridLayout pmlayout) {
if (useNewStyle()) {
composite.setBackground(backgroundColor);
composite.setForeground(foregroundColor);
// progMonitor.setBackground(backgroundColor);
// progMonitor.setForeground(foregroundColor);
}
ProgressMonitorPart progMonitor = super.createProgressMonitorPart(composite, pmlayout);
return progMonitor;
}
@Override
protected Control createButtonBar(Composite parent) {
if (!useNewStyle()) {
return super.createButtonBar(parent);
}
Composite composite = new Composite(parent, SWT.NONE);
composite.setBackground(backgroundColor);
composite.setForeground(foregroundColor);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
layout.horizontalSpacing = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
composite.setFont(parent.getFont());
Control helpControl = null;
// create help control if needed
if (isHelpAvailable()) {
helpControl = createHelpControl(composite);
((GridData) helpControl.getLayoutData()).horizontalIndent = convertHorizontalDLUsToPixels(
IDialogConstants.HORIZONTAL_MARGIN);
}
createButtonsForButtonBar(composite);
Button helpButton = getButton(IDialogConstants.HELP_ID);
Button finishButton = getButton(IDialogConstants.FINISH_ID);
Button cancelButton = getButton(IDialogConstants.CANCEL_ID);
Button backButton = getButton(IDialogConstants.BACK_ID);
Button nextButton = getButton(IDialogConstants.NEXT_ID);
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = getHorizonMargin();
formLayout.marginHeight = getVerticalPadding();
composite.setLayout(formLayout);
final int HORIZON_ALIGN = getHorizonPadding();
cancelButton.setBackground(backgroundColor);
cancelButton.setForeground(foregroundColor);
FormData cancelData = new FormData();
cancelData.left = new FormAttachment(0);
cancelData.top = new FormAttachment(composite, 0, SWT.CENTER);
cancelData.width = getButtonWidth(cancelButton);
cancelButton.setLayoutData(cancelData);
Control tmpCtrl = cancelButton;
if (helpControl != null) {
helpControl.setBackground(backgroundColor);
helpControl.setForeground(foregroundColor);
FormData formData = new FormData();
formData.left = new FormAttachment(tmpCtrl, HORIZON_ALIGN, SWT.RIGHT);
formData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
helpControl.setLayoutData(formData);
tmpCtrl = helpControl;
}
if (helpButton != null) {
helpButton.setBackground(backgroundColor);
helpButton.setForeground(foregroundColor);
FormData formData = new FormData();
formData.left = new FormAttachment(tmpCtrl, HORIZON_ALIGN, SWT.RIGHT);
formData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
formData.width = getButtonWidth(helpButton);
helpButton.setLayoutData(formData);
tmpCtrl = helpButton;
}
finishButton.setBackground(backgroundColor);
finishButton.setForeground(foregroundColor);
FormData finishData = new FormData();
finishData.right = new FormAttachment(100);
finishData.top = new FormAttachment(composite, 0, SWT.CENTER);
finishData.width = getButtonWidth(finishButton);
finishButton.setLayoutData(finishData);
tmpCtrl = finishButton;
if (nextButton != null) {
nextButton.setBackground(backgroundColor);
nextButton.setForeground(foregroundColor);
FormData nextData = new FormData();
Composite nextParentCtrl = nextButton.getParent();
nextParentCtrl.setBackground(backgroundColor);
nextParentCtrl.setForeground(foregroundColor);
nextData.right = new FormAttachment(tmpCtrl, -HORIZON_ALIGN, SWT.LEFT);
nextData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
nextParentCtrl.setLayoutData(nextData);
}
if (backButton != null) {
backButton.setBackground(backgroundColor);
backButton.setForeground(foregroundColor);
}
return composite;
}
private int getButtonWidth(Button btn) {
int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
Point minSize = btn.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
return Math.max(widthHint, minSize.x);
}
@Override
protected Control createTitleArea(Composite parent) {
Control titleCtrl = null;
if (useNewStyle()) {
final int horizonPadding = getHorizonPadding();
final int horizonMargin = getHorizonMargin();
final int verticalPadding = getVerticalPadding();
final int msgMargin = getMargin();
Control oldTitleArea = super.createTitleArea(parent);
topPanel = new Composite(parent, SWT.NONE);
titleCtrl = topPanel;
// topPanel.setBackground(ColorConstants.RED_COLOR);
topPanel.setBackground(backgroundColor);
topPanel.setForeground(foregroundColor);
FormData topPanelFd = new FormData();
topPanelFd.top = new FormAttachment(0);
topPanelFd.left = new FormAttachment(0);
topPanelFd.right = new FormAttachment(100);
// topPanelFd.bottom = new FormAttachment(oldTitleArea, 0, SWT.BOTTOM);
Label tmpLabel = new Label(parent, SWT.NONE);
// tmpLabel.setFont(getTitleBigFont());
tmpLabel.setFont(JFaceResources.getBannerFont());
tmpLabel.setText("Test");
tmpLabel.pack();
Point size = tmpLabel.getSize();
tmpLabel.setFont(null);
tmpLabel.setText("Test");
tmpLabel.pack();
Point errSize = tmpLabel.getSize();
tmpLabel.dispose();
if (isHideMessageArea()) {
topPanelFd.height = 0;
} else {
topPanelFd.height = verticalPadding + size.y + verticalPadding + errSize.y + msgMargin * 2;
}
topPanel.setLayoutData(topPanelFd);
topPanel.setLayout(new FormLayout());
// sortPanelOrder();
titleLabelWithAnimation = new Canvas(topPanel, SWT.DOUBLE_BUFFERED);
titleLabelWithAnimation.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
drawTitle(e);
}
});
titleLabelWithAnimation.setBackground(backgroundColor);
titleLabelWithAnimation.setForeground(foregroundColor);
titleLabelWithAnimation.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
if (bigTitleImg != null && !bigTitleImg.isDisposed()) {
bigTitleImg.dispose();
}
if (smallTitleImg != null && !smallTitleImg.isDisposed()) {
smallTitleImg.dispose();
}
}
});
FormData fd = new FormData();
fd.top = new FormAttachment(0, verticalPadding);
fd.left = new FormAttachment(0, horizonMargin);
fd.right = new FormAttachment(100);
fd.bottom = new FormAttachment(100);
titleLabelWithAnimation.setLayoutData(fd);
messagePanel = new Canvas(topPanel, SWT.DOUBLE_BUFFERED);
messagePanel.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
drawMessageBackground(e, messagePanel);
// int len = 160;
// int a = 10;
// int a_Len = a + (int) (percentage * (size.x - a));
// int b_Len = a_Len + len;
// if (a_Len < size.x || b_Len < size.x) {
// if (size.x <= a_Len) {
// a_Len = size.x;
// }
// if (size.x <= b_Len) {
// b_Len = size.x;
// }
// e.gc.setBackground(ColorConstants.WHITE_COLOR);
// e.gc.fillPolygon(new int[] { a_Len, 0, size.x, 0, size.x, size.y, b_Len, size.y });
// }
}
});
messagePanel.setBackground(backgroundColor);
messagePanel.setForeground(foregroundColor);
fd = new FormData();
tmpLabel = new Label(topPanel, SWT.NONE);
tmpLabel.setFont(JFaceResources.getBannerFont());
tmpLabel.setText("Test");
tmpLabel.pack();
size = tmpLabel.getSize();
tmpLabel.dispose();
messageTopY = verticalPadding + size.y + verticalPadding;
fd.top = new FormAttachment(0, messageTopY);
// fd.left = new FormAttachment(0, convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING));
// fd.right = new FormAttachment(100, -convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING));
fd.left = new FormAttachment(0, horizonMargin);
fd.right = new FormAttachment(100, -horizonMargin);
fd.bottom = new FormAttachment(100);
messagePanel.setLayoutData(fd);
messagePanel.setLayout(new FormLayout());
errIcon = new Label(messagePanel, SWT.NONE);
errIcon.setBackground(msgPanelColor);
errIcon.setForeground(foregroundColor);
fd = new FormData();
fd.top = new FormAttachment(0, msgMargin);
fd.left = new FormAttachment(0, msgMargin);
errIcon.setLayoutData(fd);
moreInfoLink = new Hyperlink(messagePanel, SWT.NONE);
moreInfoLink.setText("");
moreInfoLink.setBackground(msgPanelColor);
moreInfoLink.setUnderlined(true);
moreInfoLink.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
onMoreInfoLinkClicked(e);
}
});
errMsgTxt = new StyledText(messagePanel, SWT.READ_ONLY | SWT.WRAP);
errMsgTxt.setEditable(false);
errMsgTxt.setBackground(msgPanelColor);
errMsgTxt.setForeground(org.eclipse.draw2d.ColorConstants.black);
fd = new FormData();
fd.top = new FormAttachment(errMsgTxt, 0, SWT.CENTER);
fd.right = new FormAttachment(100, -msgMargin);
moreInfoLink.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(errIcon, 0, SWT.TOP);
fd.left = new FormAttachment(errIcon, horizonPadding, SWT.RIGHT);
fd.right = new FormAttachment(moreInfoLink, -horizonPadding, SWT.LEFT);
fd.bottom = new FormAttachment(100, -msgMargin);
errMsgTxt.setLayoutData(fd);
parent.setBackground(backgroundColor);
// parent.setBackground(ColorConstants.YELLOW_COLOR);
titleImageLabel.setBackground(backgroundColor);
titleLabel.setBackground(backgroundColor);
titleLabel.moveBelow(null);
messageImageLabel.setBackground(backgroundColor);
leftFillerLabel.setBackground(backgroundColor);
bottomFillerLabel.setBackground(backgroundColor);
messageLabel.setBackground(backgroundColor);
} else {
titleCtrl = super.createTitleArea(parent);
}
return titleCtrl;
}
private Composite createToolTipContent(Composite parent) {
Composite result = new Composite(parent, SWT.NONE);
final int msgMargin = getMargin();
final int horizonPadding = getHorizonPadding();
result.setBackground(null);
result.setLayout(new FormLayout());
Canvas msgPanel = new Canvas(result, SWT.DOUBLE_BUFFERED);
FormData fd = new FormData();
fd.top = new FormAttachment(0);
fd.left = new FormAttachment(0);
fd.width = messagePanel.getSize().x;
fd.bottom = new FormAttachment(100);
msgPanel.setLayoutData(fd);
msgPanel.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
drawMessageBackground(e, msgPanel);
}
});
msgPanel.setBackground(messagePanel.getBackground());
msgPanel.setForeground(messagePanel.getForeground());
msgPanel.setLayout(new FormLayout());
Label errIconLabel = new Label(msgPanel, SWT.NONE);
errIconLabel.setBackground(errIcon.getBackground());
errIconLabel.setForeground(errIcon.getForeground());
errIconLabel.setImage(errIcon.getImage());
fd = new FormData();
fd.top = new FormAttachment(0, msgMargin);
fd.left = new FormAttachment(0, msgMargin);
errIconLabel.setLayoutData(fd);
Hyperlink link = new Hyperlink(msgPanel, SWT.NONE);
link.setText(moreInfoLink.getText());
link.setBackground(moreInfoLink.getBackground());
link.setUnderlined(moreInfoLink.isUnderlined());
StyledText msgTxt = new StyledText(msgPanel, SWT.READ_ONLY | SWT.WRAP);
msgTxt.setBackground(errMsgTxt.getBackground());
msgTxt.setForeground(errMsgTxt.getForeground());
msgTxt.setText(errMsgTxt.getText());
fd = new FormData();
fd.top = new FormAttachment(msgTxt, 0, SWT.CENTER);
fd.right = new FormAttachment(100, -msgMargin);
link.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(errIconLabel, 0, SWT.TOP);
fd.left = new FormAttachment(errIconLabel, horizonPadding, SWT.RIGHT);
fd.right = new FormAttachment(link, -horizonPadding, SWT.LEFT);
msgTxt.setLayoutData(fd);
return result;
}
private void onMoreInfoLinkClicked(HyperlinkEvent e) {
Program.launch(moreInfoUrl);
}
@Override
protected void resetWorkAreaAttachments(Control top) {
FormData childData = new FormData();
childData.top = new FormAttachment(topPanel, 0, SWT.BOTTOM);
childData.right = new FormAttachment(100, 0);
childData.left = new FormAttachment(0, 0);
childData.bottom = new FormAttachment(100, 0);
workArea.setLayoutData(childData);
}
@Override
protected void layoutForNewMessage(boolean forceLayout) {
if (!useNewStyle()) {
super.layoutForNewMessage(forceLayout);
return;
}
// if (forceLayout) {
// return;
// }
if (hasMessage()) {
messagePanel.setVisible(true);
// Image image = messageImageLabel.getImage();
// if (image == null) {
// image = messageImage;
// }
// if (image != null && messageImageLabel.isVisible()) {
//// this.errIcon.setVisible(true);
// this.errIcon.setImage(image);
// } else {
// this.errIcon.setImage(null);
//// this.errIcon.setVisible(false);
// }
updateMsgPanelColor(pageMessageType);
// topPanel.layout();
messagePanel.layout();
Point messageSize = errMsgTxt.getSize();
int messageLabelUnclippedHeight = errMsgTxt.computeSize(messageSize.x, SWT.DEFAULT, true).y;
boolean messageLabelClipped = messageLabelUnclippedHeight > messageSize.y;
if (errMsgTxt.getData() instanceof ToolTip) {
ToolTip toolTip = (ToolTip) errMsgTxt.getData();
toolTip.hide();
toolTip.deactivate();
errMsgTxt.setData(null);
}
if (messageLabelClipped) {
ToolTip tooltip = new ToolTip(errMsgTxt, ToolTip.NO_RECREATE, false) {
@Override
protected Composite createToolTipContentArea(Event event, Composite parent) {
return createToolTipContent(parent);
}
@Override
public Point getLocation(Point tipSize, Event event) {
return errMsgTxt.getShell().toDisplay(messagePanel.getLocation());
}
};
errMsgTxt.setData(tooltip);
tooltip.setPopupDelay(0);
tooltip.activate();
}
}
}
@Override
protected void setImageLabelVisible(boolean visible) {
super.setImageLabelVisible(visible);
if (useNewStyle()) {
messagePanel.setVisible(visible);
if (visible) {
errIcon.setImage(messageImageLabel.getImage());
} else {
errIcon.setImage(null);
}
}
}
private void sortPanelOrder() {
if (isHideMessageArea()) {
return;
}
if (this.topPanel == null) {
return;
}
this.titleImageLabel.moveAbove(null);
this.topPanel.moveBelow(this.titleImageLabel);
messagePanel.moveAbove(titleLabelWithAnimation);
if (!hasMessage()) {
messagePanel.setVisible(false);
}
}
@Override
protected void setLayoutsForNormalMessage(int verticalSpacing, int horizontalSpacing) {
if (isHideMessageArea()) {
return;
}
super.setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing);
if (useNewStyle()) {
if (this.topPanel != null) {
onTitleAreaRefreshFrame(1.0, false);
}
}
}
private static Font getTitleBigFont() {
if (titleBigFont != null) {
return titleBigFont;
}
Font bannerFont = JFaceResources.getBannerFont();
FontData[] fontData = bannerFont.getFontData();
for (FontData fd : fontData) {
fd.setHeight(fd.getHeight() + 7);
}
titleBigFont = new Font(Display.getDefault(), fontData);
return titleBigFont;
}
@Override
protected void updateMessage(String newMessage) {
if (isHideMessageArea()) {
return;
}
boolean hadMsg = hasMessage();
super.updateMessage(newMessage);
this.errMsgTxt.setText(this.messageLabel.getText());
boolean hasMsg = hasMessage();
messagePanel.setVisible(hasMsg);
if (hadMsg != hasMsg) {
startAnimation();
}
}
@Override
public void setErrorMessage(String newErrorMessage) {
if (isHideMessageArea()) {
return;
}
if (StringUtils.isNotBlank(newErrorMessage)) {
this.pageMessageType = IMessageProvider.ERROR;
updateMsgPanelColor(this.pageMessageType);
}
super.setErrorMessage(newErrorMessage);
}
@Override
protected void showMessage(String newMessage, Image newImage) {
if (isHideMessageArea()) {
return;
}
super.showMessage(newMessage, newImage);
}
@Override
public void setMessage(String newMessage, int newType) {
if (isHideMessageArea()) {
return;
}
if (StringUtils.isNotBlank(newMessage)) {
updateMsgPanelColor(newType);
}
super.setMessage(newMessage, newType);
}
private void updateMsgPanelColor(int type) {
Color foreColor = getMsgPanelForegroundColor(type);
msgPanelColor = getMsgPanelBackgroundColor(type);
errIcon.setBackground(msgPanelColor);
errMsgTxt.setBackground(msgPanelColor);
errMsgTxt.setForeground(foreColor);
moreInfoLink.setBackground(msgPanelColor);
// moreInfoLink.setForeground(getMoreInfoLinkForegroundColor(type));
messagePanel.redraw();
}
private Color getMsgPanelBackgroundColor(int type) {
Color color = ColorConstants.INFO_COLOR;
switch (type) {
case IMessageProvider.NONE:
case IMessageProvider.INFORMATION:
color = ColorConstants.INFO_COLOR;
break;
case IMessageProvider.WARNING:
color = ColorConstants.WARN_COLOR;
break;
case IMessageProvider.ERROR:
color = ColorConstants.ERR_COLOR;
break;
}
return color;
}
private Color getMsgPanelForegroundColor(int type) {
Color color = ColorConstants.WHITE_COLOR;
switch (type) {
case IMessageProvider.WARNING:
color = org.eclipse.draw2d.ColorConstants.black;
break;
case IMessageProvider.NONE:
case IMessageProvider.INFORMATION:
case IMessageProvider.ERROR:
color = ColorConstants.WHITE_COLOR;
break;
}
return color;
}
private Color getMoreInfoLinkForegroundColor(int type) {
Color color = null;
switch (type) {
case IMessageProvider.NONE:
case IMessageProvider.INFORMATION:
case IMessageProvider.ERROR:
color = ColorConstants.WHITE_COLOR;
break;
default:
break;
}
return color;
}
private void startAnimation() {
boolean hasMsg = hasMessage();
if (this.titleAnimationSchedulerThread != null) {
if (hasMsg == threadShowingMsg) {
return;
} else {
this.titleAnimationSchedulerThread.interrupt();
}
}
threadShowingMsg = hasMsg;
titleAnimationSchedulerThread = createTitleAnimationSchedulerThread(threadShowingMsg);
titleAnimationSchedulerThread.start();
}
private boolean hasMessage() {
return StringUtils.isNotBlank(messageLabel.getText());
}
@Override
public void setTitle(String newTitle) {
super.setTitle(newTitle);
if (StringUtils.equals(newTitle, title) && this.bigTitleImg != null) {
return;
}
if (this.titleAnimationSchedulerThread != null) {
this.titleAnimationSchedulerThread.interrupt();
}
this.title = newTitle;
if (this.bigTitleImg != null) {
this.bigTitleImg.dispose();
}
this.bigTitleImg = createTitleImage(getTitleBigFont(), this.title);
if (this.smallTitleImg != null) {
this.smallTitleImg.dispose();
}
this.smallTitleImg = createTitleImage(JFaceResources.getBannerFont(), this.title);
this.titleLabelWithAnimation.redraw();
}
@Override
public void showMoreInfoLink(IDialogPage page, String name, String link) {
if (isHideMessageArea()) {
return;
}
if (getCurrentPage() != page) {
return;
}
if (StringUtils.isBlank(name)) {
moreInfoLink.setText("");
moreInfoLink.setEnabled(false);
} else {
moreInfoLink.setEnabled(true);
moreInfoLink.setText(name);
}
moreInfoUrl = link;
this.moreInfoLink.pack();
this.moreInfoLink.redraw();
this.messagePanel.layout();
}
@Override
public void setTitleImage(Image newTitleImage) {
super.setTitleImage(newTitleImage);
if (this.titleAreaImage != null) {
if (this.messageTopY < this.titleAreaImage.getBounds().height) {
FormData fd = (FormData) messagePanel.getLayoutData();
Rectangle imgBounds = this.titleAreaImage.getBounds();
fd.right = new FormAttachment(100, -getHorizonPadding() - imgBounds.width);
FormData panelFd = (FormData) this.topPanel.getLayoutData();
int imageY = imgBounds.height;
int topPanelY = panelFd.height;
if (topPanelY < imageY) {
panelFd.height = imageY;
// fd.right = new FormAttachment(this.titleImageLabel, -getMargin(), SWT.LEFT);
this.topPanel.getParent().layout();
} else {
}
this.topPanel.layout();
}
}
}
private Image createTitleImage(Font font, String title) {
Label tmpLabel = new Label(titleLabel.getParent(), SWT.NONE);
tmpLabel.setText(title);
tmpLabel.setFont(font);
tmpLabel.pack();
Point size = tmpLabel.getSize();
tmpLabel.dispose();
int width = size.x;
if (StringUtils.isEmpty(title)) {
width = 1;
}
Image tmpImg = new Image(Display.getDefault(), width, size.y);
GC gc = new GC(tmpImg);
gc.setAntialias(SWT.ON);
gc.setInterpolation(SWT.HIGH);
gc.setFont(font);
gc.setAlpha(0);
gc.drawRectangle(0, 0, width, size.y);
gc.setAlpha(255);
gc.drawText(title, 0, 0, true);
gc.dispose();
ImageData imageData = tmpImg.getImageData();
imageData.transparentPixel = imageData.getPixel(0, 0);
tmpImg.dispose();
return new Image(Display.getDefault(), imageData);
}
private void drawTitle(PaintEvent e) {
double p = percentage;
Rectangle sBounds = smallTitleImg.getBounds();
Rectangle bBounds = bigTitleImg.getBounds();
int width = bBounds.width - sBounds.width;
int height = bBounds.height - sBounds.height;
Rectangle baseBounds = sBounds;
Image finalImg = bigTitleImg;
finalImg = bigTitleImg;
int totalHight = e.height;
int middleY = (totalHight - bBounds.height) / 2;
// int startY = getMargin();
int startY = 0;
int baseY = startY;
int y = (int) (p * (middleY - startY));
if (hasMessage()) {
y = -y;
width = -width;
height = -height;
baseBounds = bBounds;
baseY = middleY;
finalImg = smallTitleImg;
}
Point newSize = new Point((int) (baseBounds.width + p * width), (int) (baseBounds.height + p * height));
GC gc = e.gc;
gc.setAntialias(SWT.ON);
gc.setInterpolation(SWT.HIGH);
if (p <= 1.0) {
gc.drawImage(bigTitleImg, 0, 0, bBounds.width, bBounds.height, 0, baseY + y, newSize.x, newSize.y);
} else {
Rectangle bounds = finalImg.getBounds();
gc.drawImage(finalImg, 0, 0, bounds.width, bounds.height, 0, baseY + y, bounds.width, bounds.height);
}
}
private void drawMessageBackground(PaintEvent e, Control ctrl) {
e.gc.setBackground(msgPanelColor);
e.gc.setAntialias(SWT.ON);
e.gc.setInterpolation(SWT.HIGH);
Point size = ctrl.getSize();
e.gc.fillRoundRectangle(0, 0, size.x, size.y, 15, 15);
}
private int getHorizonPadding() {
IWizard wizard = this.getWizard();
if (wizard instanceof ITalendWizard) {
return ((ITalendWizard) wizard).getHorizonPadding();
}
return 5;
}
private int getVerticalPadding() {
IWizard wizard = this.getWizard();
if (wizard instanceof ITalendWizard) {
return ((ITalendWizard) wizard).getVerticalPadding();
}
return 5;
}
private int getHorizonMargin() {
IWizard wizard = this.getWizard();
if (wizard instanceof ITalendWizard) {
return ((ITalendWizard) wizard).getHorizonMargin();
}
return 5;
}
private int getMargin() {
return 10;
}
}

View File

@@ -0,0 +1,244 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.dialogs;
import java.lang.reflect.Field;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.resource.JFaceColors;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.ProgressMonitorPart;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.ui.runtime.ColorConstants;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendWizardDialog_backup extends WizardDialog {
private boolean useNewErrorStyle = false;
/**
* Warning color: #FCE6D9 <br/>
* info color: #CDE3F2
*/
public TalendWizardDialog_backup(Shell parentShell, IWizard newWizard) {
super(parentShell, newWizard);
useNewErrorStyle = true;
this.setTitleAreaColor(new RGB(205, 227, 242));
}
public void setNewErrorStyle(boolean newErrStyle) {
this.useNewErrorStyle = newErrStyle;
}
@Override
protected Control createContents(Composite parent) {
parent.setBackground(ColorConstants.WHITE_COLOR);
Control panel = super.createContents(parent);
Display display = parent.getDisplay();
Color background = JFaceColors.getBannerBackground(display);
Color foreground = JFaceColors.getBannerForeground(display);
try {
Field workAreaField = TitleAreaDialog.class.getDeclaredField("workArea");
workAreaField.setAccessible(true);
Composite workArea = (Composite) workAreaField.get(this);
workArea.setBackground(ColorConstants.WHITE_COLOR);
Field pageContainerField = WizardDialog.class.getDeclaredField("pageContainer");
pageContainerField.setAccessible(true);
Composite pageContainer = (Composite) pageContainerField.get(this);
pageContainer.setBackground(ColorConstants.WHITE_COLOR);
if (useNewErrorStyle()) {
FormData formData = (FormData) workArea.getLayoutData();
formData.top = new FormAttachment(0);
}
Field bottomFillerLabelField = TitleAreaDialog.class.getDeclaredField("bottomFillerLabel");
bottomFillerLabelField.setAccessible(true);
Composite bottomFillerLabel = (Composite) bottomFillerLabelField.get(this);
bottomFillerLabel.setVisible(false);
} catch (Exception e) {
ExceptionHandler.process(e);
}
return panel;
}
@Override
public void setMessage(String newMessage) {
if (useNewErrorStyle()) {
ExceptionHandler.log(newMessage);
} else {
super.setMessage(newMessage);
}
}
@Override
public void setMessage(String newMessage, int newType) {
if (useNewErrorStyle()) {
ExceptionHandler.log(newMessage);
} else {
super.setMessage(newMessage, newType);
}
}
@Override
public void setErrorMessage(String newErrorMessage) {
if (useNewErrorStyle()) {
ExceptionHandler.log(newErrorMessage);
} else {
super.setErrorMessage(newErrorMessage);
}
}
private boolean useNewErrorStyle() {
return this.useNewErrorStyle;
}
@Override
protected Control createDialogArea(Composite parent) {
Composite panel = (Composite) super.createDialogArea(parent);
Control[] children = panel.getChildren();
for (Control child : children) {
child.setBackground(ColorConstants.WHITE_COLOR);
if (child instanceof Label) {
int style = child.getStyle();
if (0 < (style & SWT.HORIZONTAL) && 0 < (style & SWT.SEPARATOR)) {
child.setVisible(false);
}
}
}
return panel;
}
@Override
protected ProgressMonitorPart createProgressMonitorPart(Composite composite, GridLayout pmlayout) {
ProgressMonitorPart progMonitor = super.createProgressMonitorPart(composite, pmlayout);
progMonitor.setBackground(ColorConstants.WHITE_COLOR);
return progMonitor;
}
@Override
protected Control createButtonBar(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setBackground(ColorConstants.WHITE_COLOR);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
layout.horizontalSpacing = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
composite.setFont(parent.getFont());
Control helpControl = null;
// create help control if needed
if (isHelpAvailable()) {
helpControl = createHelpControl(composite);
((GridData) helpControl.getLayoutData()).horizontalIndent = convertHorizontalDLUsToPixels(
IDialogConstants.HORIZONTAL_MARGIN);
}
createButtonsForButtonBar(composite);
Button helpButton = getButton(IDialogConstants.HELP_ID);
Button finishButton = getButton(IDialogConstants.FINISH_ID);
Button cancelButton = getButton(IDialogConstants.CANCEL_ID);
Button backButton = getButton(IDialogConstants.BACK_ID);
Button nextButton = getButton(IDialogConstants.NEXT_ID);
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = 10;
formLayout.marginHeight = 20;
composite.setLayout(formLayout);
final int HORIZON_ALIGN = 5;
FormData cancelData = new FormData();
cancelData.left = new FormAttachment(0);
cancelData.top = new FormAttachment(composite, 0, SWT.CENTER);
cancelData.width = getButtonWidth(cancelButton);
cancelButton.setLayoutData(cancelData);
Control tmpCtrl = cancelButton;
if (helpControl != null) {
FormData formData = new FormData();
formData.left = new FormAttachment(tmpCtrl, HORIZON_ALIGN, SWT.RIGHT);
formData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
helpControl.setLayoutData(formData);
tmpCtrl = helpControl;
}
if (helpButton != null) {
FormData formData = new FormData();
formData.left = new FormAttachment(tmpCtrl, HORIZON_ALIGN, SWT.RIGHT);
formData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
formData.width = getButtonWidth(helpButton);
helpButton.setLayoutData(formData);
tmpCtrl = helpButton;
}
FormData finishData = new FormData();
finishData.right = new FormAttachment(100);
finishData.top = new FormAttachment(composite, 0, SWT.CENTER);
finishData.width = getButtonWidth(finishButton);
finishButton.setLayoutData(finishData);
tmpCtrl = finishButton;
if (nextButton != null) {
FormData nextData = new FormData();
Composite nextParentCtrl = nextButton.getParent();
nextData.right = new FormAttachment(tmpCtrl, -HORIZON_ALIGN, SWT.LEFT);
nextData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
nextParentCtrl.setLayoutData(nextData);
}
if (false) {
if (nextButton != null) {
FormData nextData = new FormData();
nextData.right = new FormAttachment(tmpCtrl, -HORIZON_ALIGN, SWT.LEFT);
nextData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
nextData.width = getButtonWidth(nextButton);
nextButton.setLayoutData(nextData);
}
if (backButton != null) {
FormData backData = new FormData();
backData.right = new FormAttachment(tmpCtrl, -HORIZON_ALIGN, SWT.LEFT);
backData.top = new FormAttachment(tmpCtrl, 0, SWT.CENTER);
backData.width = getButtonWidth(backButton);
backButton.setLayoutData(backData);
}
}
return composite;
}
private int getButtonWidth(Button btn) {
int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
Point minSize = btn.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
return Math.max(widthHint, minSize.x);
}
}

View File

@@ -0,0 +1,693 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.dialogs;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.TrayDialog;
import org.eclipse.jface.resource.JFaceColors;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.window.ToolTip;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.ACC;
import org.eclipse.swt.accessibility.AccessibleAttributeAdapter;
import org.eclipse.swt.accessibility.AccessibleAttributeEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
/**
* A dialog that has a title area for displaying a title and an image as well as a common area for displaying a
* description, a message, or an error message.
* <p>
* This dialog class may be subclassed.
*/
public class TitleAreaDialog extends TrayDialog {
/**
* Image registry key for error message image.
*/
public static final String DLG_IMG_TITLE_ERROR = DLG_IMG_MESSAGE_ERROR;
/**
* Image registry key for banner image (value <code>"dialog_title_banner_image"</code>).
*/
public static final String DLG_IMG_TITLE_BANNER = "dialog_title_banner_image";//$NON-NLS-1$
/**
* Message type constant used to display an info icon with the message.
*
* @since 2.0
* @deprecated
*/
@Deprecated
public static final String INFO_MESSAGE = "INFO_MESSAGE"; //$NON-NLS-1$
/**
* Message type constant used to display a warning icon with the message.
*
* @since 2.0
* @deprecated
*/
@Deprecated
public static final String WARNING_MESSAGE = "WARNING_MESSAGE"; //$NON-NLS-1$
// Space between an image and a label
private static final int H_GAP_IMAGE = 5;
// Minimum dialog width (in dialog units)
private static final int MIN_DIALOG_WIDTH = 350;
// Minimum dialog height (in dialog units)
private static final int MIN_DIALOG_HEIGHT = 150;
protected Label titleLabel;
protected Label titleImageLabel;
protected Label bottomFillerLabel;
protected Label leftFillerLabel;
private RGB titleAreaRGB;
Color titleAreaColor;
protected String message = ""; //$NON-NLS-1$
protected String errorMessage;
protected Label messageLabel;
protected Composite workArea;
protected Label messageImageLabel;
protected Image messageImage;
private boolean showingError = false;
private boolean titleImageLargest = true;
private int messageLabelHeight;
protected Image titleAreaImage;
/**
* Instantiate a new title area dialog.
*
* @param parentShell the parent SWT shell
*/
public TitleAreaDialog(Shell parentShell) {
super(parentShell);
}
/*
* @see Dialog.createContents(Composite)
*/
@Override
protected Control createContents(Composite parent) {
// create the overall composite
Composite contents = new Composite(parent, SWT.NONE);
contents.setLayoutData(new GridData(GridData.FILL_BOTH));
// initialize the dialog units
initializeDialogUnits(contents);
FormLayout layout = new FormLayout();
contents.setLayout(layout);
// Now create a work area for the rest of the dialog
workArea = new Composite(contents, SWT.NONE);
// workArea.setBackground(ColorConstants.RED_COLOR);
GridLayout childLayout = new GridLayout();
childLayout.marginHeight = 0;
childLayout.marginWidth = 0;
childLayout.verticalSpacing = 0;
workArea.setLayout(childLayout);
Control top = createTitleArea(contents);
resetWorkAreaAttachments(top);
workArea.setFont(JFaceResources.getDialogFont());
// initialize the dialog units
initializeDialogUnits(workArea);
// create the dialog area and button bar
dialogArea = createDialogArea(workArea);
buttonBar = createButtonBar(workArea);
// need to react to new size of title area
getShell().addListener(SWT.Resize, event -> layoutForNewMessage(true));
return contents;
}
/**
* Creates and returns the contents of the upper part of this dialog (above the button bar).
* <p>
* The <code>Dialog</code> implementation of this framework method creates and returns a new <code>Composite</code>
* with no margins and spacing. Subclasses should override.
* </p>
*
* @param parent The parent composite to contain the dialog area
* @return the dialog area control
*/
@Override
protected Control createDialogArea(Composite parent) {
// create the top level composite for the dialog area
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.verticalSpacing = 0;
layout.horizontalSpacing = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setFont(parent.getFont());
// Build the separator line
titleBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
titleBarSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
return composite;
}
protected Label titleBarSeparator;
/**
* Creates the dialog's title area.
*
* @param parent the SWT parent for the title area widgets
* @return Control with the highest x axis value.
*/
protected Control createTitleArea(Composite parent) {
// Determine the background color of the title bar
Display display = parent.getDisplay();
Color background;
Color foreground;
if (titleAreaRGB != null) {
titleAreaColor = new Color(display, titleAreaRGB);
background = titleAreaColor;
foreground = null;
} else {
background = JFaceColors.getBannerBackground(display);
foreground = JFaceColors.getBannerForeground(display);
}
parent.setBackground(background);
int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
// Dialog image @ right
titleImageLabel = new Label(parent, SWT.CENTER);
titleImageLabel.setBackground(background);
if (titleAreaImage == null || titleAreaImage.isDisposed())
titleImageLabel.setImage(JFaceResources.getImage(DLG_IMG_TITLE_BANNER));
else
titleImageLabel.setImage(titleAreaImage);
FormData imageData = new FormData();
imageData.top = new FormAttachment(0, 0);
// Note: do not use horizontalSpacing on the right as that would be a
// regression from
// the R2.x style where there was no margin on the right and images are
// flush to the right
// hand side. see reopened comments in 41172
imageData.right = new FormAttachment(100, 0); // horizontalSpacing
titleImageLabel.setLayoutData(imageData);
// Title label @ top, left
titleLabel = new Label(parent, SWT.LEFT);
JFaceColors.setColors(titleLabel, foreground, background);
titleLabel.setFont(JFaceResources.getBannerFont());
titleLabel.setText(" ");//$NON-NLS-1$
FormData titleData = new FormData();
titleData.top = new FormAttachment(0, verticalSpacing);
titleData.right = new FormAttachment(titleImageLabel);
titleData.left = new FormAttachment(0, horizontalSpacing);
titleLabel.setLayoutData(titleData);
// Message image @ bottom, left
messageImageLabel = new Label(parent, SWT.CENTER);
messageImageLabel.setBackground(background);
// Message label @ bottom, center
// messageLabel = new Text(parent, SWT.WRAP | SWT.READ_ONLY);
messageLabel = new Label(parent, SWT.WRAP);
JFaceColors.setColors(messageLabel, foreground, background);
messageLabel.setText(" \n "); // two lines//$NON-NLS-1$
messageLabel.setFont(JFaceResources.getDialogFont());
// Bug 248410 - This snippet will only work with Windows screen readers.
messageLabel.getAccessible().addAccessibleAttributeListener(new AccessibleAttributeAdapter() {
@Override
public void getAttributes(AccessibleAttributeEvent e) {
e.attributes = new String[] { "container-live", //$NON-NLS-1$
"polite", "live", "polite", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
"container-live-role", "status", }; //$NON-NLS-1$ //$NON-NLS-2$
}
});
messageLabelHeight = messageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
// Filler labels
leftFillerLabel = new Label(parent, SWT.CENTER);
leftFillerLabel.setBackground(background);
bottomFillerLabel = new Label(parent, SWT.CENTER);
bottomFillerLabel.setBackground(background);
setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing);
determineTitleImageLargest();
if (titleImageLargest)
return titleImageLabel;
return messageLabel;
}
/**
* Determine if the title image is larger than the title message and message area. This is used for layout
* decisions.
*/
private void determineTitleImageLargest() {
int titleY = titleImageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
int labelY = titleLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
labelY += verticalSpacing;
labelY += messageLabelHeight;
labelY += verticalSpacing;
titleImageLargest = titleY > labelY;
}
/**
* Set the layout values for the messageLabel, messageImageLabel and fillerLabel for the case where there is a
* normal message.
*
* @param verticalSpacing int The spacing between widgets on the vertical axis.
* @param horizontalSpacing int The spacing between widgets on the horizontal axis.
*/
protected void setLayoutsForNormalMessage(int verticalSpacing, int horizontalSpacing) {
FormData messageImageData = new FormData();
messageImageData.top = new FormAttachment(titleLabel, verticalSpacing);
messageImageData.left = new FormAttachment(0, H_GAP_IMAGE);
messageImageLabel.setLayoutData(messageImageData);
FormData messageLabelData = new FormData();
messageLabelData.top = new FormAttachment(titleLabel, verticalSpacing);
messageLabelData.right = new FormAttachment(titleImageLabel);
messageLabelData.left = new FormAttachment(messageImageLabel, horizontalSpacing);
messageLabelData.height = messageLabelHeight;
if (titleImageLargest)
messageLabelData.bottom = new FormAttachment(titleImageLabel, 0, SWT.BOTTOM);
messageLabel.setLayoutData(messageLabelData);
FormData fillerData = new FormData();
fillerData.left = new FormAttachment(0, horizontalSpacing);
fillerData.top = new FormAttachment(messageImageLabel, 0);
fillerData.bottom = new FormAttachment(messageLabel, 0, SWT.BOTTOM);
bottomFillerLabel.setLayoutData(fillerData);
FormData data = new FormData();
data.top = new FormAttachment(messageImageLabel, 0, SWT.TOP);
data.left = new FormAttachment(0, 0);
data.bottom = new FormAttachment(messageImageLabel, 0, SWT.BOTTOM);
data.right = new FormAttachment(messageImageLabel, 0);
leftFillerLabel.setLayoutData(data);
}
/**
* The <code>TitleAreaDialog</code> implementation of this <code>Window</code> methods returns an initial size which
* is at least some reasonable minimum.
*
* @return the initial size of the dialog
*/
@Override
protected Point getInitialSize() {
Point shellSize = super.getInitialSize();
return new Point(Math.max(convertHorizontalDLUsToPixels(MIN_DIALOG_WIDTH), shellSize.x),
Math.max(convertVerticalDLUsToPixels(MIN_DIALOG_HEIGHT), shellSize.y));
}
/**
* Retained for backward compatibility.
*
* Returns the title area composite. There is no composite in this implementation so the shell is returned.
*
* @return Composite
* @deprecated
*/
@Deprecated
protected Composite getTitleArea() {
return getShell();
}
/**
* Returns the title image label.
*
* @return the title image label
*/
protected Label getTitleImageLabel() {
return titleImageLabel;
}
/**
* Display the given error message. The currently displayed message is saved and will be redisplayed when the error
* message is set to <code>null</code>.
*
* @param newErrorMessage the newErrorMessage to display or <code>null</code>
*/
public void setErrorMessage(String newErrorMessage) {
// Any change?
if (errorMessage == null ? newErrorMessage == null : errorMessage.equals(newErrorMessage))
return;
errorMessage = newErrorMessage;
// Clear or set error message.
if (errorMessage == null) {
if (showingError) {
// we were previously showing an error
showingError = false;
}
// show the message
// avoid calling setMessage in case it is overridden to call
// setErrorMessage,
// which would result in a recursive infinite loop
if (message == null) // this should probably never happen since
// setMessage does this conversion....
message = ""; //$NON-NLS-1$
updateMessage(message);
messageImageLabel.setImage(messageImage);
setImageLabelVisible(messageImage != null);
} else {
// Add in a space for layout purposes but do not
// change the instance variable
String displayedErrorMessage = " " + errorMessage; //$NON-NLS-1$
updateMessage(displayedErrorMessage);
if (!showingError) {
// we were not previously showing an error
showingError = true;
messageImageLabel.setImage(JFaceResources.getImage(DLG_IMG_TITLE_ERROR));
setImageLabelVisible(true);
}
}
layoutForNewMessage(false);
}
/**
* Re-layout the labels for the new message.
*
* @param forceLayout <code>true</code> to force a layout of the shell
*/
protected void layoutForNewMessage(boolean forceLayout) {
int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
// If there are no images then layout as normal
if (errorMessage == null && messageImage == null) {
setImageLabelVisible(false);
setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing);
} else {
messageImageLabel.setVisible(true);
bottomFillerLabel.setVisible(true);
leftFillerLabel.setVisible(true);
/**
* Note that we do not use horizontalSpacing here as when the background of the messages changes there will
* be gaps between the icon label and the message that are the background color of the shell. We add a
* leading space elsewhere to compendate for this.
*/
FormData data = new FormData();
data.left = new FormAttachment(0, H_GAP_IMAGE);
data.top = new FormAttachment(titleLabel, verticalSpacing);
messageImageLabel.setLayoutData(data);
data = new FormData();
data.top = new FormAttachment(messageImageLabel, 0);
data.left = new FormAttachment(0, 0);
data.bottom = new FormAttachment(messageLabel, 0, SWT.BOTTOM);
data.right = new FormAttachment(messageImageLabel, 0, SWT.RIGHT);
bottomFillerLabel.setLayoutData(data);
data = new FormData();
data.top = new FormAttachment(messageImageLabel, 0, SWT.TOP);
data.left = new FormAttachment(0, 0);
data.bottom = new FormAttachment(messageImageLabel, 0, SWT.BOTTOM);
data.right = new FormAttachment(messageImageLabel, 0);
leftFillerLabel.setLayoutData(data);
FormData messageLabelData = new FormData();
messageLabelData.top = new FormAttachment(titleLabel, verticalSpacing);
messageLabelData.right = new FormAttachment(titleImageLabel);
messageLabelData.left = new FormAttachment(messageImageLabel, 0);
messageLabelData.height = messageLabelHeight;
if (titleImageLargest)
messageLabelData.bottom = new FormAttachment(titleImageLabel, 0, SWT.BOTTOM);
messageLabel.setLayoutData(messageLabelData);
}
if (forceLayout) {
getShell().layout();
} else {
// Do not layout before the dialog area has been created
// to avoid incomplete calculations.
if (dialogArea != null)
workArea.getParent().layout(true);
}
Point messageSize = messageLabel.getSize();
int messageLabelUnclippedHeight = messageLabel.computeSize(messageSize.x, SWT.DEFAULT, true).y;
boolean messageLabelClipped = messageLabelUnclippedHeight > messageSize.y;
if (messageLabel.getData() instanceof ToolTip) {
ToolTip toolTip = (ToolTip) messageLabel.getData();
toolTip.hide();
toolTip.deactivate();
messageLabel.setData(null);
}
if (messageLabelClipped) {
ToolTip tooltip = new ToolTip(messageLabel, ToolTip.NO_RECREATE, false) {
@Override
protected Composite createToolTipContentArea(Event event, Composite parent) {
Composite result = new Composite(parent, SWT.NONE);
result.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
result.setLayout(new GridLayout());
Text text = new Text(result, SWT.WRAP);
text.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
text.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
text.setText(messageLabel.getText());
GridData gridData = new GridData();
gridData.widthHint = messageSize.x;
text.setLayoutData(gridData);
Dialog.applyDialogFont(result);
return result;
}
@Override
public Point getLocation(Point tipSize, Event event) {
return messageLabel.getShell().toDisplay(messageLabel.getLocation());
}
};
messageLabel.setData(tooltip);
tooltip.setPopupDelay(0);
tooltip.activate();
}
}
/**
* Set the message text. If the message line currently displays an error, the message is saved and will be
* redisplayed when the error message is set to <code>null</code>.
* <p>
* Shortcut for <code>setMessage(newMessage, IMessageProvider.NONE)</code>
* </p>
* This method should be called after the dialog has been opened as it updates the message label immediately.
*
* @param newMessage the message, or <code>null</code> to clear the message
*/
public void setMessage(String newMessage) {
setMessage(newMessage, IMessageProvider.NONE);
}
/**
* Sets the message for this dialog with an indication of what type of message it is.
* <p>
* The valid message types are one of <code>NONE</code>, <code>INFORMATION</code>,<code>WARNING</code>, or
* <code>ERROR</code>.
* </p>
* <p>
* Note that for backward compatibility, a message of type <code>ERROR</code> is different than an error message
* (set using <code>setErrorMessage</code>). An error message overrides the current message until the error message
* is cleared. This method replaces the current message and does not affect the error message.
* </p>
*
* @param newMessage the message, or <code>null</code> to clear the message
* @param newType the message type
* @since 2.0
*/
public void setMessage(String newMessage, int newType) {
Image newImage = null;
if (newMessage != null) {
switch (newType) {
case IMessageProvider.NONE:
break;
case IMessageProvider.INFORMATION:
newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_INFO);
break;
case IMessageProvider.WARNING:
newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_WARNING);
break;
case IMessageProvider.ERROR:
newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_ERROR);
break;
}
}
showMessage(newMessage, newImage);
}
/**
* Show the new message and image.
*
* @param newMessage
* @param newImage
*/
protected void showMessage(String newMessage, Image newImage) {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=249915
if (newMessage == null)
newMessage = ""; //$NON-NLS-1$
// Any change?
if (message.equals(newMessage) && messageImage == newImage) {
return;
}
message = newMessage;
// Message string to be shown - if there is an image then add in
// a space to the message for layout purposes
String shownMessage = (newImage == null) ? message : " " + message; //$NON-NLS-1$
messageImage = newImage;
if (!showingError) {
// we are not showing an error
updateMessage(shownMessage);
messageImageLabel.setImage(messageImage);
setImageLabelVisible(messageImage != null);
layoutForNewMessage(false);
}
}
/**
* Update the contents of the messageLabel.
*
* @param newMessage the message to use
*/
protected void updateMessage(String newMessage) {
String oldMessage = messageLabel.getText();
messageLabel.setText(newMessage);
// Bug 248410 - This snippet will only work with Windows screen readers.
messageLabel.getAccessible().sendEvent(ACC.EVENT_ATTRIBUTE_CHANGED, null);
messageLabel.getAccessible().sendEvent(ACC.EVENT_TEXT_CHANGED, new Object[] { Integer.valueOf(ACC.TEXT_DELETE),
Integer.valueOf(0), Integer.valueOf(oldMessage.length()), oldMessage });
messageLabel.getAccessible().sendEvent(ACC.EVENT_TEXT_CHANGED, new Object[] { Integer.valueOf(ACC.TEXT_INSERT),
Integer.valueOf(0), Integer.valueOf(newMessage.length()), newMessage });
}
/**
* Sets the title to be shown in the title area of this dialog.
*
* @param newTitle the title show
*/
public void setTitle(String newTitle) {
if (titleLabel == null)
return;
String title = newTitle;
if (title == null)
title = "";//$NON-NLS-1$
titleLabel.setText(title);
}
/**
* Sets the title bar color for this dialog.
*
* @param color the title bar color
*/
public void setTitleAreaColor(RGB color) {
titleAreaRGB = color;
}
/**
* Sets the title image to be shown in the title area of this dialog.
*
* @param newTitleImage the title image to be shown
*/
public void setTitleImage(Image newTitleImage) {
titleAreaImage = newTitleImage;
if (titleImageLabel != null) {
titleImageLabel.setImage(newTitleImage);
determineTitleImageLargest();
Control top;
if (titleImageLargest)
top = titleImageLabel;
else
top = messageLabel;
resetWorkAreaAttachments(top);
}
}
/**
* Make the label used for displaying error images visible depending on boolean.
*
* @param visible If <code>true</code> make the image visible, if not then make it not visible.
*/
protected void setImageLabelVisible(boolean visible) {
messageImageLabel.setVisible(visible);
bottomFillerLabel.setVisible(visible);
leftFillerLabel.setVisible(visible);
}
/**
* Reset the attachment of the workArea to now attach to top as the top control.
*
* @param top
*/
protected void resetWorkAreaAttachments(Control top) {
FormData childData = new FormData();
childData.top = new FormAttachment(top);
childData.right = new FormAttachment(100, 0);
childData.left = new FormAttachment(0, 0);
childData.bottom = new FormAttachment(100, 0);
workArea.setLayoutData(childData);
}
/**
* Returns the current message text for this dialog. This message is displayed in the message line of the dialog
* when the error message is <code>null</code>. If there is a non-null error message, this message is not shown, but
* is stored so that it can be shown in the message line whenever {@link #setErrorMessage(String)} is called with a
* <code>null</code> parameter.
*
* @return the message text, which is never <code>null</code>.
*
* @see #setMessage(String)
* @see #setErrorMessage(String)
*
* @since 3.6
*/
public String getMessage() {
return message;
}
/**
* Returns the current error message being shown in the dialog, or <code>null</code> if there is no error message
* being shown.
*
* @return the error message, which may be <code>null</code>.
*
* @see #setErrorMessage(String)
* @see #setMessage(String)
*
* @since 3.6
*/
public String getErrorMessage() {
return errorMessage;
}
}

View File

@@ -0,0 +1,233 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.formtools;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
/**
* Create a Label and a Checkbox.
*/
public class LabelledCheckbox implements LabelledWidget{
private Button button;
private Label label;
/**
* Create a Label and a Text.
*
* @param composite
* @param string
*/
public LabelledCheckbox(Composite composite, String string) {
createLabelledButton(composite, string, 1, true);
}
/**
* Create a Label and a Text.
*
* @param composite
* @param string
* @param isFill
*/
public LabelledCheckbox(Composite composite, String string, boolean isFill) {
createLabelledButton(composite, string, 1, isFill);
}
/**
* Create a Label and a Button width specific styleField.
*
* @param composite
* @param string
* @param int horizontalSpan
*/
public LabelledCheckbox(Composite composite, String string, int horizontalSpan) {
createLabelledButton(composite, string, horizontalSpan, true);
}
/**
* Create a Label and a Button width specific styleField.
*
* @param composite
* @param string
* @param int horizontalSpan
* @param styleField
*/
public LabelledCheckbox(Composite composite, String string, int horizontalSpan, int styleField) {
createLabelledButton(composite, string, horizontalSpan, true);
}
/**
* Create a Label and a Button width Gridata option FILL.
*
* @param composite
* @param string
* @param styleField
* @param int horizontalSpan
* @param isFill
*/
public LabelledCheckbox(Composite composite, String string, int horizontalSpan, boolean isFill) {
createLabelledButton(composite, string, horizontalSpan, isFill);
}
/**
* Create a Label and a Button width specific styleField and Gridata option FILL.
*
* @param composite
* @param string
* @param int horizontalSpan
* @param styleField
* @param isFill
*/
public LabelledCheckbox(Composite composite, String string, int horizontalSpan, int styleField, boolean isFill) {
createLabelledButton(composite, string, horizontalSpan, isFill);
}
/**
* Create a Label and a Button width specific styleField and Gridata option FILL.
*
* @param composite
* @param string
* @param int horizontalSpan
* @param styleField
* @param isFill
*/
private void createLabelledButton(Composite composite, String string, int horizontalSpan, boolean isFill) {
label = new Label(composite, SWT.LEFT);
if (string != null) {
label.setText(string);
}
button = new Button(composite, SWT.CHECK);
int gridDataStyle = SWT.NONE;
if (isFill) {
gridDataStyle = SWT.FILL;
}
GridData gridData = new GridData(gridDataStyle, SWT.CENTER, true, false);
gridData.horizontalSpan = horizontalSpan;
button.setLayoutData(gridData);
}
/**
* setToolTipText to Text Object.
*
* @param string
*/
public void setToolTipText(final String string) {
button.setToolTipText(string);
}
/**
* is Checkbox Selected.
*
* @return boolean
*/
public Boolean isSelected() {
return button.getSelection();
}
/**
* setText to Label Object.
*
* @param string
*/
public void setLabelText(final String string) {
if (string != null) {
label.setText(string);
} else {
label.setText(""); //$NON-NLS-1$
}
}
/**
* setEditable to Button and Label Object.
*
* @param boolean
*/
public void forceFocus() {
setEnabled(true);
button.forceFocus();
}
/**
* setEnabled to Button and Label Object.
*
* @param boolean
*/
public void setEnabled(final boolean visible) {
button.setEnabled(visible);
label.setEnabled(visible);
}
/**
* setVisible to Button and Label Object.
*
* @param boolean
*/
public void setVisible(final boolean visible) {
button.setVisible(visible);
label.setVisible(visible);
}
public void setVisible(final boolean visible, final boolean exclude) {
Control[] controls = new Control[] { label, button };
for (Control control : controls) {
control.setVisible(visible);
if (control.getLayoutData() instanceof GridData) {
((GridData) control.getLayoutData()).exclude = exclude;
}
}
}
/**
* addListener to Button Object.
*
* @param eventType
* @param listener
*/
public void addListener(int eventType, Listener listener) {
button.addListener(eventType, listener);
}
/**
* addFocusListener to Button Object.
*
* @param listener
*/
public void addFocusListener(FocusListener listener) {
button.addFocusListener(listener);
}
@Override
public void set(String value) {
button.setSelection(Boolean.parseBoolean(value));
}
public void addSelectionListener(SelectionListener listener) {
button.addSelectionListener(listener);
}
public boolean getSelection() {
return button.getSelection();
}
}

View File

@@ -33,7 +33,7 @@ import org.eclipse.swt.widgets.Text;
* $Id: LabelledText.java 7038 2007-11-15 14:05:48Z plegall $
*
*/
public class LabelledText {
public class LabelledText implements LabelledWidget{
private Text text;
@@ -297,6 +297,16 @@ public class LabelledText {
label.setVisible(visible);
}
public void setVisible(final boolean visible, final boolean exclude) {
Control[] controls = new Control[] { label, text };
for (Control control : controls) {
control.setVisible(visible);
if (control.getLayoutData() instanceof GridData) {
((GridData) control.getLayoutData()).exclude = exclude;
}
}
}
public boolean isVisiable() {
return text.isVisible() && label.isVisible();
}
@@ -472,4 +482,9 @@ public class LabelledText {
text.getParent().layout();
}
@Override
public void set(String value) {
this.setText(value);
}
}

View File

@@ -0,0 +1,9 @@
package org.talend.commons.ui.swt.formtools;
public interface LabelledWidget {
// Set the value of the widget
public void set(String value);
public void setVisible(boolean visible, boolean exclude);
}

View File

@@ -0,0 +1,28 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.wizard;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendWizard {
/**
* DOC cmeng TalendWizard constructor comment.
*/
public TalendWizard() {
// TODO Auto-generated constructor stub
}
}

View File

@@ -0,0 +1,55 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.wizard;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendWizardDialog extends Dialog {
public TalendWizardDialog(Shell parentShell) {
super(parentShell);
}
@Override
protected Control createContents(Composite parent) {
return super.createContents(parent);
}
public static void main(String[] args) throws Exception {
int sleep = 1000 / 60;
double time = 1.0 / 50;
int total = 0;
for (int i = 1; i <= 25; i++) {
double curTime = time * i;
double value = 1.0 - Math.sqrt(1 - curTime * curTime);
int lengh = (int) (250 * value);
total += lengh;
System.out.println(i + "\t:" + lengh + ", total: " + total);
}
for (int i = 25; i <= 50; i++) {
double curTime = 1 - time * i;
double value = 1.0 - Math.sqrt(1 - curTime * curTime);
int lengh = (int) (250 * value);
total += lengh;
System.out.println(i + "\t:" + lengh + ", total: " + total);
}
}
}

View File

@@ -0,0 +1,28 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.ui.swt.wizard;
/**
* DOC cmeng class global comment. Detailled comment
*/
public class TalendWizardPage {
/**
* DOC cmeng TalendWizardPage constructor comment.
*/
public TalendWizardPage() {
// TODO Auto-generated constructor stub
}
}

View File

@@ -113,10 +113,6 @@ public class SimpleHtmlFigure extends Figure {
add(horizContainer);
}
public void setText(final String text) {
setText(text, false);
}
/**
* Display some HTML text..
*
@@ -124,7 +120,7 @@ public class SimpleHtmlFigure extends Figure {
* @param isSysDefaultColor true if use system default font color
*/
@SuppressWarnings("unchecked")
public void setText(final String text, boolean isSysDefaultColor) {
public void setText(final String text) {
if (this.text.equals(text)) {
// if the text is the same, there's nothing to change, so return.
@@ -142,16 +138,14 @@ public class SimpleHtmlFigure extends Figure {
newHorizContainer();
List<Color> colorStack = new ArrayList<Color>();
colorStack.add(ColorConstants.black);
// for some dark theme system like Ubuntu,if true use default system font color
buildFigures(text, SWT.None, colorStack, isSysDefaultColor);
buildFigures(text, SWT.None, colorStack);
setPreferredSize(computePreferedSize());
this.text = text;
}
private void buildFigures(final String newText, final int fontCode, final List<Color> colorStack, boolean isSysDefaultColor) {
private void buildFigures(final String newText, final int fontCode, final List<Color> colorStack) {
// Optimize
if (newText == null || newText.length() == 0) {
return;
@@ -167,7 +161,7 @@ public class SimpleHtmlFigure extends Figure {
if (isFirstIndex(boldIndex, italicIndex, fontIndex, brIndex)) {
if (boldIndex > 0) {
String begText = newText.substring(0, boldIndex);
buildFigures(begText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(begText, newFontCode, colorStack);
}
newFontCode = newFontCode | SWT.BOLD;
@@ -176,17 +170,17 @@ public class SimpleHtmlFigure extends Figure {
if (endBoldIndex != -1) {
String boldText = newText.substring(boldIndex + TAG_BOLD_BEG.length(), endBoldIndex);
endText = newText.substring(endBoldIndex + TAG_BOLD_END.length());
buildFigures(boldText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(boldText, newFontCode, colorStack);
} else {
endText = newText.substring(boldIndex + TAG_BOLD_BEG.length());
}
newFontCode = newFontCode ^ SWT.BOLD;
buildFigures(endText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(endText, newFontCode, colorStack);
} else if (isFirstIndex(italicIndex, boldIndex, fontIndex, brIndex)) {
if (italicIndex > 0) {
String begText = newText.substring(0, italicIndex);
buildFigures(begText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(begText, newFontCode, colorStack);
}
newFontCode = newFontCode | SWT.ITALIC;
@@ -195,52 +189,59 @@ public class SimpleHtmlFigure extends Figure {
if (endItalicIndex != -1) {
String italicText = newText.substring(italicIndex + TAG_ITALIC_BEG.length(), endItalicIndex);
endText = newText.substring(endItalicIndex + TAG_ITALIC_END.length());
buildFigures(italicText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(italicText, newFontCode, colorStack);
} else {
endText = newText.substring(italicIndex + TAG_ITALIC_BEG.length());
}
newFontCode = newFontCode ^ SWT.ITALIC;
buildFigures(endText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(endText, newFontCode, colorStack);
} else if (isFirstIndex(fontIndex, boldIndex, italicIndex, brIndex)) {
if (fontIndex > 0) {
String begText = newText.substring(0, fontIndex);
buildFigures(begText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(begText, newFontCode, colorStack);
}
int colorIndex = newText.indexOf(TAG_FONT_COLOR_BEG_1);
Color color;
Color color = null;
int colorIndex2 = newText.indexOf(TAG_FONT_BEG_2);
if (colorIndex2 != -1) {
String colorCode = newText.substring(colorIndex + TAG_FONT_COLOR_BEG_1.length(), colorIndex2);
color = getColor(colorCode);
} else {
} else if (colorStack.size() > 0){
color = colorStack.get(colorStack.size() - 1);
}
colorStack.add(color);
boolean isPushed = false;
if (color != null) {
colorStack.add(color);
isPushed = true;
}
String endText;
int endColorIndex = newText.indexOf(TAG_FONT_END);
if (endColorIndex != -1) {
String colorText = newText.substring(colorIndex2 + TAG_FONT_BEG_2.length(), endColorIndex);
endText = newText.substring(endColorIndex + TAG_FONT_END.length());
buildFigures(colorText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(colorText, newFontCode, colorStack);
} else {
endText = newText.substring(colorIndex2 + TAG_FONT_BEG_2.length());
}
colorStack.remove(colorStack.size() - 1);
buildFigures(endText, newFontCode, colorStack, isSysDefaultColor);
if (isPushed) {
colorStack.remove(colorStack.size() - 1);
}
buildFigures(endText, newFontCode, colorStack);
} else if (isFirstIndex(brIndex, boldIndex, italicIndex, fontIndex)) {
if (brIndex > 0) {
String begText = newText.substring(0, brIndex);
buildFigures(begText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(begText, newFontCode, colorStack);
}
newHorizContainer();
String endText = newText.substring(brIndex + TAG_BR.length());
buildFigures(endText, newFontCode, colorStack, isSysDefaultColor);
buildFigures(endText, newFontCode, colorStack);
} else {
Font fontToUse;
Label label = new Label();
@@ -259,7 +260,7 @@ public class SimpleHtmlFigure extends Figure {
}
}
label.setFont(fontToUse);
if (!isSysDefaultColor) {
if (colorStack.size() > 0) {
label.setForegroundColor(colorStack.get(colorStack.size() - 1));
}
horizContainer.add(label);

View File

@@ -93,8 +93,8 @@
<RepositoryComponent
name="EXASOL"
withSchema="true"
input="tEXAInput"
output="tEXAOutput">
input="tExasolInput"
output="tExasolOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>

View File

@@ -168,7 +168,8 @@ ProjectRepositoryNode.sapFunctions.inputSchema=Input
ProjectRepositoryNode.sapFunctions.outputSchema=Output
ProjectRepositoryNode.sapIDocs=SAP iDocs
ProjectRepositoryNode.sapTables=SAP Tables
ProjectRepositoryNode.sapBWAdvancedDataStoreObject=SAP ADSO
ProjectRepositoryNode.sapBWAdvancedDataStoreObject.input=SAP ADSO (Input)
ProjectRepositoryNode.sapBWAdvancedDataStoreObject.output=SAP ADSO (Output)
ProjectRepositoryNode.sapBWDataSource=SAP DataSource
ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube

View File

@@ -91,7 +91,7 @@ PasteAction.thisText.paste=Coller
DeleteAction.action.foreverTitle=Supprimer d\u00E9finitivement
DeleteAction.action.logicalTitle=Supprimer
DeleteAction.action.logicalToolTipText=Placer l'\u00E9l\u00E9ment dans la Corbeille
DeleteAction.deleteJobAssignedToOneService= est attribu\u00E9 \u00E0 une op\u00E9ration d'un service.\nSupprimer ce Job ?
DeleteAction.deleteJobAssignedToOneService= est assign\u00E9 \u00E0 une op\u00E9ration d'un Service.\nSupprimer ce Job ?
DeleteAction.deleteSomeJobsAssignedToServices= sont assign\u00E9s \u00E0 des op\u00E9rations de Services.\nSupprimer ces Jobs ?
DeleteAction.dialog.message0=sera supprim\u00E9 d\u00E9finitivement (r\u00E9cup\u00E9ration impossible).
DeleteAction.dialog.message1=Les \u00E9l\u00E9ments s\u00E9lectionn\u00E9s seront supprim\u00E9s d\u00E9finitivement (pas de r\u00E9cup\u00E9ration possible).

View File

@@ -91,15 +91,15 @@ PasteAction.thisText.paste=\u8CBC\u308A\u4ED8\u3051
DeleteAction.action.foreverTitle=\u5B8C\u5168\u306B\u524A\u9664
DeleteAction.action.logicalTitle=\u524A\u9664
DeleteAction.action.logicalToolTipText=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u3054\u307F\u7BB1\u306B\u5165\u308C\u308B
DeleteAction.deleteJobAssignedToOneService= \u306F\u30B5\u30FC\u30D3\u30B9\u306E\u64CD\u4F5C\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u307E\u3059!\n\u3053\u306E\u30B8\u30E7\u30D6\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
DeleteAction.deleteSomeJobsAssignedToServices= \u306F\u4E00\u90E8\u306E\u30B5\u30FC\u30D3\u30B9\u306E\u4E00\u90E8\u306E\u64CD\u4F5C\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u307E\u3059!\n\u3053\u308C\u3089\u306E\u30B8\u30E7\u30D6\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
DeleteAction.dialog.message0=\u3054\u307F\u7BB1\u3092\u7A7A\u306B\u3059\u308B(\u5FA9\u65E7\u3067\u304D\u307E\u305B\u3093)
DeleteAction.deleteJobAssignedToOneService= 1\u3064\u306E\u30B5\u30FC\u30D3\u30B9\u306E1\u3064\u306E\u64CD\u4F5C\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u307E\u3057\u305F!\n\u3053\u306E\u30B8\u30E7\u30D6\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
DeleteAction.deleteSomeJobsAssignedToServices= \u4E00\u90E8\u306E\u30B5\u30FC\u30D3\u30B9\u306E\u4E00\u90E8\u306E\u64CD\u4F5C\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u307E\u3057\u305F!\n\u3053\u308C\u3089\u306E\u30B8\u30E7\u30D6\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
DeleteAction.dialog.message0=\u3054\u307F\u7BB1\u3092\u7A7A\u306B\u3059\u308B(\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093)
DeleteAction.dialog.message1=\u9078\u629E\u3057\u305F\u30A8\u30EC\u30E1\u30F3\u30C8\u306F\u5B8C\u5168\u306B\u524A\u9664\u3055\u308C\u307E\u3059\u3002
DeleteAction.dialog.message2=\u7D9A\u884C\u3057\u307E\u3059\u304B?
DeleteAction.dialog.messageAllElements=\u30A8\u30EC\u30E1\u30F3\u30C8\u306F\u3059\u3079\u3066\u5B8C\u5168\u306B\u524A\u9664\u3055\u308C\u307E\u3059(\u53D6\u5F97\u4E0D\u53EF\u80FD)\u3002
DeleteAction.dialog.title=\u5B8C\u5168\u306B\u524A\u9664
DeleteAction.error.lockedOrOpenedObject.newMessage={0}\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\n\u3053\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u958B\u3044\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u524A\u9664\u524D\u306B\u9589\u3058\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
DeleteAction.error.testCaseLockedOrOpenedObject.newMessage={0}\u306E\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\n\u3053\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u958B\u3044\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u524A\u9664\u524D\u306B\u9589\u3058\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
DeleteAction.error.lockedOrOpenedObject.newMessage={0}\u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\n \u3053\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304C\u958B\u3044\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u524A\u9664\u3059\u308B\u524D\u306B\u9589\u3058\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
DeleteAction.error.testCaseLockedOrOpenedObject.newMessage={0}\u306E\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9\u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\n \u3053\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304C\u958B\u3044\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u524A\u9664\u3059\u308B\u524D\u306B\u9589\u3058\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
DeleteAction.error.title=\u524A\u9664\u7981\u6B62
DeleteAction.warning.message1=\u30D5\u30A9\u30EB\u30C0\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u958B\u304B\u308C\u3066\u3044\u308B\u305F\u3081\u30D5\u30A9\u30EB\u30C0\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\u3059\u3079\u3066\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u9589\u3058\u305F\u72B6\u614B\u3067\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DeleteAction.warning.title=\u8B66\u544A
@@ -132,7 +132,7 @@ ContextReferenceDialog.Recycle=\u3054\u307F\u7BB1\u5185
ContextReferenceDialog.ReferenceJob=\u53C2\u7167\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8
ContextReferenceDialog.Types=\u30BF\u30A4\u30D7
ContextReferenceDialog.NodeTypeTip=\u30CE\u30FC\u30C9\u53C2\u7167\u306E\u30BF\u30A4\u30D7
ContextReferenceDialog.Messages=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8({0} {1})\u306F\n\u304B\u3089\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059
ContextReferenceDialog.Messages=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8({0} {1})\u306E\u53C2\u7167\u5143:\n
ContextReferenceDialog.kindMessages={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u6B21\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u305F\u3044\u5834\u5408\u306F\u3001\u30B8\u30E7\u30D6\u304C\u3082\u3046\u4E00\u5EA6\u958B\u304B\u308C\u305F\u6642\u306B\u3001\u30B8\u30E7\u30D6\u3067\u4F7F\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u7D44\u307F\u8FBC\u307F\u306B\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
ContextReferenceDialog.kindMessages1={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u304C\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
CopyToGenericSchemaHelper.cannotGenarateItem=\u8CBC\u4ED8\u3051\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u30E9\u30D9\u30EB\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3002
@@ -196,7 +196,7 @@ CreateFolderAction.action.toolTipText=\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C
RenameFolderAction.action.title=\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u3092\u5909\u66F4
RenameFolderAction.action.toolTipText=\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u3092\u5909\u66F4
RenameFolderAction.description=\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u3092\u5909\u66F4
RenameFolderAction.warning.editorOpen.message=\u73FE\u5728\u3001\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u542B\u307E\u308C\u308B\u30A2\u30A4\u30C6\u30E0({0})\u304C\u958B\u304B\u308C\u3066\u3044\u308B\u305F\u3081\u3001"{1}" \u30D5\u30A9\u30EB\u30C0\u30FC\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002\n\u9589\u3058\u3066\u3001\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
RenameFolderAction.warning.editorOpen.message=\u73FE\u5728\u3001\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u542B\u307E\u308C\u3066\u3044\u308B\u30A2\u30A4\u30C6\u30E0({0})\u304C\u958B\u304B\u308C\u3066\u3044\u308B\u305F\u3081\u3001"{1}"\u30D5\u30A9\u30EB\u30C0\u30FC\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002\n\u9589\u3058\u3066\u304B\u3089\u3084\u308A\u76F4\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002
RenameFolderAction.warning.editorOpen.title=\u4F7F\u7528\u3067\u304D\u306A\u3044\u30A2\u30AF\u30B7\u30E7\u30F3
RenameFolderAction.warning.cannotFind.message=\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002\u79FB\u52D5\u3055\u308C\u305F\u304B\u3001\u524A\u9664\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u66F4\u65B0\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u3001\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\u3002
RenameFolderAction.warning.cannotFind.title=\u4F7F\u7528\u3067\u304D\u306A\u3044\u30A2\u30AF\u30B7\u30E7\u30F3

View File

@@ -91,15 +91,15 @@ PasteAction.thisText.paste=\u7C98\u8D34
DeleteAction.action.foreverTitle=\u6C38\u4E45\u5220\u9664
DeleteAction.action.logicalTitle=\u5220\u9664
DeleteAction.action.logicalToolTipText=\u5C06\u5BF9\u8C61\u653E\u5165\u56DE\u6536\u7AD9
DeleteAction.deleteJobAssignedToOneService= \u88AB\u5206\u914D\u7ED9\u670D\u52A1\u7684\u4E00\u4E2A\u64CD\u4F5C\uFF01\n\u662F\u5426\u8981\u5220\u9664\u6B64\u4F5C\u4E1A\uFF1F
DeleteAction.deleteSomeJobsAssignedToServices= \u88AB\u5206\u914D\u7ED9\u4E00\u4E9B\u670D\u52A1\u7684\u4E00\u4E9B\u64CD\u4F5C\uFF01\n\u662F\u5426\u8981\u5220\u9664\u8FD9\u4E9B\u4F5C\u4E1A\uFF1F
DeleteAction.deleteJobAssignedToOneService= \u88AB\u5206\u914D\u7ED9\u4E00\u4E2A\u670D\u52A1\u7684\u4E00\u4E2A\u64CD\u4F5C\uFF01\n\u662F\u5426\u8981\u5220\u9664\u6B64\u4F5C\u4E1A\uFF1F
DeleteAction.deleteSomeJobsAssignedToServices= \u88AB\u5206\u914D\u7ED9\u4E00\u4E9B\u670D\u52A1\u7684\u4E00\u4E9B\u64CD\u4F5C\n\u662F\u5426\u8981\u5220\u9664\u8FD9\u4E9B\u4F5C\u4E1A\uFF1F
DeleteAction.dialog.message0=\u5C06\u6C38\u4E45\u5220\u9664 (\u4E0D\u53EF\u6062\u590D)\u3002
DeleteAction.dialog.message1=\u6240\u9009\u5143\u7D20\u5C06\u6C38\u4E45\u5220\u9664 (\u65E0\u6CD5\u6062\u590D)\u3002
DeleteAction.dialog.message2=\u4ECD\u7136\u7EE7\u7EED\uFF1F
DeleteAction.dialog.messageAllElements=\u6240\u6709\u5143\u7D20\u90FD\u5C06\u6C38\u4E45\u5220\u9664 (\u65E0\u6CD5\u6062\u590D)\u3002
DeleteAction.dialog.title=\u6C38\u4E45\u5220\u9664
DeleteAction.error.lockedOrOpenedObject.newMessage={0} \u5DF2\u9501\u5B9A\uFF0C\u56E0\u6B64\u60A8\u4E0D\u80FD\u5220\u9664\u5B83\u3002\n\u5982\u679C\u6B64\u5BF9\u8C61\u6253\u5F00\uFF0C\u60A8\u5FC5\u987B\u5C06\u5176\u5173\u95ED\u4E4B\u540E\u624D\u80FD\u5220\u9664\u3002
DeleteAction.error.testCaseLockedOrOpenedObject.newMessage=\u6D4B\u8BD5\u7528\u4F8B{0}\u88AB\u9501\u5B9A\uFF0C\u56E0\u6B64\u60A8\u65E0\u6CD5\u5220\u9664\u5B83\u3002\n\u5982\u679C\u6B64\u5BF9\u8C61\u88AB\u6253\u5F00\uFF0C\u60A8\u5FC5\u987B\u5728\u5220\u9664\u4E4B\u524D\u5173\u95ED\u5B83\u3002
DeleteAction.error.lockedOrOpenedObject.newMessage={0} \u5DF2\u88AB\u9501\u5B9A\uFF0C\u56E0\u6B64\u65E0\u6CD5\u5220\u9664\u3002\n \u5982\u679C\u6B64\u5BF9\u8C61\u6253\u5F00\uFF0C\u60A8\u5FC5\u987B\u5C06\u5176\u5173\u95ED\u4E4B\u540E\u624D\u80FD\u5220\u9664\u3002
DeleteAction.error.testCaseLockedOrOpenedObject.newMessage={0} \u7684\u6D4B\u8BD5\u7528\u4F8B\u5DF2\u88AB\u9501\u5B9A\uFF0C\u56E0\u6B64\u65E0\u6CD5\u5220\u9664\u3002\n \u5982\u679C\u6B64\u5BF9\u8C61\u6253\u5F00\uFF0C\u60A8\u5FC5\u987B\u5C06\u5176\u5173\u95ED\u4E4B\u540E\u624D\u80FD\u5220\u9664\u3002
DeleteAction.error.title=\u7981\u6B62\u5220\u9664
DeleteAction.warning.message1=\u65E0\u6CD5\u5220\u9664\u8BE5\u6587\u4EF6\u5939\uFF0C\u56E0\u4E3A\u5176\u4E2D\u81F3\u5C11\u6709\u4E00\u4E2A\u9879\u76EE\u5F53\u524D\u5904\u4E8E\u6253\u5F00\u72B6\u6001\u3002\u5173\u95ED\u6240\u6709\u6253\u5F00\u7684\u9879\u76EE\u5E76\u91CD\u8BD5\u3002
DeleteAction.warning.title=\u8B66\u544A
@@ -117,7 +117,7 @@ DuplicateAction.SameAsProjectname=\u540D\u79F0\u4E0E\u5DE5\u7A0B\u540D\u79F0\u76
EmptyRecycleBinAction.action.title=\u6E05\u7A7A\u56DE\u6536\u7AD9
EmptyRecycleBinAction.action.toolTipText=\u6E05\u7A7A\u56DE\u6536\u7AD9
EmptyRecycleBinAction.dialog.title=\u6E05\u7A7A\u56DE\u6536\u7AD9
EmptyRecycleBinAction.dialog.allDependencies=\u4F60\u4E0D\u80FD\u6E05\u7A7A\u56DE\u6536\u7AD9\u3002\nData Profiler Perspective \u4EE5\u6765\u5176\u4E2D\u4E00\u4E2A\u9879\u76EE\uFF0C\u8BF7\u4E0D\u8981\u5220\u9664\u5B83\u3002
EmptyRecycleBinAction.dialog.allDependencies=\u60A8\u4E0D\u80FD\u6E05\u7A7A\u56DE\u6536\u7AD9\u3002\nData Profiler \u900F\u89C6\u56FE\u4F9D\u8D56\u5176\u4E2D\u4E00\u4E2A\u9879\u76EE\uFF0C\u8BF7\u4E0D\u8981\u5220\u9664\u5B83\u3002
PasteObjectAction.error.labelAlreadyExists=\u6B64\u8DEF\u5F84\u4E0B\u5DF2\u5B58\u5728\u5E26\u6709\u8BE5\u6807\u7B7E\u7684\u5BF9\u8C61
PasteObjectAction.error.title=\u65E0\u6CD5\u7C98\u8D34
JobletReferenceDialog.DeletedInfor=\u5728\u56DE\u6536\u7AD9

View File

@@ -74,6 +74,7 @@ import org.talend.core.model.properties.ValidationRulesConnectionItem;
import org.talend.core.model.repository.DynaEnum;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.Folder;
import org.talend.core.model.repository.GITConstant;
import org.talend.core.model.repository.IRepositoryContentHandler;
import org.talend.core.model.repository.IRepositoryObject;
import org.talend.core.model.repository.IRepositoryPrefConstants;
@@ -82,7 +83,6 @@ import org.talend.core.model.repository.RepositoryContentManager;
import org.talend.core.model.repository.RepositoryManager;
import org.talend.core.model.repository.RepositoryNodeProviderRegistryReader;
import org.talend.core.model.repository.RepositoryViewObject;
import org.talend.core.model.repository.GITConstant;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject;
import org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject;
@@ -368,8 +368,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
}
String[] contentRight = contentType.getUserRight();
if (contentRight != null && contentRight.length > 0 && userRights != null && userRights.length > 0) {
for (int i = 0; i < contentRight.length; i++) {
if (!ArrayUtils.contains(userRights, contentRight[i])) {
for (String element : contentRight) {
if (!ArrayUtils.contains(userRights, element)) {
removeNode(this, node);
}
}
@@ -1731,22 +1731,25 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
node.getChildren().add(iDocNode);
createSAPIDocNodes(repObj, metadataConnection, iDocNode);
// 4. BW AdvancedDataStoreObject:
createSAPBWAdvancedDataStoreObjectNodes(repObj, metadataConnection, node, validationRules);
// 4. BW AdvancedDataStoreObject Input:
createSAPBWAdvancedDataStoreObjectInputNodes(repObj, metadataConnection, node, validationRules);
// 5. BW DataSource:
// 5. BW AdvancedDataStoreObject Output:
createSAPBWAdvancedDataStoreObjectOutputNodes(repObj, metadataConnection, node, validationRules);
// 6. BW DataSource:
createSAPBWDataSourceNodes(repObj, metadataConnection, node, validationRules);
// 6. BW DataStoreObject:
// 7. BW DataStoreObject:
createSAPBWDataStoreObjectNodes(repObj, metadataConnection, node, validationRules);
// 7. BW InfoCube:
// 8. BW InfoCube:
createSAPBWInfoCubeNodes(repObj, metadataConnection, node, validationRules);
// 8. BW InfoObject:
// 9. BW InfoObject:
createSAPBWInfoObjectNodes(repObj, metadataConnection, node, validationRules);
// 8. BW Business Content Extractor:
// 10. BW Business Content Extractor:
createSAPContentExtractorNodes(repObj, metadataConnection, node, validationRules);
} else if (metadataConnection instanceof SalesforceSchemaConnection) {
createSalesforceModuleNodes(repObj, metadataConnection, node, validationRules);
@@ -1789,12 +1792,12 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
}
private void createSAPBWAdvancedDataStoreObjectNodes(IRepositoryViewObject repObj, Connection metadataConnection,
private void createSAPBWAdvancedDataStoreObjectInputNodes(IRepositoryViewObject repObj, Connection metadataConnection,
RepositoryNode node, List<IRepositoryViewObject> validationRules) {
StableRepositoryNode container = new StableRepositoryNode(node,
Messages.getString("ProjectRepositoryNode.sapBWAdvancedDataStoreObject"), ECoreImage.FOLDER_CLOSE_ICON); //$NON-NLS-1$
Messages.getString("ProjectRepositoryNode.sapBWAdvancedDataStoreObject.input"), ECoreImage.FOLDER_CLOSE_ICON); //$NON-NLS-1$
container.setChildrenObjectType(ERepositoryObjectType.METADATA_CON_TABLE);
container.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT);
container.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_INPUT);
IRepositoryNode cacheNode = nodeCache.getCache(container);
if (cacheNode != null && cacheNode instanceof StableRepositoryNode) {
@@ -1806,8 +1809,38 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
node.getChildren().add(container);
EList<SAPBWTable> advancedDataStoreObjects = ((SAPConnection) metadataConnection).getBWAdvancedDataStoreObjects();
EList tables = new BasicEList();
tables.addAll(advancedDataStoreObjects);
EList<SAPBWTable> tables = new BasicEList<SAPBWTable>();
for (SAPBWTable bwTable : advancedDataStoreObjects) {
if (!SAPBWTableHelper.ADSO_OUTPUT.equals(bwTable.getCategory())) {
tables.add(bwTable);
}
}
createTables(container, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
}
private void createSAPBWAdvancedDataStoreObjectOutputNodes(IRepositoryViewObject repObj, Connection metadataConnection,
RepositoryNode node, List<IRepositoryViewObject> validationRules) {
StableRepositoryNode container = new StableRepositoryNode(node,
Messages.getString("ProjectRepositoryNode.sapBWAdvancedDataStoreObject.output"), ECoreImage.FOLDER_CLOSE_ICON); //$NON-NLS-1$
container.setChildrenObjectType(ERepositoryObjectType.METADATA_CON_TABLE);
container.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_OUTPUT);
IRepositoryNode cacheNode = nodeCache.getCache(container);
if (cacheNode != null && cacheNode instanceof StableRepositoryNode) {
container = (StableRepositoryNode) cacheNode;
container.getChildren().clear();
} else {
nodeCache.addCache(container, true);
}
node.getChildren().add(container);
EList<SAPBWTable> advancedDataStoreObjects = ((SAPConnection) metadataConnection).getBWAdvancedDataStoreObjects();
EList<SAPBWTable> tables = new BasicEList<SAPBWTable>();
for (SAPBWTable bwTable : advancedDataStoreObjects) {
if (SAPBWTableHelper.ADSO_OUTPUT.equals(bwTable.getCategory())) {
tables.add(bwTable);
}
}
createTables(container, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
}
@@ -1937,8 +1970,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
private void createSalesforceModuleNodes(IRepositoryViewObject rebObj, Connection metadataConnection,
RepositoryNode connectionNode, List<IRepositoryViewObject> validationRules) {
EList modules = ((SalesforceSchemaConnection) metadataConnection).getModules();
for (int i = 0; i < modules.size(); i++) {
SalesforceModuleUnit unit = (SalesforceModuleUnit) modules.get(i);
for (Object module : modules) {
SalesforceModuleUnit unit = (SalesforceModuleUnit) module;
RepositoryNode tableNode = createSalesforceNode(rebObj, connectionNode, unit);
createTables(tableNode, rebObj, unit.getTables(), ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
@@ -1961,8 +1994,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
if (functions == null || functions.isEmpty()) {
return;
}
for (int i = 0; i < functions.size(); i++) {
SAPFunctionUnit unit = (SAPFunctionUnit) functions.get(i);
for (Object function : functions) {
SAPFunctionUnit unit = (SAPFunctionUnit) function;
RepositoryNode tableNode = createSAPNode(rebObj, functionNode, unit);
// create input and output container
@@ -2002,8 +2035,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
if (iDocs == null || iDocs.isEmpty()) {
return;
}
for (int i = 0; i < iDocs.size(); i++) {
SAPIDocUnit unit = (SAPIDocUnit) iDocs.get(i);
for (Object iDoc : iDocs) {
SAPIDocUnit unit = (SAPIDocUnit) iDoc;
RepositoryNode tableNode = createSAPNode(rebObj, iDocNode, unit);
if (SubItemHelper.isDeleted(unit)) {
// recBin.getChildren().add(tableNode);

View File

@@ -155,6 +155,7 @@ import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.runtime.util.JavaHomeUtil;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.service.ICoreUIService;
import org.talend.core.service.IDetectCVEService;
import org.talend.core.utils.CodesJarResourceCache;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.TableHelper;
@@ -2607,6 +2608,14 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
dynamicDistrManager.reset(null);
}
}
// clear detect CVE cache
if (GlobalServiceRegister.getDefault().isServiceRegistered(IDetectCVEService.class)) {
IDetectCVEService detectCVESvc = GlobalServiceRegister.getDefault().getService(IDetectCVEService.class);
if (detectCVESvc != null) {
detectCVESvc.clearCache();
}
}
CodesJarResourceCache.reset();

View File

@@ -52,6 +52,7 @@ Export-Package: org.talend.analysistask,
org.talend.core.model.xml,
org.talend.core.nexus,
org.talend.core.pendo,
org.talend.core.pendo.properties,
org.talend.core.prefs,
org.talend.core.repository,
org.talend.core.runtime,

View File

@@ -0,0 +1,163 @@
<?xml version="1.0"?>
<mapping>
<dbms product="Cassandra" id="cassandra40_datastax_id" label="Mapping Cassandra v4"
default="true">
<dbTypes>
<dbType type="ascii" ignorePre="true" />
<dbType type="bigint" ignorePre="true" />
<dbType type="blob" ignorePre="true" />
<dbType type="boolean" ignorePre="true" />
<dbType type="counter" ignorePre="true" />
<dbType type="date" ignorePre="true" />
<dbType type="decimal" ignorePre="true" />
<dbType type="double" ignorePre="true" />
<dbType type="float" ignorePre="true" />
<dbType type="inet" ignorePre="true" />
<dbType type="int" ignorePre="true" />
<dbType type="list" ignorePre="true" />
<dbType type="map" ignorePre="true" />
<dbType type="set" ignorePre="true" />
<dbType type="smallint" ignorePre="true" />
<dbType type="text" ignorePre="true" />
<dbType type="time" ignorePre="true" />
<dbType type="timestamp" ignorePre="true" />
<dbType type="timeuuid" ignorePre="true" />
<dbType type="tinyint" ignorePre="true" />
<dbType type="uuid" ignorePre="true" />
<dbType type="varchar" ignorePre="true" />
<dbType type="varint" ignorePre="true" />
</dbTypes>
<language name="java">
<talendToDbTypes>
<talendType type="id_List">
<dbType type="list" default="true"/>
</talendType>
<talendType type="id_Boolean">
<dbType type="boolean" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="tinyint" default="true" />
</talendType>
<talendType type="id_byte[]">
<dbType type="blob" default="true" />
</talendType>
<talendType type="id_Character">
<dbType type="ascii" default="true" />
<dbType type="text" />
<dbType type="varchar" />
</talendType>
<talendType type="id_Date">
<dbType type="timestamp" default="true" />
<dbType type="time" />
<dbType type="date" />
</talendType>
<talendType type="id_BigDecimal">
<dbType type="decimal" default="true" />
</talendType>
<talendType type="id_Double">
<dbType type="double" default="true" />
</talendType>
<talendType type="id_Float">
<dbType type="float" default="true" />
</talendType>
<talendType type="id_Integer">
<dbType type="int" default="true" />
</talendType>
<talendType type="id_Long">
<dbType type="bigint" default="true" />
<dbType type="counter" />
<dbType type="time" />
</talendType>
<talendType type="id_Object">
<dbType type="varint" default="true" />
<dbType type="inet" />
<dbType type="map" />
<dbType type="set" />
</talendType>
<talendType type="id_Short">
<dbType type="smallint" default="true" />
</talendType>
<talendType type="id_String">
<dbType type="ascii" default="true" />
<dbType type="text" />
<dbType type="timeuuid" />
<dbType type="uuid" />
<dbType type="varchar" />
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="ascii">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="bigint">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="blob">
<talendType type="id_byte[]" default="true" />
</dbType>
<dbType type="boolean">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="counter">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="date">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="decimal">
<talendType type="id_BigDecimal" default="true" />
</dbType>
<dbType type="double">
<talendType type="id_Double" default="true" />
</dbType>
<dbType type="float">
<talendType type="id_Float" default="true" />
</dbType>
<dbType type="inet">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="int">
<talendType type="id_Integer" default="true" />
</dbType>
<dbType type="list">
<talendType type="id_List" default="true" />
</dbType>
<dbType type="map">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="set">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="smallint">
<talendType type="id_Short" default="true" />
</dbType>
<dbType type="text">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="time">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="timestamp">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="timeuuid">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="tinyint">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="uuid">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="varchar">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="varint">
<talendType type="id_Object" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -0,0 +1,23 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core;
import org.talend.core.model.process.AbstractExternalNode;
import org.talend.core.model.process.INode;
public interface ITDQComponentService extends IService {
public boolean isTDQExternalComponent(String componentName);
public AbstractExternalNode createExternalComponent(INode node);
}

View File

@@ -39,4 +39,9 @@ public interface ITDQCryptoFileService extends IService {
*/
public void generateCryptoFile(String passwordM1, String cryptoMethod, String cryptoFilePath);
/**
* Generate Encrypty file
*/
public void generateCryptoFile(String passwordM1, String cryptoMethod, String cryptoFilePath, int algoVersion);
}

View File

@@ -0,0 +1,91 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.database;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* DOC jding class global comment. Detailled comment
*/
public enum ERedshiftDriver {
DRIVER_V2("Driver v2", new String[] { "redshift-jdbc42-2.1.0.3.jar", "antlr4-runtime-4.8-1.jar" }),
DRIVER_V1("Driver v1", new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar" });
private String displayName;
private Set<String> drivers = new HashSet<String>();
private ERedshiftDriver(String displayName, String[] driverStr) {
this.displayName = displayName;
for (String driver : driverStr) {
drivers.add(driver);
}
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public Set<String> getDrivers() {
return drivers;
}
public void setDrivers(Set<String> drivers) {
this.drivers = drivers;
}
public static Set<String> getDriversByVersion(String version) {
Set<String> drivers = new HashSet<String>();
ERedshiftDriver redshiftDriver = ERedshiftDriver.valueOf(version);
if (redshiftDriver != null) {
return redshiftDriver.getDrivers();
}
return drivers;
}
public static String[] getRedshiftDriverDisplayNames() {
List<String> names = new ArrayList<String>();
for (ERedshiftDriver eRedshiftDriver : ERedshiftDriver.values()) {
names.add(eRedshiftDriver.getDisplayName());
}
return names.toArray(new String[0]);
}
public static String getDisplayNameByEName(String eName) {
String displayName = eName;
ERedshiftDriver eRedshiftDriver = ERedshiftDriver.valueOf(eName);
if (eRedshiftDriver != null) {
displayName = eRedshiftDriver.getDisplayName();
}
return displayName;
}
public static String getEnameByDisplayName(String displayName) {
String eName = DRIVER_V1.name();
for (ERedshiftDriver eRedshiftDriver : ERedshiftDriver.values()) {
if (eRedshiftDriver.getDisplayName().equals(displayName)) {
eName = eRedshiftDriver.name();
}
}
return eName;
}
}

View File

@@ -225,11 +225,19 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_SYNAPSE_FS_HOSTNAME = "CONN_PARA_KEY_SYNAPSE_FS_HOSTNAME"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_CONTAINER = "CONN_PARA_KEY_SYNAPSE_FS_CONTAINER"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_AUTH_MODE = "CONN_PARA_KEY_SYNAPSE_AUTH_MODE";
public static final String CONN_PARA_KEY_SYNAPSE_FS_USERNAME = "CONN_PARA_KEY_SYNAPSE_FS_USERNAME"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_PASSWORD = "CONN_PARA_KEY_SYNAPSE_FS_PASSWORD"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_APPLICATION_ID = "CONN_PARA_KEY_SYNAPSE_APPLICATION_ID"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_DIRECTORY_ID = "CONN_PARA_KEY_SYNAPSE_DIRECTORY_ID"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_CLIENT_KEY = "CONN_PARA_KEY_SYNAPSE_CLIENT_KEY"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_STORAGE = "CONN_PARA_KEY_SYNAPSE_FS_STORAGE"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_DEPLOY_BLOB = "CONN_PARA_KEY_SYNAPSE_DEPLOY_BLOB"; //$NON-NLS-1$
@@ -316,17 +324,23 @@ public class ConnParameterKeys {
/**
* Google Dataproc keys.
*/
public static final String CONN_PARA_KEY_GOOGLE_PROJECT_ID = "CONN_PARA_KEY_GOOGLE_PROJECT_ID"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_GOOGLE_PROJECT_ID = "CONN_PARA_KEY_GOOGLE_PROJECT_ID";
public static final String CONN_PARA_KEY_GOOGLE_CLUSTER_ID = "CONN_PARA_KEY_GOOGLE_CLUSTER_ID";//$NON-NLS-1$
public static final String CONN_PARA_KEY_GOOGLE_REGION = "CONN_PARA_KEY_GOOGLE_REGION"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_GOOGLE_JARS_BUCKET = "CONN_PARA_KEY_GOOGLE_JARS_BUCKET"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_GOOGLE_CLUSTER_ID = "CONN_PARA_KEY_GOOGLE_CLUSTER_ID";
public static final String CONN_PARA_KEY_GOOGLE_REGION = "CONN_PARA_KEY_GOOGLE_REGION";
public static final String CONN_PARA_KEY_GOOGLE_JARS_BUCKET = "CONN_PARA_KEY_GOOGLE_JARS_BUCKET";
public static final String CONN_PARA_KEY_PROVIDE_GOOGLE_CREDENTIALS = "CONN_PARA_KEY_PROVIDE_GOOGLE_CREDENTIALS";
public static final String CONN_PARA_KEY_AUTH_MODE = "CONN_PARA_KEY_AUTH_MODE";
public static final String CONN_PARA_KEY_DEFINE_PATH_TO_GOOGLE_CREDENTIALS = "CONN_PARA_KEY_DEFINE_PATH_TO_GOOGLE_CREDENTIALS"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_PATH_TO_GOOGLE_CREDENTIALS = "CONN_PARA_KEY_PATH_TO_GOOGLE_CREDENTIALS"; //$NON-NLS-1$
public static final String CONN_PARA_OAUTH2_TOKEN_TO_GOOGLE_CREDENTIALS = "CONN_PARA_OAUTH2_TOKEN_TO_GOOGLE_CREDENTIALS"; //$NON-NLS-1$
/**DataBricks*/
public static final String CONN_PARA_KEY_DATABRICKS_ENDPOINT="CONN_PARA_KEY_DATABRICKS_ENDPOINT";
@@ -361,5 +375,21 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_KNOX_DIRECTORY="CONN_PARA_KEY_KNOX_DIRECTORY";
// CDE
public static final String CONN_PARA_KEY_CDE_API_ENDPOINT="CONN_PARA_KEY_CDE_API_ENDPOINT";
public static final String CONN_PARA_KEY_CDE_TOKEN="CONN_PARA_KEY_CDE_TOKEN";
public static final String CONN_PARA_KEY_CDE_AUTO_GENERATE_TOKEN="CONN_PARA_KEY_CDE_AUTO_GENERATE_TOKEN";
public static final String CONN_PARA_KEY_CDE_TOKEN_ENDPOINT="CONN_PARA_KEY_CDE_TOKEN_ENDPOINT";
public static final String CONN_PARA_KEY_CDE_WORKLOAD_USER="CONN_PARA_KEY_CDE_WORKLOAD_USER";
public static final String CONN_PARA_KEY_CDE_WORKLOAD_PASSWORD = "CONN_PARA_KEY_CDE_WORKLOAD_PASSWORD";
/**
* Redshift
*/
public static final String CONN_PARA_KEY_REDSHIFT_DRIVER = "CONN_PARA_KEY_REDSHIFT_DRIVER";
public static final String CONN_PARA_KEY_REDSHIFT_STRINGPARA = "CONN_PARA_KEY_REDSHIFT_STRINGPARA";
public static final String CONN_PARA_KEY_REDSHIFT_PARATABLE = "CONN_PARA_KEY_REDSHIFT_PARATABLE";
}

View File

@@ -13,10 +13,12 @@
package org.talend.core.database.conn.version;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.ERedshiftDriver;
import org.talend.core.database.conn.DatabaseConnConstants;
/**
@@ -54,14 +56,14 @@ public enum EDatabaseVersion4Drivers {
HSQLDB_SERVER(new DbVersion4Drivers(EDatabaseTypeName.HSQLDB_SERVER, "hsqldb.jar")), //$NON-NLS-1$
HSQLDB_WEBSERVER(new DbVersion4Drivers(EDatabaseTypeName.HSQLDB_WEBSERVER, "hsqldb.jar")), //$NON-NLS-1$
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-2.0.206.jar")), //$NON-NLS-1$
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-2.1.210.jar")), //$NON-NLS-1$
//
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlitejdbc-v056.jar")), //$NON-NLS-1$
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-full-2.1.1.jar")), //$NON-NLS-1$
TERADATA(new DbVersion4Drivers(EDatabaseTypeName.TERADATA,
new String[] { "terajdbc4-16.20.00.02.jar", "tdgssconfig-16.20.00.02.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "terajdbc4-17.10.00.27.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
JAVADB_DERBYCLIENT(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_DERBYCLIENT, "derbyclient.jar")), //$NON-NLS-1$
NETEZZA(new DbVersion4Drivers(EDatabaseTypeName.NETEZZA, "nzjdbc.jar")), //$NON-NLS-1$
INFORMIX(new DbVersion4Drivers(EDatabaseTypeName.INFORMIX, "ifxjdbc.jar")), //$NON-NLS-1$
@@ -81,10 +83,11 @@ public enum EDatabaseVersion4Drivers {
"Microsoft SQL Server 2012", "Microsoft SQL Server 2012", "jtds-1.3.1-patch-20190523.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MSSQL_PROP(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
"Microsoft", "MSSQL_PROP", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.29.jar", "slf4j-log4j12-1.7.29.jar", "adal4j-1.6.7.jar", //$NON-NLS-1$
"commons-lang3-3.10.jar", "commons-codec-1.14.jar", "gson-2.8.6.jar", "oauth2-oidc-sdk-9.7.jar",
"json-smart-2.4.7.jar", "nimbus-jose-jwt-8.11.jar", "javax.mail-1.6.2.jar", "log4j-1.2.17.jar",
"accessors-smart-2.4.7.jar", "asm-9.1.jar","content-type-2.1.jar" })),
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.29.jar", "slf4j-log4j12-1.7.29.jar", "msal4j-1.11.0.jar", //$NON-NLS-1$
"oauth2-oidc-sdk-9.7.jar", "log4j-1.2.17.jar", "jackson-core-2.12.1.jar",
"jackson-databind-2.12.1.jar", "jackson-annotations-2.12.1.jar", "jcip-annotations-1.0-1.jar",
"json-smart-2.4.7.jar", "nimbus-jose-jwt-9.9.3.jar", "accessors-smart-2.4.7.jar", "asm-9.1.jar",
"content-type-2.1.jar", "lang-tag-1.5.jar" })),
VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -148,9 +151,9 @@ public enum EDatabaseVersion4Drivers {
MAPRDB(new DbVersion4Drivers(EDatabaseTypeName.MAPRDB, new String[] {})),
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
"redshift-jdbc42-no-awssdk-1.2.37.1061.jar")), //$NON-NLS-1$
new String[]{ "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
REDSHIFT_SSO(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT_SSO, "redshift sso", "REDSHIFT_SSO", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "redshift-jdbc42-no-awssdk-1.2.37.1061.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.11.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.11.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
"jackson-databind-2.11.4.jar", "jackson-annotations-2.11.4.jar", "httpcore-4.4.13.jar", "httpclient-4.5.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
"joda-time-2.8.1.jar", "commons-logging-1.2.jar", "commons-codec-1.14.jar" })), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -292,6 +295,9 @@ public enum EDatabaseVersion4Drivers {
if (version.equalsIgnoreCase(v4d.getVersionValue())) {
drivers.addAll(v4d.getProviderDrivers());
}
if (drivers.isEmpty()) {
drivers.addAll(getDriversByDriverVersion(v4d, version));
}
}
} else {
// only check the version value
@@ -303,6 +309,14 @@ public enum EDatabaseVersion4Drivers {
return drivers;
}
private static Set<String> getDriversByDriverVersion(EDatabaseVersion4Drivers v4d, String version) {
Set<String> drivers = new HashSet<String>();
if (REDSHIFT == v4d) {
drivers = ERedshiftDriver.getDriversByVersion(version);
}
return drivers;
}
public static boolean containTypeAndVersion(final String dbType, final String version) {
if (version == null) {
return false;

View File

@@ -83,6 +83,12 @@ public enum EHadoopProperties {
GOOGLE_REGION,
GOOGLE_JARS_BUCKET,
AUTH_MODE,
PATH_TO_GOOGLE_CREDENTIALS,
OAUTH_ACCESS_TOKEN,
HD_WEBHCAT_HOSTNAME,
@@ -112,10 +118,18 @@ public enum EHadoopProperties {
SYNAPSE_STORAGE_CONTAINER,
ADLSGEN2AUTH,
SYNAPSE_STORAGE_USERNAME,
SYNAPSE_STORAGE_PASSWORD,
SYNAPSE_APPLICATION_ID,
SYNAPSE_DIRECTORY_ID,
SYNAPSE_CLIENT_KEY,
DEPLOY_FOLDER,
SPARK_DRIVER_MEM,

View File

@@ -0,0 +1,75 @@
// ============================================================================
//
// Copyright (C) 2006-2020 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.hadoop.version;
import java.util.ArrayList;
import java.util.List;
public enum EDataprocAuthType {
OAUTH_API("OAuth2 Access Token"), //$NON-NLS-1$
SERVICE_ACCOUNT("Service account"); //$NON-NLS-1$
private String displayName;
EDataprocAuthType(String displayName) {
this.displayName = displayName;
}
public String getName() {
return name();
}
public String getDisplayName() {
return this.displayName;
}
public static List<String> getAllDataprocAuthTypes() {
return getAllDataprocAuthTypes(true);
}
public static List<String> getAllDataprocAuthTypes(boolean display) {
List<String> types = new ArrayList<String>();
EDataprocAuthType[] values = values();
for (EDataprocAuthType authType : values) {
if (display) {
types.add(authType.getDisplayName());
} else {
types.add(authType.getName());
}
}
return types;
}
public static EDataprocAuthType getDataprocAuthTypeByDisplayName(String name) {
return getDataprocAuthTypeByName(name, true);
}
public static EDataprocAuthType getDataprocAuthTypeByName(String type, boolean display) {
if (type != null) {
for (EDataprocAuthType authType : values()) {
if (display) {
if (type.equalsIgnoreCase(authType.getDisplayName())) {
return authType;
}
} else {
if (type.equalsIgnoreCase(authType.getName())) {
return authType;
}
}
}
}
return null;
}
}

View File

@@ -71,6 +71,8 @@ public interface IMetadataTable {
public boolean sameMetadataAs(IMetadataTable other, int options, boolean order);
public boolean sameMetadataAs(List<IMetadataColumn> otherMetadataTableColumns, int options, boolean order);
public void sortCustomColumns();
public boolean isReadOnly();

View File

@@ -257,8 +257,13 @@ public class MetadataTable implements IMetadataTable, Cloneable {
if (!(input instanceof IMetadataTable)) {
return false;
}
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true);
List<IMetadataColumn> inputColumnListWithUnselected = input.getListColumns(true);
return sameMetadataAs(inputColumnListWithUnselected, options, order);
}
@Override
public boolean sameMetadataAs(List<IMetadataColumn> inputColumnListWithUnselected, int options, boolean order) {
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true);
if (thisColumnListWithUnselected == null) {
if (inputColumnListWithUnselected != null) {
return false;
@@ -300,9 +305,6 @@ public class MetadataTable implements IMetadataTable, Cloneable {
// no matter if this one is custom or not (all custom must be propagated too)
for (int i = 0; i < inputColumnListWithUnselected.size(); i++) {
IMetadataColumn inputColumn = inputColumnListWithUnselected.get(i);
if(inputColumn.isCustom()) {
continue;
}
IMetadataColumn myColumn = this.getColumn(inputColumn.getLabel());
outputColumnsNotTested.remove(myColumn);
if (!inputColumn.sameMetacolumnAs(myColumn, options)) {

View File

@@ -24,13 +24,13 @@ import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.common.util.EMap;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.runtime.model.components.IComponentConstants;
import org.talend.commons.utils.resource.FileExtensions;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ICoreService;
import org.talend.core.IRepositoryContextService;
import org.talend.core.database.EDatabase4DriverClassName;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.ERedshiftDriver;
import org.talend.core.database.conn.ConnParameterKeys;
import org.talend.core.database.conn.template.EDatabaseConnTemplate;
import org.talend.core.model.metadata.Dbms;
@@ -54,6 +54,7 @@ import org.talend.core.model.metadata.builder.connection.SAPBWTable;
import org.talend.core.prefs.SSLPreferenceConstants;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.utils.KeywordsValidator;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.cwm.helper.ConnectionHelper;
import org.talend.cwm.helper.SAPBWTableHelper;
import org.talend.cwm.helper.TaggedValueHelper;
@@ -61,6 +62,10 @@ import org.talend.cwm.relational.RelationalFactory;
import org.talend.model.bridge.ReponsitoryContextBridge;
import org.talend.repository.model.IProxyRepositoryFactory;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import orgomg.cwm.objectmodel.core.TaggedValue;
/**
@@ -223,8 +228,9 @@ public final class ConvertionHelper {
} else {
result.setDbType(connection.getDatabaseType());
}
String dbVersionString = getDriverVersionString(connection);
result.setDriverJarPath(connection.getDriverJarPath());
result.setDbVersionString(connection.getDbVersionString());
result.setDbVersionString(dbVersionString);
result.setDriverClass(connection.getDriverClass());
result.setFileFieldName(connection.getFileFieldName());
result.setId(connection.getId());
@@ -265,6 +271,22 @@ public final class ConvertionHelper {
}
private static String getDriverVersionString(DatabaseConnection dbConn) {
String dbVersionString = dbConn.getDbVersionString();
if (EDatabaseTypeName.REDSHIFT.getDisplayName().equals(dbConn.getDatabaseType())) {
EMap<String, String> parameters = dbConn.getParameters();
if (parameters != null) {
String driverString = parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER);
if (StringUtils.isNotBlank(driverString)) {
dbVersionString = driverString;
} else {
dbVersionString = ERedshiftDriver.DRIVER_V1.name();
}
}
}
return dbVersionString;
}
/**
* Copies other parameters from <code>DatabaseConnection</code> to <code>IMetadataConnection</code>. Added by Marvin
* Wang on Aug.8, 2012.
@@ -705,6 +727,25 @@ public final class ConvertionHelper {
origValueConn.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_SSL_KEY_STORE_PASSWORD), false));
}
}
} else if (EDatabaseTypeName.REDSHIFT.getDisplayName().equals(origValueConn.getDatabaseType())) {
Properties info = new Properties();
EMap<String, String> parameters = origValueConn.getParameters();
if (parameters != null
&& ERedshiftDriver.DRIVER_V2.name().equals(parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER))
&& !Boolean.valueOf(parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_STRINGPARA))) {
additionParamStr = "";
String tableValue = parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_PARATABLE);
if (StringUtils.isNotBlank(tableValue)) {
List<Map<String, Object>> entryProperties = getEntryProperties(tableValue);
for (Map<String, Object> entryMap : entryProperties) {
String key = TalendQuoteUtils.removeQuotes(String.valueOf(entryMap.get("KEY")));
if (StringUtils.isNotBlank(key)) {
String value = TalendQuoteUtils.removeQuotes(String.valueOf(entryMap.get("VALUE")));
updateAdditionParam(sgb, info, key, value);
}
}
}
}
}
return additionParamStr + sgb.toString();
}
@@ -714,4 +755,27 @@ public final class ConvertionHelper {
sgb.append("&").append(key).append("=").append(value);//$NON-NLS-1$ //$NON-NLS-2$
}
}
public static List<Map<String, Object>> getEntryProperties(String paramString) {
List<Map<String, Object>> tableProperties = new ArrayList<Map<String, Object>>();
try {
ObjectMapper objectMapper = new ObjectMapper();
tableProperties = objectMapper.readValue(paramString, new TypeReference<List<Map<String, Object>>>() {
});
} catch (Exception e) {
ExceptionHandler.process(e);
}
return tableProperties;
}
public static String getEntryPropertiesString(List<Map<String, Object>> entryProperties) {
String entryString = "";
try {
ObjectMapper objectMapper = new ObjectMapper();
entryString = objectMapper.writeValueAsString(entryProperties);
} catch (JsonProcessingException e) {
ExceptionHandler.process(e);
}
return entryString;
}
}

View File

@@ -664,6 +664,26 @@ public class ComponentToRepositoryProperty {
connection.setAdditionalParams(value);
}
}
if ("USE_STRING_PROPERTIES".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_STRINGPARA, value);
}
}
if ("DRIVER_VERSION".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER, value);
}
}
if ("ENTRY_PROPERTIES".equals(param.getRepositoryValue())) {
Object value = param.getValue();
if (value instanceof List) {
List<Map<String, Object>> entryProperties = (List<Map<String, Object>>) value;
connection.getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_PARATABLE,
ConvertionHelper.getEntryPropertiesString(entryProperties));
}
}
if ("FILE".equals(param.getRepositoryValue())) { //$NON-NLS-1$
String value = getParameterValue(connection, node, param);
if (value != null) {

View File

@@ -29,6 +29,7 @@ import org.talend.commons.ui.utils.PathUtils;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.ERedshiftDriver;
import org.talend.core.database.conn.ConnParameterKeys;
import org.talend.core.database.conn.template.EDatabaseConnTemplate;
import org.talend.core.database.conn.version.EDatabaseVersion4Drivers;
@@ -43,6 +44,7 @@ import org.talend.core.model.metadata.MappingType;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.MetadataToolHelper;
import org.talend.core.model.metadata.MultiSchemasUtil;
import org.talend.core.model.metadata.builder.ConvertionHelper;
import org.talend.core.model.metadata.builder.connection.AdditionalConnectionProperty;
import org.talend.core.model.metadata.builder.connection.BRMSConnection;
import org.talend.core.model.metadata.builder.connection.Concept;
@@ -1039,6 +1041,21 @@ public class RepositoryToComponentProperty {
if (value.equals("PROPERTIES_STRING")) { //$NON-NLS-1$
return getAppropriateValue(connection, connection.getAdditionalParams());
}
if (value.equals("USE_STRING_PROPERTIES")) {
return Boolean.valueOf(connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_STRINGPARA));
}
if (value.equals("ENTRY_PROPERTIES")) {
return ConvertionHelper
.getEntryProperties(connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_PARATABLE));
}
if (value.equals("DRIVER_VERSION")) {
String driverVersion = connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER);
if (org.apache.commons.lang.StringUtils.isBlank(driverVersion)) {
driverVersion = ERedshiftDriver.DRIVER_V1.name();
}
return driverVersion;
}
if (value.equals("DRIVER")) { //$NON-NLS-1$
String dbVersionString = connection.getDbVersionString();
if (dbVersionString != null && EDatabaseConnTemplate.MSSQL.getDBDisplayName().equals(databaseType)) {

View File

@@ -58,6 +58,11 @@ public interface IProcess extends IElement {
public static final String SCREEN_OFFSET_Y = "SCREEN_OFFSET_Y"; //$NON-NLS-1$
public static final String PROP_ERR_ON_COMPONENT_MISSING = "error.on.component.missing";
public static final boolean ERR_ON_COMPONENT_MISSING = Boolean
.valueOf(System.getProperty(PROP_ERR_ON_COMPONENT_MISSING, Boolean.TRUE.toString()));
public String getName();
public String getId();

View File

@@ -1086,6 +1086,18 @@ public final class ProcessUtils {
}
}
}
if ("cHttp".equals(node.getComponentName())) {
for (Object elementParameter : node.getElementParameter()) {
ElementParameterType elementParameterType = (ElementParameterType)elementParameter;
String name = elementParameterType.getName();
String value = elementParameterType.getValue();
if ("SERVER".equals(name) && (value != null && "true".equals(value.toString()))) {
return true;
}
}
}
}
return false;

View File

@@ -571,8 +571,11 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
*/
public final static ERepositoryObjectType PROCESS_SPARKSTREAMING = ERepositoryObjectType.valueOf("PROCESS_SPARKSTREAMING");
public final static ERepositoryObjectType METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT = ERepositoryObjectType
.valueOf("METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT"); //$NON-NLS-1$
public final static ERepositoryObjectType METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_INPUT = ERepositoryObjectType
.valueOf("METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_INPUT"); //$NON-NLS-1$
public final static ERepositoryObjectType METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_OUTPUT = ERepositoryObjectType
.valueOf("METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_OUTPUT"); //$NON-NLS-1$
public final static ERepositoryObjectType METADATA_SAP_BW_DATASOURCE = ERepositoryObjectType
.valueOf("METADATA_SAP_BW_DATASOURCE"); //$NON-NLS-1$
@@ -919,7 +922,7 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
} else if (type.getType().equals("TEST_CONTAINER")) {
return "test case";
} else if (GlobalServiceRegister.getDefault().isServiceRegistered(ICamelDesignerCoreService.class)) {
ICamelDesignerCoreService camelService = (ICamelDesignerCoreService) GlobalServiceRegister.getDefault()
ICamelDesignerCoreService camelService = GlobalServiceRegister.getDefault()
.getService(ICamelDesignerCoreService.class);
String deleteFolderName = camelService.getDeleteFolderName(type);
if (deleteFolderName != null) {
@@ -1465,7 +1468,7 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
allTypes.add(ERepositoryObjectType.SPARK_STREAMING_JOBLET);
}
if (GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
IESBService esbService = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
IESBService esbService = GlobalServiceRegister.getDefault().getService(IESBService.class);
ERepositoryObjectType serviceType = esbService.getServicesType();
if (serviceType != null) {
allTypes.add(serviceType);

View File

@@ -0,0 +1,163 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.pendo;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.VersionUtils;
import org.talend.core.model.general.Project;
import org.talend.core.model.properties.ProjectReference;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.core.pendo.properties.PendoLoginProperties;
import org.talend.core.service.IStudioLiteP2Service;
import org.talend.core.ui.IInstalledPatchService;
import org.talend.repository.ProjectManager;
import org.talend.utils.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* DOC jding class global comment. Detailled comment
*/
public class PendoTrackDataUtil {
private static final String FEATURE_PREFIX = "org.talend.lite.";
private static final String FEATURE_TAIL = ".feature.feature.group";
public static String generateTrackData(String pendoInfo, TrackEvent event, IPendoDataProperties properties) throws Exception {
JSONObject infoJson = new JSONObject(pendoInfo);
String visitorId = ((JSONObject) infoJson.get("visitor")).getString("id");
String accountId = ((JSONObject) infoJson.get("account")).getString("id");
PendoEventEntity entity = new PendoEventEntity();
entity.setType("track");
entity.setEvent(event.getEvent());
entity.setVisitorId(visitorId);
entity.setAccountId(accountId);
entity.setTimestamp(new Date().getTime());
entity.setProperties(properties);
ObjectMapper mapper = new ObjectMapper();
String content = mapper.writeValueAsString(entity);
return content;
}
public static IPendoDataProperties getLoginEventProperties() {
String studioPatch = null;
IInstalledPatchService installedPatchService = IInstalledPatchService.get();
if (installedPatchService != null) {
studioPatch = installedPatchService.getLatestInstalledPatchVersion();
}
PendoLoginProperties loginEvent = new PendoLoginProperties();
IStudioLiteP2Service studioLiteP2Service = IStudioLiteP2Service.get();
try {
if (studioLiteP2Service != null) {
List<String> enabledFeatures = new ArrayList<String>();
List<String> enabledFeaturesList = studioLiteP2Service.getCurrentProjectEnabledFeatures();
enabledFeaturesList.stream().forEach(feature -> {
String result = feature;
if (result.startsWith(FEATURE_PREFIX)) {
result = result.substring(FEATURE_PREFIX.toCharArray().length);
}
if (result.endsWith(FEATURE_TAIL)) {
result = result.substring(0, result.lastIndexOf(FEATURE_TAIL));
}
enabledFeatures.add(result);
});
loginEvent.setEnabledFeatures(enabledFeatures);
}
setUpRefProjectsStructure(loginEvent);
} catch (Exception e) {
ExceptionHandler.process(e);
}
loginEvent.setStudioVersion(VersionUtils.getInternalMajorVersion());
loginEvent.setStudioPatch(studioPatch);
return loginEvent;
}
private static void setUpRefProjectsStructure(PendoLoginProperties loginEvent) {
ProjectManager projectManager = ProjectManager.getInstance();
Project currentProject = projectManager.getCurrentProject();
Map<String, Project> teclabelProjectMap = new HashMap<String, Project>();
List<Project> allReferencedProjects = projectManager.getAllReferencedProjects();
allReferencedProjects.forEach(refProject -> {
String technicalLabel = refProject.getTechnicalLabel();
if (StringUtils.isNotBlank(technicalLabel)) {
teclabelProjectMap.put(technicalLabel, refProject);
}
});
int[] refCount = new int[] {0};
List<String> resultList = new ArrayList<String>();
Map<String, String> desensitiveLabelMap = new HashMap<String, String>();
findReferencePorjectPath(currentProject, "Main", resultList, refCount, desensitiveLabelMap, teclabelProjectMap);
loginEvent.setRefProjectList(resultList);
loginEvent.setRefProjectCount(String.valueOf(desensitiveLabelMap.keySet().size()));
}
public static void findReferencePorjectPath(Project currentProject, String path, List<String> resultList, int[] refCount,
Map<String, String> desensitiveLabelMap, Map<String, Project> teclabelProjectMap) {
List<ProjectReference> projectReferenceList = currentProject.getProjectReferenceList();
for (ProjectReference projectReference : projectReferenceList) {
String structPath = path;
if (projectReference.getReferencedProject() == null) {
continue;
}
String technicalLabel = projectReference.getReferencedProject().getTechnicalLabel();
Project refProject = teclabelProjectMap.get(technicalLabel);
if (StringUtils.isBlank(technicalLabel) || refProject == null) {
continue;
}
String desensitiveLabel = desensitiveLabelMap.get(technicalLabel);
if (StringUtils.isBlank(desensitiveLabel)) {
refCount[0] = refCount[0] + 1;
desensitiveLabel = "Ref" + refCount[0];
desensitiveLabelMap.put(technicalLabel, desensitiveLabel);
}
structPath = structPath + "/" + desensitiveLabel;
resultList.add(structPath);
findReferencePorjectPath(refProject, structPath, resultList, refCount, desensitiveLabelMap, teclabelProjectMap);
}
}
public enum TrackEvent {
PROJECT_LOGIN("Project Login"),
IMPORT_API_DEF("Import API Definition"),
UPDATE_API_DEF("Update API Definition"),
USE_API_DEF("Use API Definition"),
OPEN_IN_APIDesigner("Open in API Designer"),
OPEN_IN_APITester("Open in API Tester"),
OPEN_API_DOCUMENTATION("Open API Documentation");
private String event;
TrackEvent(String event) {
this.event = event;
}
public String getEvent() {
return event;
}
}
}

View File

@@ -17,9 +17,6 @@ import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -40,22 +37,19 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.VersionUtils;
import org.talend.commons.utils.network.IProxySelectorProvider;
import org.talend.commons.utils.network.NetworkUtil;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.context.Context;
import org.talend.core.context.RepositoryContext;
import org.talend.core.nexus.HttpClientTransport;
import org.talend.core.pendo.PendoTrackDataUtil.TrackEvent;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.service.IRemoteService;
import org.talend.core.service.IStudioLiteP2Service;
import org.talend.core.ui.IInstalledPatchService;
import org.talend.repository.model.RepositoryConstants;
import org.talend.utils.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* DOC jding class global comment. Detailled comment
*/
@@ -73,16 +67,14 @@ public class PendoTrackSender {
private static final String HEAD_PENDO_KEY = "x-pendo-integration-key";
private static final String FEATURE_PREFIX = "org.talend.lite.";
private static final String FEATURE_TAIL = ".feature.feature.group";
private static PendoTrackSender instance;
private static String adminUrl;
private static String apiBaseUrl;
private static String pendoInfo;
public static PendoTrackSender getInstance() {
if (instance == null) {
instance = new PendoTrackSender();
@@ -96,13 +88,13 @@ public class PendoTrackSender {
return instance;
}
public void sendToPendo() {
public void sendToPendo(TrackEvent event, IPendoDataProperties properties) {
Job job = new Job("send pendo track") {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
sendTrackData();
sendTrackData(event, properties);
} catch (Exception e) {
// warning only
ExceptionHandler.process(e, Level.WARN);
@@ -115,7 +107,7 @@ public class PendoTrackSender {
job.schedule();
}
public void sendTrackData() throws Exception {
public void sendTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception {
if (!checkTokenUsed(adminUrl) || !NetworkUtil.isNetworkValid()) {
return;
}
@@ -142,7 +134,8 @@ public class PendoTrackSender {
proxySelectorProvider = HttpClientTransport.addProxy(client, new URI(url));
EntityBuilder entityBuilder = EntityBuilder.create();
entityBuilder.setText(generateTrackData(pendoInfo)).setContentType(ContentType.APPLICATION_JSON);
String trackData = PendoTrackDataUtil.generateTrackData(pendoInfo, event, properties);
entityBuilder.setText(trackData).setContentType(ContentType.APPLICATION_JSON);
HttpEntity entity = entityBuilder.build();
httpPost.setEntity(entity);
response = client.execute(httpPost, HttpClientContext.create());
@@ -171,53 +164,11 @@ public class PendoTrackSender {
}
}
// TODO maybe we will have more event handler later
private String generateTrackData(String pendoInfo) throws Exception {
JSONObject infoJson = new JSONObject(pendoInfo);
String visitorId = ((JSONObject) infoJson.get("visitor")).getString("id");
String accountId = ((JSONObject) infoJson.get("account")).getString("id");
String studioPatch = null;
Date date = new Date();
IInstalledPatchService installedPatchService = IInstalledPatchService.get();
if (installedPatchService != null) {
studioPatch = installedPatchService.getLatestInstalledPatchVersion();
}
List<String> enabledFeatures = new ArrayList<String>();
IStudioLiteP2Service studioLiteP2Service = IStudioLiteP2Service.get();
if (studioLiteP2Service != null) {
List<String> enabledFeaturesList = studioLiteP2Service.getCurrentProjectEnabledFeatures();
enabledFeaturesList.stream().forEach(feature -> {
String result = feature;
if (result.startsWith(FEATURE_PREFIX)) {
result = result.substring(FEATURE_PREFIX.toCharArray().length);
}
if (result.endsWith(FEATURE_TAIL)) {
result = result.substring(0, result.lastIndexOf(FEATURE_TAIL));
}
enabledFeatures.add(result);
});
}
PendoLoginProperties loginEvent = new PendoLoginProperties();
loginEvent.setStudioVersion(VersionUtils.getInternalMajorVersion());
loginEvent.setStudioPatch(studioPatch);
loginEvent.setEnabledFeatures(enabledFeatures);
PendoEventEntity entity = new PendoEventEntity();
entity.setType("track");
entity.setEvent("Project Login");
entity.setVisitorId(visitorId);
entity.setAccountId(accountId);
entity.setTimestamp(date.getTime());
entity.setProperties(loginEvent);
ObjectMapper mapper = new ObjectMapper();
String content = mapper.writeValueAsString(entity);
return content;
}
private String getPendoInfo() throws Exception {
return getPendoInfo(getBaseUrl(), getToken());
if (StringUtils.isBlank(pendoInfo)) {
pendoInfo = getPendoInfo(getBaseUrl(), getToken());
}
return pendoInfo;
}
private String getPendoInfo(String baseUrl, String token) throws Exception {

View File

@@ -0,0 +1,21 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.pendo.properties;
/**
* DOC jding class global comment. Detailled comment
*/
public interface IPendoDataProperties {
}

View File

@@ -0,0 +1,75 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.pendo.properties;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* DOC jding class global comment. Detailled comment
*/
public class PendoImportAPIproperties implements IPendoDataProperties {
@JsonProperty("source")
private String source;
public PendoImportAPIproperties(String source) {
super();
this.source = SourceType.getSourceLabelByType(source);
}
/**
* Getter for source.
*
* @return the source
*/
public String getSource() {
return source;
}
/**
* Sets the source.
*
* @param source the source to set
*/
public void setSource(String source) {
this.source = source;
}
enum SourceType {
LOCAL_FILE("file"),
API_DESIGNER("API Designer"),
REMOTE_URL("Remote URL");
private String sourceLabel;
SourceType(String sourceLabel) {
this.sourceLabel = sourceLabel;
}
public String getSourceLabel() {
return sourceLabel;
}
public static String getSourceLabelByType(String type) {
String label = type;
SourceType sourceType = SourceType.valueOf(type);
if (sourceType != null) {
label = sourceType.getSourceLabel();
}
return label;
}
}
}

View File

@@ -1,6 +1,6 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
@@ -10,7 +10,7 @@
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.pendo;
package org.talend.core.pendo.properties;
import java.util.List;
@@ -19,7 +19,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
/**
* DOC jding class global comment. Detailled comment
*/
public class PendoLoginProperties {
public class PendoLoginProperties implements IPendoDataProperties {
@JsonProperty("studio_version")
private String studioVersion;
@@ -30,6 +30,12 @@ public class PendoLoginProperties {
@JsonProperty("enabled_features")
private List<String> enabledFeatures;
@JsonProperty("referenced_project_number")
private String refProjectCount;
@JsonProperty("referenced_projects")
private List<String> refProjectList;
/**
* Getter for studio_version.
*
@@ -84,4 +90,40 @@ public class PendoLoginProperties {
this.enabledFeatures = enabledFeatures;
}
/**
* Getter for refProjectCount.
*
* @return the refProjectCount
*/
public String getRefProjectCount() {
return refProjectCount;
}
/**
* Sets the refProjectCount.
*
* @param refProjectCount the refProjectCount to set
*/
public void setRefProjectCount(String refProjectCount) {
this.refProjectCount = refProjectCount;
}
/**
* Getter for refProjectList.
*
* @return the refProjectList
*/
public List<String> getRefProjectList() {
return refProjectList;
}
/**
* Sets the refProjectList.
*
* @param refProjectList the refProjectList to set
*/
public void setRefProjectList(List<String> refProjectList) {
this.refProjectList = refProjectList;
}
}

View File

@@ -0,0 +1,48 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.pendo.properties;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* DOC jding class global comment. Detailled comment
*/
public class PendoUseAPIProperties implements IPendoDataProperties {
@JsonProperty("component")
private String component;
public PendoUseAPIProperties(String component) {
super();
this.component = component;
}
/**
* Getter for component.
*
* @return the component
*/
public String getComponent() {
return component;
}
/**
* Sets the component.
*
* @param component the component to set
*/
public void setComponent(String component) {
this.component = component;
}
}

View File

@@ -1,6 +1,6 @@
AbstractBrandingService_job_license_header_content=Copyright (c) 2005-2010, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_\n\n// (CodeGenerator version{0}\n// Vous pouvez trouver plus d'informations \u00E0 propos des produits Talend sur https://www.talend.com/\nfr/. {1}// Vous pouvez distribuer ce code suivant les termes de la licence\nGNU LGPL\n// http://www.gnu.org/licenses/lgpl.\nhtml\n).
AbstractBrandingService.routines_license_header_content2014=Copyright (c) 2006-2014, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// (CodeGenerator version {1}\n// Vous pouvez trouver plus d'informations \u00E0 propos des produits Talend sur https://www.talend.com/fr/.\n// Vous pouvez distribuer ce code suivant les termes de la licence GNU LGPL\n// http://www.gnu.org/licenses/lgpl.html).
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2010, Talend SA.\n//\n// Le code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// / JobDesigner (CodeGenerator version {1}).\n// Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.\n// Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL\n// (http://www.gnu.org/licenses/lgpl.html).\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content2014=Copyright (c) 2006-2014, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// CodeGenerator version {1}\n// Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.\n// Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL\n// (http://www.gnu.org/licenses/lgpl.html).
AbstractComponentsProvider.folderNotExist=Le dossier {0} n'existe pas.
AbstractItemMigrationTask.taskFailed=La t\u00E2che de migration {0} a \u00E9chou\u00E9 \u00E0 l'\u00E9l\u00E9ment {1}
AdvancedSocketFactory.failedInitial=Erreur : impossible d'initialiser :
@@ -303,7 +303,7 @@ RepositoryToComponentProperty.xmlFileSelection=S\u00E9lectionnez un fichier XML
RepositoryUpdateManager.Title=Modification
RepositoryUpdateManager.Check=V\u00E9rification...
RepositoryUpdateManager.Messages=Voulez-vous propager les modifications \u00E0 tous les Jobs ? \n Cela peut prendre un moment.
RepositoryUpdateManager.MessagesForTDQ=Propager les modifications \u00E0 tous les Jobs ?\nCertaines d\u00E9pendances d'analyses vont perdre des informations.\nCela peut prendre un moment.
RepositoryUpdateManager.MessagesForTDQ=Voulez-vous propager les modifications \u00E0 tous les Jobs ?\nCertaines d\u00E9pendances d'analyses vont perdre des informations.\nCela peut prendre un moment.
RepositoryUpdateManager.NoModificationTitle=Aucune modification n\u00E9cessaire
RepositoryUpdateManager.NoModificationMessages=Aucune modification n\u00E9cessaire pour effectuer la mise \u00E0 jour.
RepositoryUpdateManager.NotFoundMessages=Aucune relation \u00E0 trouver.
@@ -338,7 +338,7 @@ SchemaOperationChoiceDialog.StatusMessage=Le sch\u00E9ma est invalide, ou il exi
SchemaOperationChoiceDialog.Title=Sch\u00E9ma
SchemaOperationChoiceDialog.ViewSchemaMessage=Voir le sch\u00E9ma (lecture seule)
SchemaXPathQuerysDialog.Mappings=Correspondances
SelectRepositoryContextDialog.DeselectAll=D\u00E9s\u00E9lectionner tout
SelectRepositoryContextDialog.DeselectAll=Tout d\u00E9s\u00E9lectionner
SelectRepositoryContextDialog.CollapseAll=Tout r\u00E9duire
SelectRepositoryContextDialog.DuplicationMessage=Vous avez s\u00E9lectionn\u00E9 la variable "{0}" dans le contexte "{1}".
SelectRepositoryContextDialog.DuplicationTitle=Avertissement de duplication !
@@ -558,7 +558,7 @@ OpenXSDFileDialog.cancel=Annuler
OpenXSDFileDialog.confirm=Confirmer
OpenXSDFileDialog.fileName=Nom de fichier\u00A0:
OpenXSDFileDialog.xmlFileSelection=S\u00E9lectionnez un fichier XML \u00E0 valider
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier de m\u00E9tadonn\u00E9es XSD, \n il devrait y avoir un fichier XML \u00E0 valider.
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier XSD de m\u00E9tadonn\u00E9es, \n un fichier XML doit \u00EAtre \u00E0 valider.
RepositoryContentProvider.repositoryLabel.Queries=Requ\u00EAtes
RepositoryContentProvider.repositoryLabel.sapBapi=SAP Bapi
RepositoryContentProvider.repositoryLabel.sapBapi.input=Lecture

View File

@@ -1,6 +1,6 @@
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2010, Talend Inc.\n//\n//\u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F_{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// JobDesigner (CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1})\n// Talend\u88FD\u54C1\u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n//\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\n// http://www.gnu.org/licenses/lgpl.html)\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content2014=Copyright (c) 2006-2014, Talend Inc.\n//\n//\u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F_{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1}\n// Talend\u88FD\u54C1\u306B\u95A2\u3059\u308B\u8A73\u7D30\u306Fwww.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n//\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u304C\u53EF\u80FD\u3067\u3059\u3002\n// http://www.gnu.org/licenses/lgpl.html)
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2010, Talend Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// / JobDesigner (CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1})\n// Talend\u88FD\u54C1\u306E\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n// \u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\n// (http://www.gnu.org/licenses/lgpl.html)\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content2014=Copyright (c) 2006-2014, Talend Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1}\n// Talend\u88FD\u54C1\u306E\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n// \u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\n// (http://www.gnu.org/licenses/lgpl.html)\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\u3002
AbstractComponentsProvider.folderNotExist=\u30D5\u30A9\u30EB\u30C0\u30FC{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002
AbstractItemMigrationTask.taskFailed=\u30A2\u30A4\u30C6\u30E0{1}\u4E0A\u306E\u79FB\u884C\u30BF\u30B9\u30AF{0}\u304C\u5931\u6557\u3057\u307E\u3057\u305F
AdvancedSocketFactory.failedInitial=\u30A8\u30E9\u30FC : \u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F :
@@ -302,14 +302,14 @@ RepositoryObject.NotImplemented=\u672A\u5B9F\u88C5
RepositoryToComponentProperty.xmlFileSelection=\u691C\u8A3C\u3059\u308BXML\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
RepositoryUpdateManager.Title=\u5909\u66F4
RepositoryUpdateManager.Check=\u30C1\u30A7\u30C3\u30AF\u4E2D...
RepositoryUpdateManager.Messages=\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3059\u304B? \n\u3053\u306E\u51E6\u7406\u306B\u306F\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.MessagesForTDQ=Do you want to propagate the modifications to all jobs?\nAnd some analysis which dependency it will lost information.\nIt might be quite long
RepositoryUpdateManager.Messages=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n \u3053\u306E\u64CD\u4F5C\u306B\u306F\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.MessagesForTDQ=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\n\u307E\u305F\u3001\u4E00\u90E8\u306E\u5206\u6790\u4F9D\u5B58\u9805\u76EE\u3067\u60C5\u5831\u304C\u5931\u308F\u308C\u307E\u3059\u3002\n\u3053\u306E\u64CD\u4F5C\u306B\u306F\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.NoModificationTitle=\u5909\u66F4\u4E0D\u8981
RepositoryUpdateManager.NoModificationMessages=\u66F4\u65B0\u306B\u5FC5\u8981\u306A\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundMessages=\u95A2\u4FC2\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundTitle=\u898B\u3064\u304B\u308A\u307E\u305B\u3093
RepositoryUpdateManager.RenameContextMessagesNoBuiltIn=\u540D\u524D\u304C\u5909\u66F4\u3055\u308C\u305F\u5909\u6570\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u4ECA\u3059\u3050\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=Rename Question
RepositoryUpdateManager.RenameContextMessagesNoBuiltIn=\u540D\u524D\u5909\u66F4\u5909\u6570\u3092\u4ECA\u3059\u3050\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=\u540D\u524D\u5909\u66F4\u306E\u8CEA\u554F
RepositoryUpdateManager.ItemsToUpdate=\u66F4\u65B0\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u3092\u30C1\u30A7\u30C3\u30AF
RepositoryUpdateManager.job.title=\u30A2\u30A4\u30C6\u30E0\u3092\u66F4\u65B0\u4E2D...
RoutinesFunctionProposal.CreatedBy=\u4F5C\u6210\u8005:
@@ -558,7 +558,7 @@ OpenXSDFileDialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
OpenXSDFileDialog.confirm=\u78BA\u8A8D
OpenXSDFileDialog.fileName=\u30D5\u30A1\u30A4\u30EB\u540D:
OpenXSDFileDialog.xmlFileSelection=\u691C\u8A3C\u3059\u308BXML\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001\n\u691C\u8A3C\u3059\u308Bxml\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001 \n \u691C\u8A3C\u7528\u306Exml\u30D5\u30A1\u30A4\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002
RepositoryContentProvider.repositoryLabel.Queries=\u30AF\u30A8\u30EA\u30FC
RepositoryContentProvider.repositoryLabel.sapBapi=SAP Bapi
RepositoryContentProvider.repositoryLabel.sapBapi.input=\u5165\u529B

View File

@@ -1,6 +1,6 @@
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// \u7248\u6743\u6240\u6709 (c) 2005-2010, Talend Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0}\u81EA\u52A8\u751F\u6210\n// / JobDesigner (CodeGenerator \u7248\u672C {1})\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3\u6709\u5173 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002.\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html).\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content2014=\u7248\u6743\u6240\u6709 (c) 2006-2015, Talend Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0}\u81EA\u52A8\u751F\u6210 \n// CodeGenerator \u7248\u672C {1}\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3\u6709\u5173 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// \u7248\u6743\u6240\u6709 (c) 2005-2010, Talend Inc.\n//\n\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// / JobDesigner (CodeGenerator \u7248\u672C {1})\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content2014=\u7248\u6743\u6240\u6709 (c) 2006-2014, Talend Inc.\n//\n\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// CodeGenerator \u7248\u672C {1}\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002
AbstractComponentsProvider.folderNotExist=\u6587\u4EF6\u5939 {0} \u4E0D\u5B58\u5728\u3002
AbstractItemMigrationTask.taskFailed=\u8FC1\u79FB\u4EFB\u52A1 {0} \u5728\u8FC1\u79FB\u9879\u76EE {1} \u65F6\u5931\u8D25
AdvancedSocketFactory.failedInitial=\u9519\u8BEF\uFF1A\u65E0\u6CD5\u521D\u59CB\u5316\uFF1A
@@ -253,7 +253,7 @@ MetadataTool.schemaInvalid=Schema \u540D\u79F0\u65E0\u6548\u3002
MetadataTool.schemaNull=Schema \u540D\u79F0\u4E3A null\u3002
NodeReturnProposal.Availability=\n\u53EF\u7528\u6027\uFF1A {4}
NodeReturnProposal.Description=\u63CF\u8FF0\uFF1A{0}
NodeReturnProposal.GlobalVariable=\n\n\u5168\u5C40\u53D8\u91CF\uFF0C\u7EC4\u4EF6 {1} [{2}] \u7684\u5C5E\u6027\u3002
NodeReturnProposal.GlobalVariable=\n\n\u5168\u5C40\u53D8\u91CF\uFF0C\u7EC4\u4EF6\u5C5E\u6027 {1} [{2}].
NodeReturnProposal.Type=\n\u7C7B\u578B\uFF1A {3}
NodeReturnProposal.VariableName=\n\n\u53D8\u91CF\u540D\uFF1A {5}
PaletteContentDialog.connection=\u683C\u5F0F\u8FDE\u63A5\u9ED8\u8BA4\u503C:
@@ -302,13 +302,13 @@ RepositoryObject.NotImplemented=\u672A\u5B9E\u73B0
RepositoryToComponentProperty.xmlFileSelection=\u9009\u62E9\u8981\u9A8C\u8BC1\u7684 XML \u6587\u4EF6
RepositoryUpdateManager.Title=\u4FEE\u6539
RepositoryUpdateManager.Check=\u68C0\u67E5\u4E2D...
RepositoryUpdateManager.Messages=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u53EF\u80FD\u8981\u5F88\u4E45\u3002
RepositoryUpdateManager.MessagesForTDQ=\u662F\u5426\u8981\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u67D0\u4E9B\u5206\u6790\u4F9D\u8D56\u5173\u7CFB\u4F1A\u4E22\u5931\u4FE1\u606F\u3002\n\u53EF\u80FD\u8981\u5F88\u4E45
RepositoryUpdateManager.Messages=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F \n \u6B64\u8FC7\u7A0B\u53EF\u80FD\u6BD4\u8F83\u8017\u65F6\u3002
RepositoryUpdateManager.MessagesForTDQ=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u67D0\u4E9B\u5206\u6790\u4F9D\u8D56\u5173\u7CFB\u4F1A\u4E22\u5931\u4FE1\u606F\u3002\n\u6B64\u8FC7\u7A0B\u53EF\u80FD\u6BD4\u8F83\u8017\u65F6\u3002
RepositoryUpdateManager.NoModificationTitle=\u6CA1\u6709\u9700\u8981\u7684\u4FEE\u6539
RepositoryUpdateManager.NoModificationMessages=\u6CA1\u6709\u66F4\u65B0\u6240\u9700\u7684\u4FEE\u6539\u3002
RepositoryUpdateManager.NotFoundMessages=\u6CA1\u6709\u53EF\u5BFB\u627E\u7684\u5173\u7CFB\u3002
RepositoryUpdateManager.NotFoundTitle=\u627E\u4E0D\u5230
RepositoryUpdateManager.RenameContextMessagesNoBuiltIn=\u662F\u5426\u771F\u7684\u8981\u7ACB\u5373\u5C06\u91CD\u547D\u540D\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\n\u5982\u679C\u662F\uFF0C\u66F4\u65B0\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u3002
RepositoryUpdateManager.RenameContextMessagesNoBuiltIn=\u662F\u5426\u786E\u5B9A\u8981\u628A\u91CD\u547D\u540D\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F \n\n \u5982\u7EE7\u7EED\uFF0C\u5219\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002
RepositoryUpdateManager.RenameContextTitle=\u91CD\u547D\u540D\u95EE\u9898
RepositoryUpdateManager.ItemsToUpdate=\u68C0\u67E5\u8981\u66F4\u65B0\u7684\u9879\u76EE
RepositoryUpdateManager.job.title=\u6B63\u5728\u66F4\u65B0\u9879\u76EE...
@@ -558,7 +558,7 @@ OpenXSDFileDialog.cancel=\u53D6\u6D88
OpenXSDFileDialog.confirm=\u786E\u8BA4
OpenXSDFileDialog.fileName=\u6587\u4EF6\u540D:
OpenXSDFileDialog.xmlFileSelection=\u9009\u62E9\u8981\u9A8C\u8BC1\u7684 XML \u6587\u4EF6
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C\n \u5E94\u8BE5\u6709\u4E00\u4E2A xml \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C \n \u5E94\u8BE5\u6709\u4E00\u4E2A XML \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
RepositoryContentProvider.repositoryLabel.Queries=\u67E5\u8BE2
RepositoryContentProvider.repositoryLabel.sapBapi=SAP Bapi
RepositoryContentProvider.repositoryLabel.sapBapi.input=\u8F93\u5165

View File

@@ -15,6 +15,7 @@ package org.talend.core.service;
import org.talend.core.IService;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.process.IConnection;
import org.talend.core.model.process.INode;
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
/**
@@ -46,4 +47,24 @@ public interface IDQComponentService extends IService {
*/
void covertConfindWeight2Int(NodeType node);
/**
*
* Handle component chaged
*
* @param oldMetadataTable
* @param newMetadataTable
*/
void externalComponentInputMetadataChange(INode node, IMetadataTable newMetadataTable,
IMetadataTable oldMetadataTable);
/**
*
* Handle component chaged
*
* @param oldMetadataTable
* @param newMetadataTable
*/
void externalComponentOutputMetadataChange(INode node, IMetadataTable newMetadataTable,
IMetadataTable oldMetadataTable);
}

View File

@@ -65,10 +65,12 @@ public class ReferenceProjectProvider implements IReferenceProjectProvider {
loadFromContent = true;
}
@Override
public void initSettings() throws BusinessException, PersistenceException {
loadSettings();
}
@Override
public void loadSettings() throws PersistenceException {
referenceProjectList = null;
TypeReference<ReferenceProjectConfiguration> typeReference = new TypeReference<ReferenceProjectConfiguration>() {
@@ -151,11 +153,7 @@ public class ReferenceProjectProvider implements IReferenceProjectProvider {
public void saveSettings() throws PersistenceException, IOException {
IProject iProject = ResourceUtils.getProject(project.getTechnicalLabel());
IFile file = iProject.getFolder(CONFIGURATION_FOLDER_NAME).getFile(CONFIGURATION_FILE_NAME);
if (referenceProjectConfig == null) {
referenceProjectConfig = new ReferenceProjectConfiguration();
}
ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(referenceProjectConfig);
String content = toFileContents();
ByteArrayInputStream source = new ByteArrayInputStream(content.getBytes());
try {
if (!file.exists()) {
@@ -168,6 +166,15 @@ public class ReferenceProjectProvider implements IReferenceProjectProvider {
}
}
public String toFileContents() throws IOException {
if (referenceProjectConfig == null) {
referenceProjectConfig = new ReferenceProjectConfiguration();
}
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(referenceProjectConfig);
}
@Override
public boolean isHasConfigurationFile() {
return hasConfigurationFile;
}

View File

@@ -1,5 +1,5 @@
AbstractBrandingService_job_license_header_content=Copyright (c) 2005-2011, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_\n\n// (CodeGenerator version{0}\n// Vous pouvez trouver plus d'informations \u00E0 propos des produits Talend sur https://www.talend.com/\nfr/. {1}// Vous pouvez distribuer ce code suivant les termes de la licence\nGNU LGPL\n// http://www.gnu.org/licenses/lgpl.\nhtml\n).
AbstractBrandingService.routines_license_header_content=Copyright (c) 2006-2014, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// (CodeGenerator version {1}\n// Vous pouvez trouver plus d'informations \u00E0 propos des produits Talend sur https://www.talend.com/fr/.\n// Vous pouvez distribuer ce code suivant les termes de la licence GNU LGPL\n// http://www.gnu.org/licenses/lgpl.html).
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2011, Talend SA.\n//\n// Le code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// / JobDesigner (CodeGenerator version {1}).\n// Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.\n// Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL\n// (http://www.gnu.org/licenses/lgpl.html).\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content=Copyright (c) 2005-2011, Talend SA.\n//\n// Ce code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// CodeGenerator version {1}\n// Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.\n// Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL\n// (http://www.gnu.org/licenses/lgpl.html).
AbstractComponentsProvider.folderNotExist=Le dossier {0} n'existe pas.
AbstractItemMigrationTask.taskFailed=La t\u00E2che de migration {0} a \u00E9chou\u00E9 \u00E0 l'\u00E9l\u00E9ment {1}
AdvancedSocketFactory.failedInitial=Erreur : impossible d'initialiser :
@@ -234,7 +234,7 @@ RepositoryUpdateManager.NoModificationTitle=Aucune modification n\u00E9cessaire
RepositoryUpdateManager.NoModificationMessages=Aucune modification n\u00E9cessaire pour effectuer la mise \u00E0 jour.
RepositoryUpdateManager.NotFoundMessages=Aucune relation \u00E0 trouver.
RepositoryUpdateManager.NotFoundTitle=Introuvable
RepositoryUpdateManager.RenameContextMessages=Souhaitez-vous r\u00E9ellement propager le renommage des variables \u00E0 tous les Jobs ? \n\n Si oui, la mise \u00E0 jour peut prendre un moment.\n\n\u00A0Si non, les anciennes variables passeront en mode built-in dans le Job.
RepositoryUpdateManager.RenameContextMessages=Propager le renommage des variables \u00E0 tous les Jobs\u00A0? \n\n Si oui, la mise \u00E0 jour peut prendre du temps.\n\n Si non, les anciennes variables seront Built-In dans le Job.
RepositoryUpdateManager.RenameContextTitle=Renommer la question
RepositoryUpdateManager.ItemsToUpdate=V\u00E9rification des \u00E9l\u00E9ments \u00E0 mettre \u00E0 jour
RuleOperationChoiceDialog.editRules=\u00C9diter les r\u00E8gles
@@ -256,7 +256,7 @@ SchemaOperationChoiceDialog.StatusMessage=Le sch\u00E9ma est invalide, ou il exi
SchemaOperationChoiceDialog.Title=Sch\u00E9ma
SchemaOperationChoiceDialog.ViewSchemaMessage=Voir le sch\u00E9ma (lecture seule)
SchemaXPathQuerysDialog.Mappings=Correspondances
SelectRepositoryContextDialog.DeselectAll=D\u00E9s\u00E9lectionner tout
SelectRepositoryContextDialog.DeselectAll=Tout d\u00E9s\u00E9lectionner
SelectRepositoryContextDialog.CollapseAll=Tout r\u00E9duire
SelectRepositoryContextDialog.DuplicationMessage=Vous avez s\u00E9lectionn\u00E9 la variable "{0}" dans le contexte "{1}".
SelectRepositoryContextDialog.DuplicationTitle=Avertissement de duplication !
@@ -410,7 +410,7 @@ OpenXSDFileDialog.cancel=Annuler
OpenXSDFileDialog.confirm=Confirmer
OpenXSDFileDialog.fileName=Nom de fichier\u00A0:
OpenXSDFileDialog.xmlFileSelection=S\u00E9lectionnez un fichier XML \u00E0 valider
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier de m\u00E9tadonn\u00E9es XSD, \n il devrait y avoir un fichier XML \u00E0 valider.
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier XSD de m\u00E9tadonn\u00E9es, \n un fichier XML doit \u00EAtre \u00E0 valider.
repository.metadataFileBRMS=BRMS
repository.metadataFileBRMS.alias=BRMS
repository.jobscript=Scripts de Jobs
@@ -453,7 +453,7 @@ TalendDataCollectorUploadingPreferencePage_UploadPeriod=P\u00E9riode de chargeme
TalendDataCollectorUploadingPreferencePage_Days=Jours
repository.servicesOperation=Op\u00E9ration
repository.servicesPort=Port
RepositoryUpdateManager.MessagesForTDQ=Voulez-vous propager les modifications \u00E0 tous les Jobs\u00A0?\nCertaines d\u00E9pendances d'analyses vont perdre des informations.\nCela peut prendre un moment.
RepositoryUpdateManager.MessagesForTDQ=Voulez-vous propager les modifications \u00E0 tous les Jobs ?\nCertaines d\u00E9pendances d'analyses vont perdre des informations.\nCela peut prendre un moment.
EComponentCategory.executeJob=Ex\u00E9cuter le Job
EComponentCategory.monitoring=Monitoring
BinRepositoryNode.label=Corbeille
@@ -553,7 +553,7 @@ ContextTreeValuesComposite.Menu=Menu
ContextMissSettingComposite.missingModuleMessages=cette vue de contextes requiert l'installation d'un Jar externe
ContextMissSettingComposite.installName=Installer
ContextMissSettingComposite.Title_Missing_jars_for_plugin=Biblioth\u00E8ques tierces manquantes
ContextMissSettingComposite.description_jars_to_be_installed_in=Le Studio requiert l'installation de biblioth\u00E8ques tierces.\nVeuillez installer les JAR suivants avant de fermer cette fen\u00EAtre.
ContextMissSettingComposite.description_jars_to_be_installed_in=Le Studio requiert l'installation de biblioth\u00E8ques tierces.\nInstallez les Jars suivants avant de fermer cette fen\u00EAtre.
ContextTreeTable.AddToBuildIn_label=Ajouter \u00E0 built-in
ContextTreeTable.AddToRepository_label=Ajouter au contexte du r\u00E9f\u00E9rentiel
ContextNebulaComposite.ContextsUnAvailable=La vue Contextes n'est pas disponible.
@@ -567,7 +567,7 @@ WorkspaceMnu.choose.tooltip=S\u00E9lectionner un autre r\u00E9pertoire Workspace
WorkspaceMnu.restart.error.title=Propri\u00E9t\u00E9 syst\u00E8me manquante
WorkspaceMnu.restart.error.message=Impossible de relancer la plateforme car la propri\u00E9t\u00E9 {0} n'est pas configur\u00E9e.
WorkspaceDlg.title=S\u00E9lectionner le r\u00E9pertoire Workspace
WorkspaceDlg.Message=Le Studio Talend stocke vos donn\u00E9es dans un dossier nomm\u00E9 Workspace\nS\u00E9lectionnez le dossier Workspace.
WorkspaceDlg.Message=Le Studio Talend stocke vos donn\u00E9es dans un dossier nomm\u00E9 Workspace.\nS\u00E9lectionnez le dossier Workspace.
WorkspaceDlg.workspace.label=Espace de travail
WorkspaceDlg.browse.button=P&arcourir
WorkspaceDlg.browse.folder.title=S\u00E9lectionner un dossier Workspace
@@ -580,4 +580,4 @@ I18nPreferencePage.restartButton=Red\u00E9marrage requis pour prendre en compte
I18nPreferencePage.restoreDefault=Restaurer les param\u00E8tres par d\u00E9faut
I18nPreferencePage.wait_process=Le processus va prendre plusieurs minutes, patientez...
MetadataPreferencePage.EnableBasic.name=Autorise l'en-t\u00EAte d'authentification basique
MetadataPreferencePage.MessageDialog.Restart=Le Studio doit red\u00E9marrer pour que ce param\u00E8tre soit pris en compte.\n\u00CAtes-vous s\u00FBr(e)\u00A0?
MetadataPreferencePage.MessageDialog.Restart=Le Studio doit red\u00E9marrer pour que ce param\u00E8tre soit pris en compte.\nContinuer malgr\u00E9 tout ?

View File

@@ -1,5 +1,5 @@
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2011, Talend Inc.\n//\n//\u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F_{0}\n\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F// JobDesigner (CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1})\n// Talend\u88FD\u54C1\u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n//\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\n// http://www.gnu.org/licenses/lgpl.html)\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content=Copyright (c) 2005-2011, Talend Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F\u6B21\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F: _{0}\n // CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1}\n// Talend\u88FD\u54C1\u306E\u8A73\u7D30\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n//\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\u3002\n// http://www.gnu.org/licenses/lgpl.html)
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2005-2011, Talend Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// / JobDesigner (CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1})\n// Talend\u88FD\u54C1\u306E\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n// \u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\n// (http://www.gnu.org/licenses/lgpl.html)\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content=Copyright (c) 2005-2011, Talend Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{1}\n// Talend\u88FD\u54C1\u306E\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831\u306F\u3001www.talend.com\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n// \u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\n// (http://www.gnu.org/licenses/lgpl.html)\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059\u3002
AbstractComponentsProvider.folderNotExist=\u30D5\u30A9\u30EB\u30C0\u30FC{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002
AbstractItemMigrationTask.taskFailed=\u30A2\u30A4\u30C6\u30E0{1}\u4E0A\u306E\u79FB\u884C\u30BF\u30B9\u30AF{0}\u304C\u5931\u6557\u3057\u307E\u3057\u305F
AdvancedSocketFactory.failedInitial=\u30A8\u30E9\u30FC:\u521D\u671F\u5316\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
@@ -229,13 +229,13 @@ RepositoryObject.NotImplemented=\u672A\u5B9F\u88C5
RepositoryToComponentProperty.xmlFileSelection=\u691C\u8A3C\u3059\u308BXML\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
RepositoryUpdateManager.Title=\u5909\u66F4
RepositoryUpdateManager.Check=\u30C1\u30A7\u30C3\u30AF\u4E2D...
RepositoryUpdateManager.Messages=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\n\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.Messages=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n \u3053\u306E\u64CD\u4F5C\u306B\u306F\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.NoModificationTitle=\u5909\u66F4\u4E0D\u8981
RepositoryUpdateManager.NoModificationMessages=\u66F4\u65B0\u306B\u5FC5\u8981\u306A\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundMessages=\u95A2\u4FC2\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundTitle=\u898B\u3064\u304B\u308A\u307E\u305B\u3093
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u304C\u5909\u66F4\u3055\u308C\u305F\u5909\u6570\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u4ECA\u3059\u3050\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n\n[\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=Rename Question
RepositoryUpdateManager.RenameContextMessages=\u5909\u6570\u306E\u540D\u524D\u5909\u66F4\u3092\u4ECA\u3059\u3050\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n\n [\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=\u540D\u524D\u5909\u66F4\u306E\u8CEA\u554F
RepositoryUpdateManager.ItemsToUpdate=\u66F4\u65B0\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u3092\u30C1\u30A7\u30C3\u30AF
RuleOperationChoiceDialog.editRules=\u30EB\u30FC\u30EB\u3092\u7DE8\u96C6
RuleOperationChoiceDialog.rule=\u30EB\u30FC\u30EB:
@@ -410,7 +410,7 @@ OpenXSDFileDialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
OpenXSDFileDialog.confirm=\u78BA\u8A8D
OpenXSDFileDialog.fileName=\u30D5\u30A1\u30A4\u30EB\u540D:
OpenXSDFileDialog.xmlFileSelection=\u691C\u8A3C\u3059\u308BXML\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001\n\u691C\u8A3C\u3059\u308Bxml\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001 \n \u691C\u8A3C\u7528\u306Exml\u30D5\u30A1\u30A4\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002
repository.metadataFileBRMS=BRMS
repository.metadataFileBRMS.alias=BRMS
repository.jobscript=\u30B8\u30E7\u30D6\u30B9\u30AF\u30EA\u30D7\u30C8
@@ -453,7 +453,7 @@ TalendDataCollectorUploadingPreferencePage_UploadPeriod=\u30A2\u30C3\u30D7\u30ED
TalendDataCollectorUploadingPreferencePage_Days=\u65E5
repository.servicesOperation=\u64CD\u4F5C
repository.servicesPort=\u30DD\u30FC\u30C8
RepositoryUpdateManager.MessagesForTDQ=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\n\u4E00\u90E8\u306E\u5206\u6790\u4F9D\u5B58\u9805\u76EE\u306E\u60C5\u5831\u304C\u5931\u308F\u308C\u307E\u3059\u3002\n\u3053\u306E\u51E6\u7406\u306B\u306F\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
RepositoryUpdateManager.MessagesForTDQ=\u5909\u66F4\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B?\n\u4E00\u90E8\u306E\u5206\u6790\u4F9D\u5B58\u9805\u76EE\u3067\u60C5\u5831\u304C\u5931\u308F\u308C\u307E\u3059\u3002\n\u3053\u306E\u64CD\u4F5C\u306B\u306F\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
EComponentCategory.executeJob=\u30B8\u30E7\u30D6\u3092\u5B9F\u884C
EComponentCategory.monitoring=\u76E3\u8996
BinRepositoryNode.label=\u3054\u307F\u7BB1
@@ -553,7 +553,7 @@ ContextTreeValuesComposite.Menu=\u30E1\u30CB\u30E5\u30FC
ContextMissSettingComposite.missingModuleMessages=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D3\u30E5\u30FC\u306F \u5916\u90E8Jar\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5FC5\u8981\u3067\u3059
ContextMissSettingComposite.installName=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ContextMissSettingComposite.Title_Missing_jars_for_plugin=\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
ContextMissSettingComposite.description_jars_to_be_installed_in=Studio\u306B\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u9589\u3058\u308B\u524D\u306Bjar\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ContextMissSettingComposite.description_jars_to_be_installed_in=Studio\u306B\u306F\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u3053\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u9589\u3058\u308B\u524D\u306B\u3001\u6B21\u306Ejar\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ContextTreeTable.AddToBuildIn_label=\u8FFD\u52A0\u3057\u3066\u7D44\u307F\u8FBC\u307F
ContextTreeTable.AddToRepository_label=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u8FFD\u52A0
ContextNebulaComposite.ContextsUnAvailable=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D3\u30E5\u30FC\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
@@ -567,7 +567,7 @@ WorkspaceMnu.choose.tooltip=\u4ED6\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30
WorkspaceMnu.restart.error.title=\u30B7\u30B9\u30C6\u30E0\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
WorkspaceMnu.restart.error.message={0}\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u672A\u8A2D\u5B9A\u306E\u305F\u3081\u3001\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3092\u518D\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002
WorkspaceDlg.title=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u9078\u629E
WorkspaceDlg.Message=Talend Studio\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3068\u3044\u3046\u540D\u524D\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306B\u30C7\u30FC\u30BF\u3092\u4FDD\u7BA1\u3057\u307E\u3059\u3002\n\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
WorkspaceDlg.Message=Talend Studio\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3068\u3044\u3046\u540D\u524D\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306B\u30C7\u30FC\u30BF\u3092\u4FDD\u7BA1\u3057\u307E\u3059\u3002\n\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u9078\u629E\u3057\u307E\u3059\u3002
WorkspaceDlg.workspace.label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9
WorkspaceDlg.browse.button=\u53C2\u7167(&B)...
WorkspaceDlg.browse.folder.title=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u9078\u629E
@@ -580,4 +580,4 @@ I18nPreferencePage.restartButton=\u6709\u52B9\u5316\u306B\u306F\u518D\u8D77\u52D
I18nPreferencePage.restoreDefault=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u5FA9\u5143
I18nPreferencePage.wait_process=\u3053\u306E\u51E6\u7406\u306B\u306F\u6570\u5206\u304B\u304B\u308A\u307E\u3059\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...
MetadataPreferencePage.EnableBasic.name=\u57FA\u672C\u8A8D\u8A3C\u30D8\u30C3\u30C0\u30FC\u3092\u6709\u52B9\u306B\u3059\u308B
MetadataPreferencePage.MessageDialog.Restart=\u3053\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3088\u3046\u3001Studio\u3092\u518D\u8D77\u52D5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u3088\u308D\u3057\u3044\u3067\u3059\u304B?
MetadataPreferencePage.MessageDialog.Restart=\u3053\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3088\u3046\u3001Studio\u3092\u518D\u8D77\u52D5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B?

View File

@@ -1,5 +1,5 @@
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// \u7248\u6743\u6240\u6709 (c) 2005-2011, Talend Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0}\n\u81EA\u52A8\u751F\u6210// / JobDesigner (CodeGenerator \u7248\u672C {1})\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3\u6709\u5173 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002.\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html).\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content=\u7248\u6743\u6240\u6709 (c) 2005-2011, Talend Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0}\n \u81EA\u52A8\u751F\u6210// CodeGenerator \u7248\u672C {1}\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3\u6709\u5173 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002
AbstractBrandingService_job_license_header_content=// ============================================================================\n//\n// \u7248\u6743\u6240\u6709 (c) 2005-2011\uFF0CTalend Inc.\n//\n\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// / JobDesigner (CodeGenerator \u7248\u672C {1})\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002\n//\n// ============================================================================
AbstractBrandingService.routines_license_header_content=\u7248\u6743\u6240\u6709 (c) 2005-2011\uFF0CTalend Inc.\n//\n\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// CodeGenerator \u7248\u672C {1}\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE www.talend.com \u4E86\u89E3 Talend \u4EA7\u54C1\u7684\u66F4\u591A\u4FE1\u606F\u3002\n// \u60A8\u53EF\u4EE5\u6839\u636E GNU LGPL \u8BB8\u53EF\u8BC1\u6761\u6B3E\u5206\u53D1\u6B64\u4EE3\u7801\n// http://www.gnu.org/licenses/lgpl.html)\u3002
AbstractComponentsProvider.folderNotExist=\u6587\u4EF6\u5939 {0} \u4E0D\u5B58\u5728\u3002
AbstractItemMigrationTask.taskFailed=\u8FC1\u79FB\u4EFB\u52A1 {0} \u5728\u8FC1\u79FB\u9879\u76EE {1} \u65F6\u5931\u8D25
AdvancedSocketFactory.failedInitial=\u9519\u8BEF\uFF1A\u65E0\u6CD5\u521D\u59CB\u5316:
@@ -229,12 +229,12 @@ RepositoryObject.NotImplemented=\u672A\u5B9E\u73B0
RepositoryToComponentProperty.xmlFileSelection=\u9009\u62E9\u8981\u9A8C\u8BC1\u7684 XML \u6587\u4EF6
RepositoryUpdateManager.Title=\u4FEE\u6539
RepositoryUpdateManager.Check=\u68C0\u67E5\u4E2D...
RepositoryUpdateManager.Messages=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u53EF\u80FD\u8981\u5F88\u4E45\u3002
RepositoryUpdateManager.Messages=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F \n \u53EF\u80FD\u8981\u5F88\u4E45.
RepositoryUpdateManager.NoModificationTitle=\u6CA1\u6709\u9700\u8981\u7684\u4FEE\u6539
RepositoryUpdateManager.NoModificationMessages=\u6CA1\u6709\u66F4\u65B0\u6240\u9700\u7684\u4FEE\u6539\u3002
RepositoryUpdateManager.NotFoundMessages=\u6CA1\u6709\u53EF\u5BFB\u627E\u7684\u5173\u7CFB\u3002
RepositoryUpdateManager.NotFoundTitle=\u627E\u4E0D\u5230
RepositoryUpdateManager.RenameContextMessages=\u662F\u5426\u786E\u5B9A\u8981\u7ACB\u5373\u5C06\u91CD\u547D\u540D\u7684\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u7684\u4F5C\u4E1A\uFF1F\n\n \u5982\u679C\u662F\uFF0C\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002\n\n \u5982\u679C\u4E0D\u662F\uFF0C\u65E7\u7684\u53D8\u91CF\u5C06\u6539\u4E3A\u5185\u7F6E\u4E8E\u4F5C\u4E1A\u4E2D\u3002
RepositoryUpdateManager.RenameContextMessages=\u662F\u5426\u786E\u5B9A\u8981\u7ACB\u5373\u5C06\u91CD\u547D\u540D\u7684\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u7684\u4F5C\u4E1A\uFF1F \n\n \u5982\u7EE7\u7EED\uFF0C\u5219\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002\n\n \u5426\u5219\uFF0C\u65E7\u7684\u53D8\u91CF\u5C06\u53D8\u4E3A\u4F5C\u4E1A\u4E2D\u7684\u5185\u7F6E\u53D8\u91CF\u3002
RepositoryUpdateManager.RenameContextTitle=\u91CD\u547D\u540D\u95EE\u9898
RepositoryUpdateManager.ItemsToUpdate=\u68C0\u67E5\u8981\u66F4\u65B0\u7684\u9879\u76EE
RuleOperationChoiceDialog.editRules=\u7F16\u8F91\u89C4\u5219
@@ -410,7 +410,7 @@ OpenXSDFileDialog.cancel=\u53D6\u6D88
OpenXSDFileDialog.confirm=\u786E\u8BA4
OpenXSDFileDialog.fileName=\u6587\u4EF6\u540D:
OpenXSDFileDialog.xmlFileSelection=\u9009\u62E9\u8981\u9A8C\u8BC1\u7684 XML \u6587\u4EF6
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C\n \u5E94\u8BE5\u6709\u4E00\u4E2A xml \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C \n \u5E94\u8BE5\u6709\u4E00\u4E2A XML \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
repository.metadataFileBRMS=BRMS
repository.metadataFileBRMS.alias=BRMS
repository.jobscript=\u4F5C\u4E1A\u811A\u672C
@@ -453,7 +453,7 @@ TalendDataCollectorUploadingPreferencePage_UploadPeriod=\u4E0A\u4F20\u5468\u671F
TalendDataCollectorUploadingPreferencePage_Days=\u65E5
repository.servicesOperation=\u64CD\u4F5C
repository.servicesPort=\u7AEF\u53E3
RepositoryUpdateManager.MessagesForTDQ=\u662F\u5426\u8981\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u67D0\u4E9B\u5206\u6790\u4F9D\u8D56\u5173\u7CFB\u4F1A\u4E22\u5931\u4FE1\u606F\u3002\n\u53EF\u80FD\u8981\u5F88\u4E45\u3002
RepositoryUpdateManager.MessagesForTDQ=\u662F\u5426\u5C06\u4FEE\u6539\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F\n\u67D0\u4E9B\u5206\u6790\u4F9D\u8D56\u5173\u7CFB\u4F1A\u4E22\u5931\u4FE1\u606F\u3002\n\u53EF\u80FD\u8981\u5F88\u4E45.
EComponentCategory.executeJob=\u6267\u884C\u4F5C\u4E1A
EComponentCategory.monitoring=\u76D1\u63A7
BinRepositoryNode.label=\u56DE\u6536\u7AD9
@@ -530,7 +530,7 @@ RoutinesFunctionProposal.VariableName.v1=\u793A\u4F8B\uFF1A{3}\n\n
RoutinesFunctionProposal.User=\u7528\u6237
RoutinesFunctionProposal.System=\u7CFB\u7EDF
NodeReturnProposal.Description=\u63CF\u8FF0\uFF1A{0}
NodeReturnProposal.GlobalVariable=\n\n\u5168\u5C40\u53D8\u91CF\uFF0C\u7EC4\u4EF6 {1} [{2}] \u7684\u5C5E\u6027\u3002
NodeReturnProposal.GlobalVariable=\n\n\u5168\u5C40\u53D8\u91CF\uFF0C\u7EC4\u4EF6\u5C5E\u6027 {1} [{2}].
NodeReturnProposal.Type=\n\u7C7B\u578B\uFF1A {3}
NodeReturnProposal.Availability=\n\u53EF\u7528\u6027\uFF1A {4}
NodeReturnProposal.VariableName=\n\n\u53D8\u91CF\u540D\uFF1A {5}
@@ -553,7 +553,7 @@ ContextTreeValuesComposite.Menu=\u83DC\u5355
ContextMissSettingComposite.missingModuleMessages=\u8FD9\u4E2A\u4E0A\u4E0B\u6587\u89C6\u56FE\u9700\u8981 \u5B89\u88C5\u4E00\u4E2A\u5916\u90E8jar
ContextMissSettingComposite.installName=\u5B89\u88C5
ContextMissSettingComposite.Title_Missing_jars_for_plugin=\u7F3A\u5C11\u7B2C\u4E09\u65B9\u5E93
ContextMissSettingComposite.description_jars_to_be_installed_in=Studio \u8981\u6C42\u5B89\u88C5\u7B2C\u4E09\u65B9\u5E93\uFF0C\n\u8BF7\u5728\u5173\u95ED\u6B64\u7A97\u53E3\u524D\u5B89\u88C5\u4EE5\u4E0B jar\u3002
ContextMissSettingComposite.description_jars_to_be_installed_in=Studio \u8981\u6C42\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5E93\u3002\n\u8BF7\u5728\u5173\u95ED\u6B64\u7A97\u53E3\u524D\u5B89\u88C5\u4EE5\u4E0B jar \u5305\u3002
ContextTreeTable.AddToBuildIn_label=\u6DFB\u52A0\u5230\u6784\u5EFA\u4E2D
ContextTreeTable.AddToRepository_label=\u6DFB\u52A0\u5230\u5B58\u50A8\u5E93\u4E0A\u4E0B\u6587
ContextNebulaComposite.ContextsUnAvailable=\u4E0A\u4E0B\u6587\u89C6\u56FE\u4E0D\u53EF\u7528
@@ -580,4 +580,4 @@ I18nPreferencePage.restartButton=\u91CD\u542F\u540E\u751F\u6548\u3002
I18nPreferencePage.restoreDefault=\u6062\u590D\u9ED8\u8BA4\u8BBE\u7F6E
I18nPreferencePage.wait_process=\u8FD9\u4E2A\u8FC7\u7A0B\u5C06\u6301\u7EED\u51E0\u5206\u949F\u65F6\u95F4\uFF0C\u8BF7\u7A0D\u5019...
MetadataPreferencePage.EnableBasic.name=\u542F\u7528\u57FA\u672C\u8EAB\u4EFD\u9A8C\u8BC1\u6807\u5934
MetadataPreferencePage.MessageDialog.Restart=\u6B64\u8BBE\u7F6E\u5C06\u5728 Studio \u91CD\u542F\u540E\u751F\u6548\u3002\n\u662F\u5426\u786E\u5B9A\u91CD\u542F\uFF1F
MetadataPreferencePage.MessageDialog.Restart=\u6B64\u8BBE\u7F6E\u5C06\u5728 Studio \u91CD\u542F\u540E\u751F\u6548\u3002\n\u662F\u5426\u786E\u5B9A\uFF1F

View File

@@ -341,7 +341,6 @@ public class ContextTreeTable {
private void attachCheckColumnTip(NatTable nt) {
DefaultToolTip toolTip = new ContextNatTableToolTip(nt);
toolTip.setBackgroundColor(natTable.getDisplay().getSystemColor(7));
toolTip.setPopupDelay(500);
toolTip.activate();
toolTip.setShift(new Point(10, 10));

View File

@@ -2,6 +2,7 @@ package org.talend.core.ui.services;
import java.io.Serializable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
@@ -26,6 +27,8 @@ public interface IGitUIProviderService extends IService {
public void openPushFailedDialog(Object pushResult);
boolean migrateOption(IProgressMonitor monitor, String newVersion, boolean hasUpdate) throws Exception;
public static IGitUIProviderService get() {
GlobalServiceRegister register = GlobalServiceRegister.getDefault();
if (!register.isServiceRegistered(IGitUIProviderService.class)) {

View File

@@ -155,14 +155,14 @@ RepositoryUpdateManager.NoModificationTitle=Aucune modification n\u00E9cessaire
RepositoryUpdateManager.NoModificationMessages=Aucune modification n\u00E9cessaire pour effectuer la mise \u00E0 jour.
RepositoryUpdateManager.NotFoundMessages=Aucune relation \u00E0 trouver.
RepositoryUpdateManager.NotFoundTitle=Introuvable
RepositoryUpdateManager.RenameContextMessages=Propager le renommage des variables \u00E0 tous les Jobs\u00A0? \n\n Si oui, la mise \u00E0 jour peut prendre du temps. \n\n Si non, les anciennes variables seront Built-In dans le Job.
RepositoryUpdateManager.RenameContextMessages=Propager le renommage des variables \u00E0 tous les Jobs\u00A0? \n\n Si oui, la mise \u00E0 jour peut prendre du temps.\n\n Si non, les anciennes variables seront Built-In dans le Job.
RepositoryUpdateManager.RenameContextTitle=Renommer la question
RepositoryUpdateManager.ItemsToUpdate=V\u00E9rification des \u00E9l\u00E9ments \u00E0 mettre \u00E0 jour
RuleOperationChoiceDialog.editRules=\u00C9diter les r\u00E8gles
RuleOperationChoiceDialog.rule=R\u00E8gle :
RuleOperationChoiceDialog.selectRulesFile=S\u00E9lectionner une r\u00E8gle depuis un fichier
RuleOperationChoiceDialog.viewRules=Voir les r\u00E8gles (lecture seule)
SelectRepositoryContextDialog.DeselectAll=D\u00E9s\u00E9lectionner tout
SelectRepositoryContextDialog.DeselectAll=Tout d\u00E9s\u00E9lectionner
SelectRepositoryContextDialog.CollapseAll=Tout r\u00E9duire
SelectRepositoryContextDialog.DuplicationMessage=Vous avez s\u00E9lectionn\u00E9 la variable "{0}" dans le contexte "{1}".
SelectRepositoryContextDialog.DuplicationTitle=Avertissement de duplication !

View File

@@ -155,8 +155,8 @@ RepositoryUpdateManager.NoModificationTitle=\u5909\u66F4\u4E0D\u8981
RepositoryUpdateManager.NoModificationMessages=\u66F4\u65B0\u306B\u5FC5\u8981\u306A\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundMessages=\u95A2\u4FC2\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
RepositoryUpdateManager.NotFoundTitle=\u898B\u3064\u304B\u308A\u307E\u305B\u3093
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u304C\u5909\u66F4\u3055\u308C\u305F\u5909\u6570\u3092\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u4ECA\u3059\u3050\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n\n [\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=Rename Question
RepositoryUpdateManager.RenameContextMessages=\u540D\u524D\u5909\u66F4\u5909\u6570\u3092\u4ECA\u3059\u3050\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u306B\u30D7\u30ED\u30D1\u30B2\u30FC\u30C8\u3057\u307E\u3059\u304B? \n\n [\u306F\u3044]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u66F4\u65B0\u306B\u975E\u5E38\u306B\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n\n [\u3044\u3044\u3048]\u3092\u9078\u629E\u3059\u308B\u3068\u3001\u53E4\u3044\u5909\u6570\u304C\u30B8\u30E7\u30D6\u5185\u3067\u7D44\u307F\u8FBC\u307F\u306B\u5909\u308F\u308A\u307E\u3059\u3002
RepositoryUpdateManager.RenameContextTitle=\u540D\u524D\u5909\u66F4\u306E\u8CEA\u554F
RepositoryUpdateManager.ItemsToUpdate=\u66F4\u65B0\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u3092\u30C1\u30A7\u30C3\u30AF
RuleOperationChoiceDialog.editRules=\u30EB\u30FC\u30EB\u3092\u7DE8\u96C6
RuleOperationChoiceDialog.rule=\u30EB\u30FC\u30EB:

View File

@@ -155,7 +155,7 @@ RepositoryUpdateManager.NoModificationTitle=\u6CA1\u6709\u9700\u8981\u7684\u4FEE
RepositoryUpdateManager.NoModificationMessages=\u6CA1\u6709\u66F4\u65B0\u6240\u9700\u7684\u4FEE\u6539\u3002
RepositoryUpdateManager.NotFoundMessages=\u6CA1\u6709\u53EF\u5BFB\u627E\u7684\u5173\u7CFB\u3002
RepositoryUpdateManager.NotFoundTitle=\u627E\u4E0D\u5230
RepositoryUpdateManager.RenameContextMessages=\u662F\u5426\u786E\u5B9A\u8981\u7ACB\u5373\u5C06\u91CD\u547D\u540D\u7684\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u7684\u4F5C\u4E1A\uFF1F\n\n \u5982\u679C\u662F\uFF0C\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002\n\n \u5982\u679C\u4E0D\u662F\uFF0C\u65E7\u7684\u53D8\u91CF\u5C06\u6539\u4E3A\u5185\u7F6E\u4E8E\u4F5C\u4E1A\u4E2D\u3002
RepositoryUpdateManager.RenameContextMessages=\u662F\u5426\u786E\u5B9A\u8981\u628A\u91CD\u547D\u540D\u53D8\u91CF\u4F20\u64AD\u5230\u6240\u6709\u4F5C\u4E1A\uFF1F \n\n \u5982\u7EE7\u7EED\uFF0C\u5219\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\u8FDB\u884C\u66F4\u65B0\u3002\n\n \u5426\u5219\uFF0C\u65E7\u7684\u53D8\u91CF\u5C06\u53D8\u4E3A\u4F5C\u4E1A\u4E2D\u7684\u5185\u7F6E\u53D8\u91CF\u3002
RepositoryUpdateManager.RenameContextTitle=\u91CD\u547D\u540D\u95EE\u9898
RepositoryUpdateManager.ItemsToUpdate=\u68C0\u67E5\u8981\u66F4\u65B0\u7684\u9879\u76EE
RuleOperationChoiceDialog.editRules=\u7F16\u8F91\u89C4\u5219

View File

@@ -693,7 +693,6 @@ public class ProcessorUtilities {
processor.setArguments(argumentsMap);
handelDQComponents(selectedProcessItem, currentProcess);
// generate the code of the father after the childrens
// so the code won't have any error during the check, and it will help to check
// if the generation is really needed.
@@ -709,6 +708,8 @@ public class ProcessorUtilities {
*/
generateBuildInfo(jobInfo, progressMonitor, isMainJob, currentProcess, currentJobName, processor, option);
handelDQComponents(selectedProcessItem, currentProcess);
copyDependenciedResources(currentProcess);
return processor;
@@ -1237,8 +1238,6 @@ public class ProcessorUtilities {
processor.setArguments(argumentsMap);
handelDQComponents(selectedProcessItem, currentProcess);
generateContextInfo(jobInfo, selectedContextName, statistics, trace, needContext, progressMonitor,
currentProcess, currentJobName, processor, isMainJob, codeGenerationNeeded);
@@ -1254,6 +1253,8 @@ public class ProcessorUtilities {
generateBuildInfo(jobInfo, progressMonitor, isMainJob, currentProcess, currentJobName, processor, option);
TimeMeasure.step(idTimer, "generateBuildInfo");
handelDQComponents(selectedProcessItem, currentProcess);
copyDependenciedResources(currentProcess);
return processor;
@@ -1312,6 +1313,19 @@ public class ProcessorUtilities {
}
}
}
// clean up sub job external resources folder if needed
if (currentProcess != null && currentProcess instanceof IProcess2) {
String projectFolderName = JavaResourcesHelper.getProjectFolderName(((IProcess2) currentProcess).getProperty());
IFolder externalResourcesFolder = jobProject.getExternalResourcesFolder().getFolder(projectFolderName);
if (externalResourcesFolder.exists()) {
for (IResource resource : externalResourcesFolder.members()) {
if (resource.exists()
&& !resource.getProjectRelativePath().toPortableString().endsWith(jobPackageFolder)) {
resource.delete(true, progressMonitor);
}
}
}
}
} catch (CoreException e) {
ExceptionHandler.process(e);
}

View File

@@ -575,15 +575,15 @@ _UI_CheckConstraint_deferrability_feature=\u9045\u5EF6\u53EF\u80FD\u6027
_UI_Field_length_feature=\u9577\u3055
_UI_Field_precision_feature=\u7CBE\u5EA6
_UI_Field_scale_feature=\u30B9\u30B1\u30FC\u30EB
_UI_RecordDef_fieldDelimiter_feature=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u8A18\u53F7
_UI_RecordDef_fieldDelimiter_feature=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
_UI_RecordDef_isFixedWidth_feature=\u56FA\u5B9A\u5E45\u3067\u3042\u308B
_UI_RecordDef_textDelimiter_feature=\u30C6\u30AD\u30B9\u30C8\u533A\u5207\u308A\u8A18\u53F7
_UI_RecordDef_textDelimiter_feature=\u30C6\u30AD\u30B9\u30C8\u533A\u5207\u308A
_UI_RecordDef_file_feature=\u30D5\u30A1\u30A4\u30EB
_UI_RecordDef_section_feature=\u30BB\u30AF\u30B7\u30E7\u30F3
_UI_FixedOffsetField_offset_feature=\u30AA\u30D5\u30BB\u30C3\u30C8
_UI_FixedOffsetField_offsetUnitBits_feature=\u5358\u4F4D\u30D3\u30C3\u30C8\u30AA\u30D5\u30BB\u30C3\u30C8
_UI_RecordFile_isSelfDescribing_feature=\u81EA\u5DF1\u8AAC\u660E\u3067\u3042\u308B
_UI_RecordFile_recordDelimiter_feature=\u30EC\u30B3\u30FC\u30C9\u533A\u5207\u308A\u8A18\u53F7
_UI_RecordFile_recordDelimiter_feature=\u30EC\u30B3\u30FC\u30C9\u533A\u5207\u308A
_UI_RecordFile_skipRecords_feature=\u30EC\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30C3\u30D7
_UI_RecordFile_record_feature=\u30EC\u30B3\u30FC\u30C9
_UI_Dimension_dimensionedObject_feature=\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\uFF84\uFF9E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8

View File

@@ -11,20 +11,21 @@
<packaging>eclipse-plugin</packaging>
<properties>
<tcomp.version>${component-runtime.version}</tcomp.version>
<cxf.version>3.4.5</cxf.version>
<cxf.version>3.5.1</cxf.version>
<geronimo.version>1.0.2</geronimo.version>
<jackson.version>2.12.1</jackson.version>
<jcache.version>1.0.5</jcache.version>
<jcache_spec.version>1.0-alpha-1</jcache_spec.version>
<johnzon.version>1.2.15</johnzon.version>
<meecrowave.version>1.2.12</meecrowave.version>
<johnzon.version>1.2.16</johnzon.version>
<meecrowave.version>1.2.13</meecrowave.version>
<microprofile.version>1.2.1</microprofile.version>
<owb.version>2.0.23</owb.version>
<owb.version>2.0.26</owb.version>
<slf4j.version>1.7.32</slf4j.version>
<tomcat.version>9.0.54</tomcat.version>
<tomcat.version>9.0.59</tomcat.version>
<xbean.version>4.20</xbean.version>
<reload4j.version>1.2.19</reload4j.version>
<log4j2.version>2.17.1</log4j2.version>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
<repositories>
<repository>
@@ -372,6 +373,17 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>${reload4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -466,4 +478,4 @@
</plugin>
</plugins>
</build>
</project>
</project>

View File

@@ -1,134 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository-tos</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>studio-tcompv1-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<tcomp.version>1.41.0</tcomp.version>
<slf4j.version>1.7.32</slf4j.version>
</properties>
<repositories>
<repository>
<id>talend_open</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceRelease/</url>
</repository>
<repository>
<id>talend_open_snapshots</id>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
</repository>
<repository>
<id>sonatype_releases</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/releases/</url>
</repository>
<repository>
<id>sonatype_snapshots</id>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-runtime</artifactId>
<version>${tcomp.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-server</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-runtime-di</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-api</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>slf4j-standard</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputDirectory>${basedir}/../tmp/repository</outputDirectory>
<useRepositoryLayout>true</useRepositoryLayout>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository-tos</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>studio-tcompv1-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<tcomp.version>1.43.1</tcomp.version>
<slf4j.version>1.7.32</slf4j.version>
<reload4j.version>1.2.19</reload4j.version>
</properties>
<repositories>
<repository>
<id>talend_open</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceRelease/</url>
</repository>
<repository>
<id>talend_open_snapshots</id>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
</repository>
<repository>
<id>sonatype_releases</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/releases/</url>
</repository>
<repository>
<id>sonatype_snapshots</id>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-runtime</artifactId>
<version>${tcomp.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-server</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-runtime-di</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-api</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>slf4j-standard</artifactId>
<version>${tcomp.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>${reload4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputDirectory>${basedir}/../tmp/repository</outputDirectory>
<useRepositoryLayout>true</useRepositoryLayout>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -52,7 +52,7 @@
<artifactItem>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository</artifactId>
<version>8.0.1.v20210917</version>
<version>8.0.1.v20220325</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${project.basedir}/../repository</outputDirectory>

View File

@@ -11,7 +11,7 @@ ProjectPomProjectSettingPage_FilterPomLabel=Filtrer pour utiliser la g\u00E9n\u0
ProjectPomProjectSettingPage_FilterErrorMessage=Le filtre n'est pas valide.
ProjectPomProjectSettingPage.syncAllPomsButtonText=Forcer la resynchronisation compl\u00E8te des POM
AbstractPersistentProjectSettingPage.syncAllPoms=Mettre \u00E0 jour tous les POM ? \n Cette op\u00E9ration peut prendre un moment, selon la taille de votre projet.
MavenProjectSettingPage.filterExampleMessage=Exemples de filtres :\nlibell\u00E9=monJob \t\t\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob"\n!(libell\u00E9=monJob) \t\t\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf celui nomm\u00E9 "monJob"\n(chemin=dossier1/dossier2) \t\t\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2"\n(chemin=dossier1/dossier2)ou(libell\u00E9=monJob)\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2" ou nomm\u00E9 "monJob"\n(libell\u00E9=monJob)et(version=0.2)\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob" avec une version 0.2\n!((libell\u00E9=monJob)et(version=0.1))\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf "monJob" version 0.1
MavenProjectSettingPage.filterExampleMessage=Exemples de filtres\u00A0:\nlibell\u00E9=monJob \t\t\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob"\n!(libell\u00E9=monJob) \t\t\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf celui nomm\u00E9 "monJob"\n(path=folder1/folder2) \t\t\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2"\n(chemin=dossier1/dossier2)ou(libell\u00E9=monJob)\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2" ou nomm\u00E9 "monJob"\n(libell\u00E9=monJob)et(version=0.2)\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob" avec une version 0.2\n!((libell\u00E9=monJob)et(version=0.1))\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf "monJob" version 0.1
MavenProjectSettingPage.refModuleText=Configurer les modules du projet de r\u00E9f\u00E9rence dans le profil
MavenProjectSettingPage.excludeDeletedItems=Exclure les \u00E9l\u00E9ments supprim\u00E9s
MavenProjectSettingPage.syncAllPomsWarning=Cliquez sur Forcer la nouvelle synchronisation compl\u00E8te des POM pour appliquer les nouveaux param\u00E8tres.

View File

@@ -10,8 +10,8 @@ ProjectPomProjectSettingPage_ConfirmMessage=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8
ProjectPomProjectSettingPage_FilterPomLabel=POM\u306E\u751F\u6210\u306B\u4F7F\u7528\u3059\u308B\u30D5\u30A3\u30EB\u30BF\u30FC:
ProjectPomProjectSettingPage_FilterErrorMessage=\u30D5\u30A3\u30EB\u30BF\u30FC\u304C\u7121\u52B9\u3067\u3059\u3002
ProjectPomProjectSettingPage.syncAllPomsButtonText=\u5B8C\u5168\u306A\u518D\u540C\u671FPOM\u3092\u5F37\u5236
AbstractPersistentProjectSettingPage.syncAllPoms=POM\u3092\u3059\u3079\u3066\u66F4\u65B0\u3057\u307E\u3059\u304B? \n\u3053\u306E\u64CD\u4F5C\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30A4\u30BA\u306B\u3088\u3063\u3066\u6642\u9593\u304C\u304B\u304B\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
MavenProjectSettingPage.filterExampleMessage=\u30D5\u30A3\u30EB\u30BF\u30FC\u306E\u4F8B:\nlabel=myJob \t\t\t\t=> Generate only the job named "myJob"\n!(label=myJob) \t\t\t\t=> Generate any job except the one named "myJob"\n(path=folder1/folder2) \t\t\t=> Generate any job in the folder "folder1/folder2"\n(path=folder1/folder2)or(label=myJob)\t=> Generate any job in the folder "folder1/folder2" or named "myJob"\n(label=myJob)and(version=0.2)\t\t=> Generate only the job named "myJob" with version 0.2\n!((label=myJob)and(version=0.1))\t\t=> Generate every jobs except the "myJob" version 0.1
AbstractPersistentProjectSettingPage.syncAllPoms=POM\u3092\u3059\u3079\u3066\u66F4\u65B0\u3057\u307E\u3059\u304B? \n \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30A4\u30BA\u306B\u3088\u3063\u3066\u306F\u3053\u306E\u64CD\u4F5C\u3067\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002
MavenProjectSettingPage.filterExampleMessage=\u30D5\u30A3\u30EB\u30BF\u30FC\u306E\u4F8B:\nlabel=myJob \t\t\t\t=> "myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u3060\u3051\u3092\u751F\u6210\n!(label=myJob) \t\t\t\t=> "myJob"\u3068\u3044\u3046\u540D\u524D\u4EE5\u5916\u306E\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210\n(path=folder1/folder2) \t\t\t=> "folder1/folder2"\u3068\u3044\u3046\u30D5\u30A3\u30EB\u30C0\u30FC\u306B\u3042\u308B\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210\n(path=folder1/folder2)or(label=myJob)\t=> "folder1/folder2"\u3068\u3044\u3046\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u3042\u308B\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u3001\u307E\u305F\u306F"myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u3092\u751F\u6210\n(label=myJob)and(version=0.2)\t\t=> \u30D0\u30FC\u30B8\u30E7\u30F30.2\u3067"myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u306E\u307F\u751F\u6210\n!((label=myJob)and(version=0.1))\t\t=> \u30D0\u30FC\u30B8\u30E7\u30F30.1\u3067"myJob"\u3068\u3044\u3046\u540D\u524D\u4EE5\u5916\u306E\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210
MavenProjectSettingPage.refModuleText=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3067\u53C2\u7167\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8A2D\u5B9A
MavenProjectSettingPage.excludeDeletedItems=\u524A\u9664\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u9664\u5916
MavenProjectSettingPage.syncAllPomsWarning=[\u5B8C\u5168\u306A\u518D\u540C\u671FPOM\u3092\u5F37\u5236]\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u3001\u65B0\u3057\u3044\u8A2D\u5B9A\u3092\u9069\u7528\u3057\u307E\u3059\u3002

View File

@@ -10,8 +10,8 @@ ProjectPomProjectSettingPage_ConfirmMessage=\u5C06\u7ACB\u5373\u4E3A\u5DE5\u7A0B
ProjectPomProjectSettingPage_FilterPomLabel=\u7528\u4E8E\u751F\u6210 pom \u7684\u7B5B\u9009\u5668:
ProjectPomProjectSettingPage_FilterErrorMessage=\u7B5B\u9009\u5668\u65E0\u6548\u3002
ProjectPomProjectSettingPage.syncAllPomsButtonText=\u5F3A\u5236\u5B8C\u5168\u91CD\u65B0\u540C\u6B65 POM
AbstractPersistentProjectSettingPage.syncAllPoms=\u662F\u5426\u8981\u66F4\u65B0\u6240\u6709 pom\uFF1F\n\u6B64\u64CD\u4F5C\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\uFF0C\u5177\u4F53\u53D6\u51B3\u4E8E\u60A8\u7684\u5DE5\u7A0B\u5927\u5C0F\u3002
MavenProjectSettingPage.filterExampleMessage=\u7B5B\u9009\u5668\u793A\u4F8B: \nlabel=myJob \t\t\t\t=> \u4EC5\u751F\u6210\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n!(label=myJob) \t\t\t\t=> \u751F\u6210\u540D\u4E3A "myJob" \u9664\u5916\u7684\u4EFB\u610F\u4F5C\u4E1A\n(path=folder1/folder2) \t\t\t=> \u751F\u6210\u6587\u4EF6\u5939 "folder1/folder2" \u4E2D\u7684\u4EFB\u610F\u4F5C\u4E1A\n(path=folder1/folder2)or(label=myJob)\t=> \u751F\u6210\u6587\u4EF6\u5939 "folder1/folder2" \u4E2D\u7684\u4EFB\u610F\u4F5C\u4E1A\u6216\u4EFB\u610F\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n(label=myJob)and(version=0.2)\t\t=> \u4EC5\u751F\u6210\u7248\u672C 0.2 \u4E14\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n!((label=myJob)and(version=0.1))\t\t=> \u751F\u6210\u4EFB\u610F\u540D\u79F0\u4E0D\u4E3A "myJob" \u4E14\u7248\u672C\u4E0D\u4E3A 0.1 \u7684\u4F5C\u4E1A
AbstractPersistentProjectSettingPage.syncAllPoms=\u662F\u5426\u66F4\u65B0\u6240\u6709 POM \u6587\u4EF6? \n \u6B64\u64CD\u4F5C\u53EF\u80FD\u9700\u8981\u5F88\u957F\u65F6\u95F4\uFF0C\u5177\u4F53\u53D6\u51B3\u4E8E\u60A8\u7684\u5DE5\u7A0B\u5927\u5C0F\u3002
MavenProjectSettingPage.filterExampleMessage=\u7B5B\u9009\u5668\u793A\u4F8B\uFF1A\nlabel=myJob \t\t\t\t=> \u4EC5\u751F\u6210\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n!(label=myJob) \t\t\t\t=> \u751F\u6210\u540D\u4E3A "myJob" \u9664\u5916\u7684\u4EFB\u610F\u4F5C\u4E1A\n(path=folder1/folder2) \t\t\t=> \u751F\u6210\u6587\u4EF6\u5939 "folder1/folder2" \u4E2D\u4EFB\u610F\u4F5C\u4E1A\n(path=folder1/folder2)or(label=myJob)\t=> \u751F\u6210\u6587\u4EF6\u5939 "folder1/folder2" \u4E2D\u7684\u4EFB\u610F\u4F5C\u4E1A\u6216\u4EFB\u610F\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n(label=myJob)and(version=0.2)\t\t=> \u4EC5\u751F\u6210\u7248\u672C 0.2 \u4E14\u540D\u4E3A "myJob" \u7684\u4F5C\u4E1A\n!((label=myJob)and(version=0.1))\t\t=> \u751F\u6210\u4EFB\u610F\u540D\u79F0\u4E0D\u4E3A "myJob" \u4E14\u7248\u672C\u4E0D\u4E3A 0.1 \u7684\u4F5C\u4E1A
MavenProjectSettingPage.refModuleText=\u5728\u914D\u7F6E\u6587\u4EF6\u4E2D\u8BBE\u7F6E\u5F15\u7528\u5DE5\u7A0B\u6A21\u5757
MavenProjectSettingPage.excludeDeletedItems=\u6392\u9664\u5DF2\u5220\u9664\u9879
MavenProjectSettingPage.syncAllPomsWarning=\u5355\u51FB \u201C\u5F3A\u5236\u5B8C\u5168\u91CD\u65B0\u540C\u6B65 POM\u201D \u6309\u94AE\u4EE5\u5E94\u7528\u65B0\u7684\u8BBE\u7F6E\u3002

View File

@@ -14,6 +14,7 @@ package org.talend.designer.maven.tools;
import static org.talend.designer.maven.model.TalendJavaProjectConstants.*;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -47,6 +48,7 @@ import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.utils.MojoType;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IESBService;
@@ -69,6 +71,7 @@ import org.talend.core.model.routines.CodesJarInfo;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ItemResourceUtil;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.runtime.process.ITalendProcessJavaProject;
@@ -135,8 +138,7 @@ public class AggregatorPomsHelper {
public void installRootPom(boolean force) throws Exception {
IFile pomFile = getProjectRootPom();
if (pomFile.exists()) {
Model model = MavenPlugin.getMaven().readModel(pomFile.getLocation().toFile());
if (force || !isPomInstalled(model.getGroupId(), model.getArtifactId(), model.getVersion())) {
if (force || needInstallRootPom(pomFile)) {
MavenPomCommandLauncher launcher =
new MavenPomCommandLauncher(pomFile, TalendMavenConstants.GOAL_INSTALL);
Map<String, Object> argumentsMap = new HashMap<>();
@@ -148,9 +150,40 @@ public class AggregatorPomsHelper {
}
}
public boolean isPomInstalled(String groupId, String artifactId, String version) {
String mvnUrl = MavenUrlHelper.generateMvnUrl(groupId, artifactId, version, MavenConstants.PACKAGING_POM, null);
return PomUtil.isAvailable(mvnUrl);
public boolean needInstallRootPom(IFile pomFile) {
try {
Model model = MavenPlugin.getMaven().readModel(pomFile.getLocation().toFile());
String mvnUrl = MavenUrlHelper.generateMvnUrl(model.getGroupId(), model.getArtifactId(), model.getVersion(),
MavenConstants.PACKAGING_POM, null);
MavenArtifact artifact = MavenUrlHelper.parseMvnUrl(mvnUrl);
if (artifact != null) {
String artifactPath = PomUtil.getAbsArtifactPath(artifact);
if (artifactPath == null) {
return true;
}
Model installedModel = MavenPlugin.getMaven().readModel(new File(artifactPath));
// check ci-builder
String currentCIBuilderVersion = model.getBuild().getPlugins().stream()
.filter(p -> p.getArtifactId().equals(MojoType.CI_BUILDER.getArtifactId())).findFirst().get()
.getVersion();
String installedCIBuilderVersion = installedModel.getBuild().getPlugins().stream()
.filter(p -> p.getArtifactId().equals(MojoType.CI_BUILDER.getArtifactId())).findFirst().get()
.getVersion();
if (!currentCIBuilderVersion.equals(installedCIBuilderVersion)) {
return true;
}
// check signer
String currentSignerVersion = model.getProperties().getProperty(MojoType.SIGNER.getVersionKey());
String installedSignerVersion = installedModel.getProperties().getProperty(MojoType.SIGNER.getVersionKey());
if (!currentSignerVersion.equals(installedSignerVersion)) {
return true;
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
return true;
}
return false;
}
public IFolder getProjectPomsFolder() {

View File

@@ -289,7 +289,8 @@ public class BuildCacheManager {
Parent parent = new Parent();
parent.setGroupId(PomIdsHelper.getProjectGroupId());
parent.setArtifactId(PomIdsHelper.getProjectArtifactId());
parent.setVersion(PomIdsHelper.getProjectVersion());
parent.setVersion(PomIdsHelper.getProjectVersion());
parent.setRelativePath(".");
model.setParent(parent);
PomUtil.savePom(null, model, pomFile);
}

View File

@@ -41,12 +41,6 @@
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</artifactItem>
<artifactItem>
<!-- same as xercesImpl.jar-->
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.ws.xmlschema</groupId>
<artifactId>xmlschema-core</artifactId>

View File

@@ -103,4 +103,3 @@ Export-Package:
org.exolab.castor.xml.wls8
Bundle-ActivationPolicy: lazy
Eclipse-BundleShape: dir

View File

@@ -10,20 +10,26 @@
<artifactId>org.talend.libraries.apache</artifactId>
<packaging>eclipse-plugin</packaging>
<properties>
<log4j.version>1.2.17</log4j.version>
<reload4j.version>1.2.19</reload4j.version>
<slf4j.version>1.7.29</slf4j.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>${reload4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
@@ -103,7 +109,7 @@
<excludeTypes>pom</excludeTypes>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<includeGroupIds>log4j,org.slf4j,org.apache.logging.log4j</includeGroupIds>
<includeGroupIds>ch.qos.reload4j,org.slf4j,org.apache.logging.log4j</includeGroupIds>
</configuration>
</execution>
</executions>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="lib" path="lib/h2-2.0.206.jar"/>
<classpathentry kind="lib" path="lib/h2-2.1.210.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -4,7 +4,7 @@ Bundle-Name: H2
Bundle-SymbolicName: org.talend.libraries.jdbc.h2
Bundle-Version: 8.0.1.qualifier
Bundle-ClassPath: .,
lib/h2-2.0.206.jar
lib/h2-2.1.210.jar
Export-Package: org.h2,
org.h2.api;uses:="org.h2.command.ddl,org.h2.table",
org.h2.bnf;uses:="org.h2.server.web",

View File

@@ -1,4 +1,4 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
lib/h2-2.0.206.jar
lib/h2-2.1.210.jar

View File

@@ -28,7 +28,7 @@
<artifactItem>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.0.206</version>
<version>2.1.210</version>
</artifactItem>
</artifactItems>
</configuration>

View File

@@ -6,14 +6,7 @@
context="plugin:org.talend.libraries.jdbc.teradata"
language="java"
message="Needed for Teradata jdbc plugin"
name="terajdbc4-16.20.00.02.jar" mvn_uri="mvn:com.teradata/terajdbc4/16.20.00.02"
required="true">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.libraries.jdbc.teradata"
language="java"
message="Needed for Teradata jdbc plugin"
name="tdgssconfig-16.20.00.02.jar" mvn_uri="mvn:com.teradata/tdgssconfig/16.20.00.02"
name="terajdbc4-17.10.00.27.jar" mvn_uri="mvn:com.teradata.jdbc/terajdbc4/17.10.00.27"
required="true">
</libraryNeeded>
</extension>

View File

@@ -71,7 +71,7 @@ Module.view.install.additional.packages.action.text=Install third-party librarie
Module.view.install.additional.packages.action.description=Install third-party libraries
download.external.dialog.title=The following modules are not yet installed. Please download and install all required modules.
download.external.dialog.desciption=List of modules to be downloaded automatically or imported manually.
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=en&env=prd
download.external.dialog.warning=Warning
download.external.dialog.message=Select at least one module not installed.
Module.view.sharelibsAction.title=Share libraries

View File

@@ -24,7 +24,7 @@ ExternalModulesInstallDialog_NoExternalModules=Aucun module externe disponible
ExternalModulesInstallDialog_Download_Ok={0} a bien \u00E9t\u00E9 install\u00E9.
ExternalModulesInstallDialog_Download_Fialed=\u00C9chec de l'installation de {0}.
ExternalModulesInstallDialog_Title_Missing_jars_for_plugin=Biblioth\u00E8ques tierces manquantes
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Le Studio requiert l'installation de biblioth\u00E8ques tierces.\nVeuillez installer les JAR suivants avant de fermer cette fen\u00EAtre.
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Le Studio requiert l'installation de biblioth\u00E8ques tierces.\nInstallez les Jars suivants avant de fermer cette fen\u00EAtre.
ExternalModulesInstallDialog_NoAvailabeModulesMessages=Le(s) JAR {0} n'est (ne sont) pas disponible(s).
ExternalModulesInstallDialog_NoAvailabeModulesTitle=Modules indisponibles
ComponentExternalModulesDialog.doNotShow=Ne plus afficher
@@ -71,7 +71,7 @@ Module.view.install.additional.packages.action.text=Installer des biblioth\u00E8
Module.view.install.additional.packages.action.description=Installer des biblioth\u00E8ques tierces
download.external.dialog.title=Les modules suivants ne sont pas install\u00E9s. T\u00E9l\u00E9chargez et installez tous les modules requis.
download.external.dialog.desciption=Liste des modules \u00E0 t\u00E9l\u00E9charger automatiquement ou \u00E0 importer manuellement.
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=fr&env=prd
download.external.dialog.warning=Avertissement
download.external.dialog.message=S\u00E9lectionnez au moins un module non install\u00E9.
Module.view.sharelibsAction.title=Partager des biblioth\u00E8ques
@@ -89,7 +89,7 @@ AcceptModuleLicensesWizardPage.licenseContent.label=Texte de licence :
AcceptModuleLicensesWizardPage.licenseContent.defaultDesc=La licence doit \u00EAtre lue et accept\u00E9e avant que les modules puissent \u00EAtre install\u00E9s.
AcceptModuleLicensesWizardPage.retrieveLicenses=R\u00E9cup\u00E9ration des licences...
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.title=Confirmation
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=Vous avez rejet\u00E9 les licences suivantes :\n{0}.\n\u00CAtes-vous s\u00FBr(e) ?
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=Vous avez rejet\u00E9 les licences suivantes\u00A0:\n{0}.\nContinuer malgr\u00E9 tout ?
ShareLibsJob.getFilesToShare=Collecte des biblioth\u00E8ques \u00E0 partager
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.Title=Avertissement du chargement
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.MessageContent=Le module {0} va \u00E9craser l'artefact {1} dans le r\u00E9f\u00E9rentiel Maven local. \u00CAtes-vous s\u00FBr(e) ?

View File

@@ -17,14 +17,14 @@ ExternalModulesInstallDialog_ColumnRequiredBy=\u5FC5\u8981\u3068\u306A\u308B\u30
ExternalModulesInstallDialog_ColumnUrl=\u8A73\u7D30\u60C5\u5831
ExternalModulesInstallDialog_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u304A\u3088\u3073\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ExternalModulesInstallDialog_DownloadFailed=\u6B21\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F:
ExternalModulesInstallDialog_DownloadSuccess= \u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u6B63\u3057\u304F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3057\u305F!\n
ExternalModulesInstallDialog_DownloadSuccess= \u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u6B63\u3057\u304F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3057\u305F! \n
ExternalModulesInstallDialog_InstallAll=\u4F7F\u7528\u3067\u304D\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u3059\u3079\u3066\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ExternalModulesInstallDialog_MoreInfor=<a>\u3053\u3053\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u5916\u90E8\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u3055\u3089\u306B\u53D6\u5F97</a>
ExternalModulesInstallDialog_NoExternalModules=\u5916\u90E8\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u3042\u308A\u307E\u305B\u3093
ExternalModulesInstallDialog_Download_Ok={0}\u304C\u6B63\u3057\u304F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3057\u305F!
ExternalModulesInstallDialog_Download_Fialed={0}\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F!
ExternalModulesInstallDialog_Title_Missing_jars_for_plugin=\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Studio\u306B\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u9589\u3058\u308B\u524D\u306Bjar\u30D5\u30A1\u30A4\u30EB\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Studio\u306B\u306F\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u3053\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u9589\u3058\u308B\u524D\u306B\u3001\u6B21\u306Ejar\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ExternalModulesInstallDialog_NoAvailabeModulesMessages=JAR\u30D5\u30A1\u30A4\u30EB{0}\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
ExternalModulesInstallDialog_NoAvailabeModulesTitle=\u4F7F\u7528\u3067\u304D\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB
ComponentExternalModulesDialog.doNotShow=\u4EE5\u964D\u8868\u793A\u3057\u306A\u3044
@@ -71,7 +71,7 @@ Module.view.install.additional.packages.action.text=\u30B5\u30FC\u30C9\u30D1\u30
Module.view.install.additional.packages.action.description=\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
download.external.dialog.title=\u4EE5\u4E0B\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u53CA\u3073\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
download.external.dialog.desciption=\u81EA\u52D5\u7684\u306B\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u307E\u305F\u306F\u624B\u52D5\u3067\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30EA\u30B9\u30C8
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=ja&env=prd
download.external.dialog.warning=\u8B66\u544A
download.external.dialog.message=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u5C11\u306A\u304F\u3068\u30821\u3064\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
Module.view.sharelibsAction.title=\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u3092\u5171\u6709
@@ -89,7 +89,7 @@ AcceptModuleLicensesWizardPage.licenseContent.label=\u30E9\u30A4\u30BB\u30F3\u30
AcceptModuleLicensesWizardPage.licenseContent.defaultDesc=\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u524D\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u6761\u9805\u306E\u78BA\u8A8D\u3068\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059
AcceptModuleLicensesWizardPage.retrieveLicenses=\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u53D6\u5F97\u4E2D...
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.title=\u78BA\u8A8D
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=\u6B21\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u62D2\u5426\u3057\u307E\u3057\u305F:\n{0}\u3002\n\u3088\u308D\u3057\u3044\u3067\u3059\u304B?
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=\u6B21\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u62D2\u5426\u3057\u307E\u3057\u305F:\n{0}\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B?
ShareLibsJob.getFilesToShare=\u5171\u6709\u3059\u308B\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u3092\u53CE\u96C6
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.Title=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u8B66\u544A
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.MessageContent=\u30ED\u30FC\u30AB\u30EBMaven\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u5185\u306E\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8{1}\u304C\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306B\u3088\u3063\u3066\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\u3088\u308D\u3057\u3044\u3067\u3059\u304B?

View File

@@ -17,14 +17,14 @@ ExternalModulesInstallDialog_ColumnRequiredBy=\u7EC4\u4EF6\u9700\u8981
ExternalModulesInstallDialog_ColumnUrl=\u66F4\u591A\u4FE1\u606F
ExternalModulesInstallDialog_Download=\u4E0B\u8F7D\u4E0E\u5B89\u88C5
ExternalModulesInstallDialog_DownloadFailed=\u5B89\u88C5\u4E0B\u5217\u6A21\u5757\u65F6\u51FA\u9519\uFF1A
ExternalModulesInstallDialog_DownloadSuccess= \u6A21\u5757\u5B89\u88C5\u6210\u529F ! \n
ExternalModulesInstallDialog_DownloadSuccess= \u6A21\u5757\u5B89\u88C5\u6210\u529F ! \n
ExternalModulesInstallDialog_InstallAll=\u4E0B\u8F7D\u5E76\u5B89\u88C5\u6240\u6709\u53EF\u7528\u7684\u6A21\u5757
ExternalModulesInstallDialog_MoreInfor=<a> \u70B9\u51FB\u8FD9\u91CC\u83B7\u53D6\u5173\u4E8E\u5916\u90E8\u6A21\u5757\u7684\u66F4\u591A\u4FE1\u606F</a>
ExternalModulesInstallDialog_NoExternalModules=\u6CA1\u6709\u53EF\u7528\u7684\u5916\u90E8\u6A21\u5757
ExternalModulesInstallDialog_Download_Ok={0} \u5B89\u88C5\u6210\u529F\uFF01#n
ExternalModulesInstallDialog_Download_Fialed={0} \u5B89\u88C5\u5931\u8D25 !#n
ExternalModulesInstallDialog_Title_Missing_jars_for_plugin=\u7F3A\u5C11\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Studio \u8981\u6C42\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\uFF0C\n\u8BF7\u5728\u5173\u95ED\u6B64\u7A97\u53E3\u524D\u5B89\u88C5\u4EE5\u4E0B jar\u3002
ExternalModulesInstallDialog_description_jars_to_be_installed_in=Studio \u8981\u6C42\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5E93\u3002\n\u8BF7\u5728\u5173\u95ED\u6B64\u7A97\u53E3\u524D\u5B89\u88C5\u4EE5\u4E0B jar \u5305\u3002
ExternalModulesInstallDialog_NoAvailabeModulesMessages=Jar\u5305{0}\u4E0D\u53EF\u7528\u3002
ExternalModulesInstallDialog_NoAvailabeModulesTitle=\u4E0D\u53EF\u7528\u6A21\u5757
ComponentExternalModulesDialog.doNotShow=\u4E0D\u518D\u663E\u793A
@@ -71,7 +71,7 @@ Module.view.install.additional.packages.action.text=\u5B89\u88C5\u7B2C\u4E09\u65
Module.view.install.additional.packages.action.description=\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305
download.external.dialog.title=\u4EE5\u4E0B\u6A21\u5757\u5C1A\u672A\u5B89\u88C5.\u8BF7\u4E0B\u8F7D\u5E76\u5B89\u88C5\u6240\u6709\u8981\u6C42\u7684\u6A21\u5757.
download.external.dialog.desciption=\u6A21\u5757\u5217\u8868\u9700\u8981\u81EA\u52A8\u4E0B\u8F7D\u6216\u624B\u52A8\u5BFC\u5165.
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=zh&env=prd
download.external.dialog.warning=\u8B66\u544A
download.external.dialog.message=\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u672A\u5B89\u88C5\u7684\u6A21\u5757\u3002
Module.view.sharelibsAction.title=\u5171\u4EAB\u4F9D\u8D56\u5305
@@ -89,7 +89,7 @@ AcceptModuleLicensesWizardPage.licenseContent.label=\u8BB8\u53EF\u6587\u672C\uFF
AcceptModuleLicensesWizardPage.licenseContent.defaultDesc=\u5FC5\u987B\u63A5\u53D7\u8BB8\u53EF\u534F\u8BAE\u624D\u80FD\u5B89\u88C5\u6A21\u5757\u3002
AcceptModuleLicensesWizardPage.retrieveLicenses=\u8BF7\u83B7\u53D6\u8BB8\u53EF\u8BC1...
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.title=\u786E\u8BA4
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=\u60A8\u5DF2\u62D2\u7EDD\u4E0B\u5217\u8BB8\u53EF: \n{0}\u3002\n\u786E\u5B9A\u5417?
AcceptModuleLicensesWizardPage.rejectLicensesConfirmation.msg=\u60A8\u5DF2\u62D2\u7EDD\u4E0B\u5217\u8BB8\u53EF:\n{0}\u3002\n\u662F\u5426\u786E\u5B9A\uFF1F
ShareLibsJob.getFilesToShare=\u6B63\u5728\u6536\u96C6\u9700\u5171\u4EAB\u7684\u4F9D\u8D56\u5305
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.Title=\u4E0A\u4F20\u8B66\u544A
ArtifactsDeployer.uploadJarEncounterMvnRepositroySameName.MessageContent=\u6A21\u5757 {0} \u5C06\u6539\u5199\u672C\u5730 Maven \u5B58\u50A8\u5E93\u4E2D\u7684\u6784\u4EF6 {1}\uFF0C\u662F\u5426\u786E\u5B9A\uFF1F

View File

@@ -19,13 +19,25 @@
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>${talend.nexus.host}/nexus/content/repositories/snapshots/</url>
<url>${talend.nexus.host}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
</repository>
<repository>
<id>releases</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>${talend.nexus.host}/nexus/content/repositories/TalendOpenSourceRelease/</url>
</repository>
</repositories>
<properties>
<studioIndexVersion>${project.version}</studioIndexVersion>
<talend.nexus.host>https://artifacts-oss.talend.com</talend.nexus.host>
<talend.nexus.host.oss>https://artifacts-oss.talend.com</talend.nexus.host.oss>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
<build>
@@ -116,7 +128,7 @@
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>studioIndex</artifactId>
<version>8.0.1-SNAPSHOT</version>
<version>${studioIndexVersion}</version>
<type>zip</type>
<classifier />
<overWrite>true</overWrite>

View File

@@ -91,7 +91,11 @@ public class JobStructureCatcherUtils {
//thread uuid
public String tid = ProcessIdAndThreadId.getThreadId();
public String extra_info;
public Exception exception;
public JobStructureCatcherMessage() {
}
@@ -100,6 +104,8 @@ public class JobStructureCatcherUtils {
public static enum LogType {
JOBSTART,
JOBEND,
JOBERROR,
RUNCOMPONENT,
FLOWINPUT,
FLOWOUTPUT,
@@ -233,6 +239,31 @@ public class JobStructureCatcherUtils {
messages.add(scm);
}
/**
*
* @param currentComponentId the id of the component which exception appear
* @param currentComponentLabel the label of the component which exception appear
* @param extraInfo extra issue info outside of exception, for tDieExcetpion/message in tDie component
* @param exception exception object
*/
public void addJobExceptionMessage(String currentComponentId, String currentComponentLabel, String extraInfo, Exception exception) {
JobStructureCatcherMessage scm = new JobStructureCatcherMessage();
scm.moment = sdf.format(new Date());
scm.job_name = this.job_name;
scm.job_id = this.job_id;
scm.job_version = this.job_version;
scm.component_id = currentComponentId;
scm.component_label = currentComponentLabel;
scm.extra_info = extraInfo;
scm.exception = exception;
scm.log_type = LogType.JOBERROR;
messages.add(scm);
}
public java.util.List<JobStructureCatcherMessage> getMessages() {
java.util.List<JobStructureCatcherMessage> messagesToSend = new java.util.ArrayList<JobStructureCatcherMessage>();

View File

@@ -313,10 +313,14 @@ public class ParserUtils {
*/
public static java.util.Date parseTo_Date(String dateString, String pattern) {
// check the parameter for supporting " ","2007-09-13"," 2007-09-13 "
if (dateString != null) {
dateString = dateString.trim();
}
if (dateString == null || dateString.length() == 0) {
return null;
}
dateString = dateString.trim();
if (pattern == null) {
pattern = Constant.dateDefaultPattern;
}

View File

@@ -546,3 +546,5 @@ HiveJDBCPropertiesDialog.title=Hive Properties
HiveJDBCPropertiesDialog.desc=Hive properties configurations
MetadataTalendTypeEditor.confirmTitle=Warning
MetadataTalendTypeEditor.confirmMessage=Are you sure to replace current with default system settings?
PromptDialog.title=Run Context {0} with parameters:
PromptDialog.stringTip=The input text must be surrounded with single quote.

View File

@@ -310,13 +310,13 @@ FileTableWizardPage.titleCreate=Nouveau sch\u00E9ma dans "{0}"
FileTableWizardPage.titleUpdate=Mettre \u00E0 jour le sch\u00E9ma "{0}"
FileWizard.windowTitleCreate=Nouveau fichier positionnel
FileWizard.windowTitleUpdate=Modifier un fichier positionnel existant
FileWizardPage.descriptionCreateStep0=Ajouter un fichier de m\u00E9tadonn\u00E9es au r\u00E9f\u00E9rentiel\nD\u00E9finissez les propri\u00E9t\u00E9s
FileWizardPage.descriptionCreateStep0=Ajouter un fichier de m\u00E9tadonn\u00E9es au r\u00E9f\u00E9rentiel\nD\u00E9finir les propri\u00E9t\u00E9s
FileWizardPage.descriptionCreateStep1=Ajouter un fichier de m\u00E9tadonn\u00E9es au r\u00E9f\u00E9rentiel\nD\u00E9finissez le chemin d'acc\u00E8s au fichier et les param\u00E8tres de format
FileWizardPage.descriptionCreateStep2=Ajouter un fichier de m\u00E9tadonn\u00E9es au r\u00E9f\u00E9rentiel\n D\u00E9finissez les param\u00E8tres du Job de parsage
FileWizardPage.descriptionCreateStep3=Ajouter un sch\u00E9ma au r\u00E9f\u00E9rentiel\nD\u00E9finissez le sch\u00E9ma
FileWizardPage.descriptionUpdateStep0=\u00C9diter un fichier de m\u00E9tadonn\u00E9es existant dans le r\u00E9f\u00E9rentiel\nMettre \u00E0 jour les propri\u00E9t\u00E9s
FileWizardPage.descriptionUpdateStep1=\u00C9diter un fichier de m\u00E9tadonn\u00E9es existant dans le r\u00E9f\u00E9rentiel\nMettre \u00E0 jour le chemin d'acc\u00E8s au fichier et les param\u00E8tres de format
FileWizardPage.descriptionUpdateStep2=Mettre \u00E0 jour la m\u00E9tadonn\u00E9e Fichier dans le r\u00E9f\u00E9rentiel\nD\u00E9finir les param\u00E8tres d'analyse du fichier
FileWizardPage.descriptionCreateStep2=Ajouter un fichier de m\u00E9tadonn\u00E9es au r\u00E9f\u00E9rentiel\nD\u00E9finissez les param\u00E8tres du Job de parsage
FileWizardPage.descriptionCreateStep3=Ajouter un sch\u00E9ma au r\u00E9f\u00E9rentiel\nD\u00E9finir le sch\u00E9ma
FileWizardPage.descriptionUpdateStep0=Modifier un fichier de m\u00E9tadonn\u00E9es existant dans le r\u00E9f\u00E9rentiel\nMettre \u00E0 jour les propri\u00E9t\u00E9s
FileWizardPage.descriptionUpdateStep1=Modifier un fichier de m\u00E9tadonn\u00E9es existant dans le r\u00E9f\u00E9rentiel\nMettre \u00E0 jour le chemin d'acc\u00E8s au fichier et les param\u00E8tres de format
FileWizardPage.descriptionUpdateStep2=Mettre \u00E0 jour un fichier de m\u00E9tadonn\u00E9es existant dans le r\u00E9f\u00E9rentiel\nD\u00E9finissez les param\u00E8tres du Job de parsage
FileWizardPage.of=de
FileWizardPage.titleCreate=Fichier - \u00C9tape
FileWizardPage.titleUpdate=Fichier - \u00C9tape
@@ -363,7 +363,7 @@ LDAPSchemaWizard.UpdateLdapSchema=Mettre \u00E0 jour le sch\u00E9ma LDAP
LDIFReader.ioException.cannotConstrauctURL=: impossible de construire l'URL
LDIFReader.ioException.protocolNotSupported=Protocole non support\u00E9\u00A0:
LDIFReader.ioException.unknow=Type inconnu.
LdifFileStep2.previewFailure=Erreur d'aper\u00E7u. \u00CAtes-vous s\u00FBr(e) que votre fichier est de format LDIF?\n Note\u00A0: les erreurs d'aper\u00E7u sont g\u00E9n\u00E9ralement dues \u00E0 un format de fichier LDIF invalide.
LdifFileStep2.previewFailure=Erreur d'aper\u00E7u. \u00CAtes-vous s\u00FBr(e) que votre fichier est de format LDIF?\nNote\u00A0: les erreurs de pr\u00E9visualisation sont g\u00E9n\u00E9ralement dues \u00E0 un mauvais param\u00E8tre d'encodage.
LdifFileStep2Form.columnTtitle.attributes=Attributs
LdifFileStep2Form.group.listAttributes=Liste des attributs du fichier LDIF
LdifFileStep2Form.output=Sortie
@@ -495,13 +495,13 @@ OpenXSDFileDialog.cancel=Annuler
OpenXSDFileDialog.confirm=Confirmer
OpenXSDFileDialog.fileName=Nom de fichier\u00A0:
OpenXSDFileDialog.xmlFileSelection=S\u00E9lectionnez un fichier XML \u00E0 valider
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier de m\u00E9tadonn\u00E9es XSD, \n il devrait y avoir un fichier XML \u00E0 valider.
OpenXSDFileDialog.xmlSelectedOrNot=Comme vous avez s\u00E9lectionn\u00E9 un fichier XSD de m\u00E9tadonn\u00E9es, \n un fichier XML doit \u00EAtre \u00E0 valider.
PropertiesWizard.EditPropertiesPageTitle=Modifier les propri\u00E9t\u00E9s
PropertiesWizard.alreadyLockedByUser=Les propri\u00E9t\u00E9s sont en lecture seule parce que cet \u00E9l\u00E9ment est verrouill\u00E9 par un \u00E9diteur.
PropertiesWizard.VersionTitle=Modifier la version parente
PropertiesWizard.PreviousVersion=Les TestCases de {0} vont pointer vers la version pr\u00E9c\u00E9dente. Utilisez "Modifier les propri\u00E9t\u00E9s du TestCase" pour modifier la version parente.
ConfirmReloadConnectionDialog.title=Confirmer le rechargement de la connexion
ConfirmReloadConnectionDialog.desc=Les propri\u00E9t\u00E9s de la connexion ont \u00E9t\u00E9 modifi\u00E9es. Les \u00E9l\u00E9ments analys\u00E9s de cette connexion\n desquels d\u00E9pendent les analyses peuvent \u00EAtre supprim\u00E9s si vous rechargez la connexion.\nContinuer ?
ConfirmReloadConnectionDialog.desc=Les propri\u00E9t\u00E9s de la connexion ont \u00E9t\u00E9 modifi\u00E9es. Les \u00E9l\u00E9ments analys\u00E9s de cette connexion \ndesquels d\u00E9pendent les analyses peuvent \u00EAtre supprim\u00E9s si vous rechargez la connexion. \nContinuer ?
ConfirmReloadConnectionDialog.reload=Recharger
ConfirmReloadConnectionDialog.unreload=Ne pas recharger
ManagerConnection.connectionSuccessful=Connexion \u00E9tablie.
@@ -546,3 +546,5 @@ HiveJDBCPropertiesDialog.title=Propri\u00E9t\u00E9s Hive
HiveJDBCPropertiesDialog.desc=Configuration des propri\u00E9t\u00E9s Hive
MetadataTalendTypeEditor.confirmTitle=Avertissement
MetadataTalendTypeEditor.confirmMessage=Voulez-vous remplacer les param\u00E8tres actuels par ceux par d\u00E9faut du syst\u00E8me ?
PromptDialog.title=Ex\u00E9cuter le contexte {0} avec les param\u00E8tres\u00A0:
PromptDialog.stringTip=Le texte d'entr\u00E9e doit \u00EAtre entour\u00E9 par des guillemets.

View File

@@ -146,7 +146,7 @@ DatabaseTableForm.guessSchema=\u30B9\u30AD\u30FC\u30DE\u3092\u63A8\u6E2C
DatabaseTableForm.streamDetach=\u30B9\u30C8\u30EA\u30FC\u30E0\u5206\u96E2
DatabaseTableForm.table=\u30C6\u30FC\u30D6\u30EB\u306B\u57FA\u3065\u3044\u305F
DatabaseTableForm.tableColumnText.talbe=\u30C6\u30FC\u30D6\u30EB
DatabaseTableForm.tableNoExist=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u306F\u6210\u529F\u3057\u307E\u3057\u305F\u304C\u3001\u4F55\u304B\u306E\u30C6\u30FC\u30D6\u30EB\u304C\u5B58\u5728\u3057\u307E\u3059: [Retrieve Schema] (\u30B9\u30AD\u30FC\u30DE\u306E\u53D6\u5F97)\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210\u3059\u308B\u306B\u306FSGBD\u3092\u4F7F\u7528\u3057\u3001\u72B6\u6CC1\u3092\u5FA9\u5143\u3059\u308B\u306B\u306F[Check Connection] (\u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF)\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseTableForm.tableNoExist=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u306F\u6210\u529F\u3057\u307E\u3057\u305F\u304C\u3001\u30C6\u30FC\u30D6\u30EB\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002[\u30B9\u30AD\u30FC\u30DE\u3092\u53D6\u5F97]\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\nSGBD\u3092\u4F7F\u3063\u3066\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210\u3057\u3001[\u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF]\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u72B6\u6CC1\u3092\u5FA9\u5143\u3057\u307E\u3059\u3002
DatabaseTableForm.tableTip=\u30C6\u30FC\u30D6\u30EB\u3092\u9078\u629E\u3057\u3001\u53D6\u5F97\u30DC\u30BF\u30F3\u3092\u4F7F\u7528\u3059\u308B\u304B\u3001\u30B9\u30AD\u30FC\u30DE\u3092\u624B\u52D5\u3067\u5B9A\u7FA9\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseTableForm.type=\u578B: {0}
DatabaseTableForm.type_another_name=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u4E2D\u306E\u65E2\u5B58\u306E\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
@@ -166,8 +166,8 @@ DatabaseWizardPage.titleUpdate.Step2=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\
DelimitedFilePreview.column=\u30AB\u30E9\u30E0
DelimitedFileStep2Form.14=\u6570\u5024\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002
DelimitedFileStep2Form.onlyNumber=\u6570\u5024\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002
DelimitedFileWizard.windowTitleCreate=\u65B0\u898F\u306E\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB
DelimitedFileWizard.windowTitleUpdate=\u65E2\u5B58\u306E\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
DelimitedFileWizard.windowTitleCreate=\u65B0\u898F\u306E\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB
DelimitedFileWizard.windowTitleUpdate=\u65E2\u5B58\u306E\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
DocumentationCreateWizard.mainPageDescription=\u65B0\u898F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u4F5C\u6210
DocumentationCreateWizard.windowTitle=\u65B0\u898F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3
DocumentationPage.LinkLabel= \u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002
@@ -189,7 +189,7 @@ ExcelFileStep1Form.fileSetting=\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\
ExcelFileStep1Form.sheet.choice=\u30B7\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044(\u30B9\u30AD\u30FC\u30DE\u30AC\u30A4\u30C9\u3068\u3057\u3066\u306E\u30B7\u30FC\u30C8\u30B9\u30C8\u30E9\u30AF\u30C1\u30E3\u30FC)
ExcelFileStep1Form.sheet.tip=\u30B7\u30FC\u30C8\u540D\u3092\u4ED8\u3051\u308B
ExcelFileStep1Form.sheetPara=\u30B7\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u8A2D\u5B9A
ExcelFileStep2Form.advancesSeparator=\u9AD8\u5EA6\u306A\u533A\u5207\u308A\u8A18\u53F7(\u6570\u5B57\u7528)
ExcelFileStep2Form.advancesSeparator=\u9AD8\u5EA6\u306A\u533A\u5207\u308A(\u6570\u5B57\u7528)
ExcelFileStep2Form.decimalSeparator=\u5C0F\u6570\u70B9\u533A\u5207\u308A:
ExcelFileStep2Form.firstColumn=\u6700\u521D\u30AB\u30E9\u30E0:
ExcelFileStep2Form.lastColumn=\u6700\u7D42\u30AB\u30E9\u30E0:
@@ -197,7 +197,7 @@ ExcelFileStep2Form.metadataSetting=\u30E1\u30BF\u30C7\u30FC\u30BF\u30AB\u30E9\u3
ExcelFileStep2Form.onlyNumber=\u6570\u5024\u306E\u307F\u53EF\u80FD\u3067\u3059\u3002
ExcelFileStep2Form.output=\u51FA\u529B
ExcelFileStep2Form.preview=\u30D7\u30EC\u30D3\u30E5\u30FC
ExcelFileStep2Form.thousandsSeparator=\u6841\u533A\u5207\u308A\u8A18\u53F7
ExcelFileStep2Form.thousandsSeparator=\u6841\u533A\u5207\u308A
ExcelFileWizard.windowTitleCreate=\u65B0\u898FExcel\u30D5\u30A1\u30A4\u30EB
ExcelFileWizard.windowTitleUpdate=\u65E2\u5B58\u306EExcel\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
ExtractionFieldsWithXPathEditorView.columnName=\u30AB\u30E9\u30E0\u540D
@@ -230,7 +230,7 @@ FileStep1.server=\u30B5\u30FC\u30D0\u30FC
FileStep1.serverTip=\u30D5\u30A1\u30A4\u30EB\u306E\u4F4D\u7F6E\u304C\u5C40\u6240\u7684\u304B\u3069\u3046\u304B\u5B9A\u7FA9\u3057\u307E\u3059
FileStep2.correspondingCharacter=\u5BFE\u5FDC\u3059\u308B\u6587\u5B57
FileStep2.csv=CSV
FileStep2.delimited=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D
FileStep2.delimited=\u533A\u5207\u308A\u4ED8\u304D
FileStep2.empty=\u7A7A
FileStep2.encoding=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
FileStep2.encodingTip=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
@@ -243,10 +243,10 @@ FileStep2.fieldPositionNotFinishByComma=\u30D5\u30A3\u30FC\u30EB\u30C9\u4F4D\u7F
FileStep2.fieldPositionNotValidate=\u30D5\u30A3\u30FC\u30EB\u30C9\u4F4D\u7F6E\u306F\u6570\u5024\u304A\u3088\u3073\u30B3\u30F3\u30DE\u3092\u542B\u3093\u3067\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 \u4F4D\u7F6E\u306F\u6607\u9806\u3067\u793A\u3055\u308C\u307E\u3059
FileStep2.fieldPositionTip=\u5404\u30AB\u30E9\u30E0\u306E\u4F4D\u7F6E\u3092\u5B9A\u7FA9\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F4D\u7F6E\u306F\u6607\u9806\u3067\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.fieldSeparator=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
FileStep2.fieldSeparatorAlert=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u8A18\u53F7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u6570\u5024\u3001\u30B3\u30F3\u30DE\u3001\u30AF\u30A8\u30B9\u30C1\u30E7\u30F3\u30DE\u30FC\u30AF\u3001\u30B9\u30BF\u30FC\u30C8\u4EE5\u5916\u306F\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
FileStep2.fieldSeparatorAlert=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u6570\u5024\u3001\u30B3\u30F3\u30DE\u3001\u30AF\u30A8\u30B9\u30C1\u30E7\u30F3\u30DE\u30FC\u30AF\u3001\u30B9\u30BF\u30FC\u30C8\u4EE5\u5916\u306F\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
FileStep2.fieldSeparatorDelimitedTip=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
FileStep2.fieldSeparatorIncomplete=\u6587\u5B57\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u8A18\u53F7\u306F\u5B8C\u6210\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
FileStep2.fieldSeparatorNotFinishByComma=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u8A18\u53F7\u306F\u30B3\u30F3\u30DE\u306B\u3088\u3063\u3066\u7D42\u4E86\u3057\u307E\u305B\u3093
FileStep2.fieldSeparatorIncomplete=\u6587\u5B57\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u306F\u5B8C\u6210\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
FileStep2.fieldSeparatorNotFinishByComma=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u306F\u30B3\u30F3\u30DE\u306B\u3088\u3063\u3066\u7D42\u4E86\u3057\u307E\u305B\u3093
FileStep2.fieldSeparatorPositionalAlert=\u6570\u5B57\u3092\u30B3\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u3001\u30AB\u30E9\u30E0\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.fieldSeparatorPositionalTip=\u5404\u30AB\u30E9\u30E0\u306E\u4F4D\u7F6E\u3092\u5B9A\u7FA9\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F4D\u7F6E\u306F\u6607\u9806\u3067\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.filePathIncomplete=\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
@@ -265,19 +265,19 @@ FileStep2.limitTip=\u5236\u9650
FileStep2.mustBePrecised=\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.noresult=\u3053\u306E\u8A2D\u5B9A\u3067\u306F\u7D50\u679C\u306F\u3042\u308A\u307E\u305B\u3093
FileStep2.noresultDetailMessage=\u6B63\u3057\u3044XPathExpression\u304B\u3001XML\u30BD\u30FC\u30B9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u3044\u304F\u3064\u304B\u306E\u8A2D\u5B9A\u5909\u66F4\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
FileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u4E00\u90E8\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u7684\u306B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u8A2D\u5B9A\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
FileStep2.previewIsDone=\u30D7\u30EC\u30D3\u30E5\u30FC\u6210\u529F...
FileStep2.previewProgress=\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u51E6\u7406\u4E2D...
FileStep2.refreshPreview=\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u66F4\u65B0
FileStep2.removeEmptyRow=\u7A7A\u306E\u884C\u3092\u30B9\u30AD\u30C3\u30D7
FileStep2.rowSeparator=\u884C\u533A\u5207\u308A
FileStep2.rowSeparatorAlert=\u6587\u5B57\u306E\u30ED\u30A6\u30BB\u30D1\u30EC\u30FC\u30BF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.rowSeparatorIncomplete=\u884C\u533A\u5207\u308A\u6587\u5B57\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.rowSeparatorIncomplete=\u884C\u533A\u5207\u308A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.rowSeparatorTip=\u884C\u533A\u5207\u308A
FileStep2.rowsToSkipTip=\u884C\u3092\u7121\u8996\u3059\u308B\u5834\u5408\u306F\u3001\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044,
FileStep2.settingsIncomplete=\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001\u8A2D\u5B9A\u3092\u5B8C\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
FileStep2.splitwayRecordForJavaFID=\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u524D\u306E\u884C\u3092\u5206\u5272
FileStep2.splitwayRecordForJavaFIDTip=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u8A18\u53F7\u304C\u884C\u533A\u5207\u308A\u8A18\u53F7\u306E\u4E00\u90E8\u3067\u3042\u308B\u5834\u5408\u306B\u6709\u52B9\u3067\u3059\u3002
FileStep2.splitwayRecordForJavaFIDTip=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A\u304C\u884C\u533A\u5207\u308A\u306E\u4E00\u90E8\u3067\u3042\u308B\u5834\u5408\u306B\u6709\u52B9\u3067\u3059\u3002
FileStep2.stop=\u505C\u6B62
FileStep2.textEnclosure=\u30C6\u30AD\u30B9\u30C8\u56F2\u307F\u6587\u5B57
FileStep2.textEnclosureAlert=\u30C6\u30AD\u30B9\u30C8\u56F2\u307F\u6587\u5B57\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
@@ -310,13 +310,13 @@ FileTableWizardPage.titleCreate="{0}"\u4E0A\u306E\u65B0\u3057\u3044\u30B9\u30AD\
FileTableWizardPage.titleUpdate="{0}"\u3068\u3044\u3046\u30B9\u30AD\u30FC\u30DE\u3092\u66F4\u65B0
FileWizard.windowTitleCreate=\u65B0\u898F\u306E\u56FA\u5B9A\u9577\u30D5\u30A1\u30A4\u30EB
FileWizard.windowTitleUpdate=\u65E2\u5B58\u306E\u56FA\u5B9A\u9577\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
FileWizardPage.descriptionCreateStep0=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u5B9A\u7FA9\u3057\u307E\u3059
FileWizardPage.descriptionCreateStep1=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3068\u5F62\u5F0F\u8A2D\u5B9A\u3092\u5B9A\u7FA9\u3057\u307E\u3059
FileWizardPage.descriptionCreateStep2=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n\u89E3\u6790\u30B8\u30E7\u30D6\u306E\u8A2D\u5B9A\u3092\u5B9A\u7FA9\u3057\u307E\u3059
FileWizardPage.descriptionCreateStep3=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30B9\u30AD\u30FC\u30DE\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n\u30B9\u30AD\u30FC\u30DE\u3092\u5B9A\u7FA9\u3057\u307E\u3059
FileWizardPage.descriptionUpdateStep0=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u4E0A\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\n\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u66F4\u65B0\u3057\u307E\u3059
FileWizardPage.descriptionUpdateStep1=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u4E0A\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\n\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3068\u5F62\u5F0F\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3059
FileWizardPage.descriptionUpdateStep2=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0\u3057\u307E\u3059\u3002\n\u5206\u6790\u30B8\u30E7\u30D6\u306E\u8A2D\u5B9A\u3092\u5B9A\u7FA9\u3057\u307E\u3059
FileWizardPage.descriptionCreateStep0=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\n\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u5B9A\u7FA9
FileWizardPage.descriptionCreateStep1=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\n\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3068\u5F62\u5F0F\u8A2D\u5B9A\u3092\u5B9A\u7FA9
FileWizardPage.descriptionCreateStep2=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u8FFD\u52A0\n\u89E3\u6790\u30B8\u30E7\u30D6\u306E\u8A2D\u5B9A\u3092\u5B9A\u7FA9
FileWizardPage.descriptionCreateStep3=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u306B\u30B9\u30AD\u30FC\u30DE\u3092\u8FFD\u52A0\n\u30B9\u30AD\u30FC\u30DE\u3092\u5B9A\u7FA9
FileWizardPage.descriptionUpdateStep0=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6\n\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u66F4\u65B0
FileWizardPage.descriptionUpdateStep1=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6\n\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3068\u5F62\u5F0F\u8A2D\u5B9A\u3092\u66F4\u65B0
FileWizardPage.descriptionUpdateStep2=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u3067\u65E2\u5B58\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u66F4\u65B0\n\u89E3\u6790\u30B8\u30E7\u30D6\u306E\u8A2D\u5B9A\u3092\u5B9A\u7FA9
FileWizardPage.of=of
FileWizardPage.titleCreate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
FileWizardPage.titleUpdate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
@@ -363,7 +363,7 @@ LDAPSchemaWizard.UpdateLdapSchema=LDAP\u30B9\u30AD\u30FC\u30DE\u3092\u66F4\u65B0
LDIFReader.ioException.cannotConstrauctURL=: URL\u3092\u69CB\u6210\u3067\u304D\u307E\u305B\u3093
LDIFReader.ioException.protocolNotSupported=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30D7\u30ED\u30C8\u30B3\u30EB :
LDIFReader.ioException.unknow=\u672A\u77E5\u306E\u30BF\u30A4\u30D7\u3002
LdifFileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3002\u6B63\u3057\u3044LDIF\u30D5\u30A1\u30A4\u30EB\u3067\u3059\u304B\uFF1F \n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u306B\u9593\u9055\u3063\u305FLDIF\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30D5\u30A1\u30A4\u30EB\u306B\u3088\u308A\u307E\u3059\u3002
LdifFileStep2.previewFailure=\u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u3067\u3059\u3002\u304A\u4F7F\u3044\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u6B63\u3057\u3044LDIF\u3067\u3059\u304B?\n\u6CE8: \u30D7\u30EC\u30D3\u30E5\u30FC\u30A8\u30E9\u30FC\u306F\u4E00\u822C\u7684\u306BLDIF\u5F62\u5F0F\u30D5\u30A1\u30A4\u30EB\u306E\u8AA4\u308A\u304C\u539F\u56E0\u3067\u3059\u3002
LdifFileStep2Form.columnTtitle.attributes=\u5C5E\u6027
LdifFileStep2Form.group.listAttributes=LDIF\u30D5\u30A1\u30A4\u30EB\u306E\u5C5E\u6027\u30EA\u30B9\u30C8
LdifFileStep2Form.output=\u51FA\u529B
@@ -495,13 +495,13 @@ OpenXSDFileDialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
OpenXSDFileDialog.confirm=\u78BA\u8A8D
OpenXSDFileDialog.fileName=\u30D5\u30A1\u30A4\u30EB\u540D:
OpenXSDFileDialog.xmlFileSelection=\u691C\u8A3C\u3059\u308BXML\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001\n\u691C\u8A3C\u3059\u308Bxml\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002
OpenXSDFileDialog.xmlSelectedOrNot=XSD\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u305F\u305F\u3081\u3001 \n \u691C\u8A3C\u7528\u306Exml\u30D5\u30A1\u30A4\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002
PropertiesWizard.EditPropertiesPageTitle=\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u7DE8\u96C6
PropertiesWizard.alreadyLockedByUser=\u3053\u306E\u30A2\u30A4\u30C6\u30E0\u306F\u30A8\u30C7\u30A3\u30BF\u30FC\u3067\u65E2\u306B\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u3067\u3059\u3002
PropertiesWizard.VersionTitle=\u89AA\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5909\u66F4
PropertiesWizard.PreviousVersion={0}\u306E\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9\u304C\u524D\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u30DD\u30A4\u30F3\u30C8\u3057\u3066\u3044\u307E\u3059\u3002[\u30C6\u30B9\u30C8\u30B1\u30FC\u30B9\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u7DE8\u96C6]\u3092\u4F7F\u3063\u3066\u89AA\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ConfirmReloadConnectionDialog.title=\u30EA\u30ED\u30FC\u30C9\u63A5\u7D9A\u3092\u78BA\u8A8D
ConfirmReloadConnectionDialog.desc=\u63A5\u7D9A\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F\u3002\n\u30EA\u30ED\u30FC\u30C9\u3059\u308B\u3068\u3001\u5206\u6790\u304C\u4F9D\u5B58\u3057\u3066\u3044\u308B\u3053\u306E\u63A5\u7D9A\u306E\u5206\u6790\u6E08\u307F\u30A8\u30EC\u30E1\u30F3\u30C8\u304C\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B?
ConfirmReloadConnectionDialog.desc=\u63A5\u7D9A\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u306E\u63A5\u7D9A\u3092\u30EA\u30ED\u30FC\u30C9\u3059\u308B\u3068\u3001 \n\u305D\u306E\u5206\u6790\u306B\u4F9D\u5B58\u3057\u3066\u3044\u305F\u3082\u306E\u304C\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 \n\u7D9A\u884C\u3057\u307E\u3059\u304B?
ConfirmReloadConnectionDialog.reload=\u30EA\u30ED\u30FC\u30C9
ConfirmReloadConnectionDialog.unreload=\u30EA\u30ED\u30FC\u30C9\u3057\u306A\u3044
ManagerConnection.connectionSuccessful=\u63A5\u7D9A\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002
@@ -546,3 +546,5 @@ HiveJDBCPropertiesDialog.title=Hive\u30D7\u30ED\u30D1\u30C6\u30A3
HiveJDBCPropertiesDialog.desc=Hive\u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A
MetadataTalendTypeEditor.confirmTitle=\u8B66\u544A
MetadataTalendTypeEditor.confirmMessage=\u73FE\u5728\u306E\u8A2D\u5B9A\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B7\u30B9\u30C6\u30E0\u8A2D\u5B9A\u306B\u7F6E\u63DB\u3057\u307E\u3059\u304B?
PromptDialog.title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8{0}\u306E\u5B9F\u884C\u3002\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC:
PromptDialog.stringTip=\u5165\u529B\u30C6\u30AD\u30B9\u30C8\u3092\u4E00\u91CD\u5F15\u7528\u7B26\u3067\u56F2\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002

View File

@@ -146,7 +146,7 @@ DatabaseTableForm.guessSchema=\u63A8\u6D4B Schema
DatabaseTableForm.streamDetach=\u6D41\u5206\u9694
DatabaseTableForm.table=\u57FA\u4E8E\u8868
DatabaseTableForm.tableColumnText.talbe=\u8868
DatabaseTableForm.tableNoExist=\u6570\u636E\u5E93\u8FDE\u63A5\u6210\u529F,\u4F46\u8868\u4E0D\u5B58\u5728 \\: "\u83B7\u53D6Shema"\u88AB\u7981\u7528.\n\u4F7F\u7528SGBD\u521B\u5EFA\u8868,\u7136\u540E\u5355\u51FB\u201C\u68C0\u67E5\u8FDE\u63A5\u201D\u91CD\u7F6E.
DatabaseTableForm.tableNoExist=\u6570\u636E\u5E93\u8FDE\u63A5\u6210\u529F\uFF0C\u4F46\u8868\u4E0D\u5B58\u5728: "\u83B7\u53D6Shema" \u88AB\u7981\u7528\n\u4F7F\u7528 SGBD \u521B\u5EFA\u8868\uFF0C\u7136\u540E\u5355\u51FB \u201C\u68C0\u67E5\u8FDE\u63A5\u201D \u8FDB\u884C\u6062\u590D\u3002
DatabaseTableForm.tableTip=\u9009\u62E9\u4E00\u4E2A\u8868\u5E76\u4F7F\u7528"\u83B7\u53D6"\u6309\u94AE\u6216\u624B\u52A8\u5B9A\u4E49Schema.
DatabaseTableForm.type=\u7C7B\u578B: {0}
DatabaseTableForm.type_another_name=\u8BF7\u8F93\u5165\u6570\u636E\u5E93\u73B0\u6709\u8868\u7684\u8868\u540D
@@ -265,7 +265,7 @@ FileStep2.limitTip=\u9650\u5236
FileStep2.mustBePrecised=\u5FC5\u987B\u6307\u5B9A
FileStep2.noresult=\u8FD9\u4E9B\u8BBE\u7F6E\u6CA1\u6709\u7ED3\u679C
FileStep2.noresultDetailMessage=\u8BF7\u68C0\u67E5\u6B63\u786E\u7684 XPathExpression \u6216 XML \u6E90\u6587\u6863\u3002
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u987B\u6539\u53D8\u4E00\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u53EF\u80FD\u662F\u56E0\u4E3A\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u9020\u6210\u7684\u3002
FileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u5FC5\u987B\u66F4\u6539\u67D0\u4E9B\u8BBE\u7F6E\u3002\n\u6CE8\u610F\uFF1A\u9884\u89C8\u9519\u8BEF\u901A\u5E38\u662F\u7531\u4E8E\u9519\u8BEF\u7684\u7F16\u7801\u8BBE\u7F6E\u5BFC\u81F4\u3002
FileStep2.previewIsDone=\u9884\u89C8\u6210\u529F...
FileStep2.previewProgress=\u9884\u89C8\u8FDB\u884C\u4E2D...
FileStep2.refreshPreview=\u5237\u65B0\u9884\u89C8
@@ -316,7 +316,7 @@ FileWizardPage.descriptionCreateStep2=\u5411\u5B58\u50A8\u5E93\u6DFB\u52A0\u5143
FileWizardPage.descriptionCreateStep3=\u5411\u5B58\u50A8\u5E93\u6DFB\u52A0 Schema\n\u5B9A\u4E49 Schema
FileWizardPage.descriptionUpdateStep0=\u7F16\u8F91\u5B58\u50A8\u5E93\u4E0A\u73B0\u6709\u7684\u5143\u6570\u636E\u6587\u4EF6\n\u66F4\u65B0\u5C5E\u6027
FileWizardPage.descriptionUpdateStep1=\u7F16\u8F91\u5B58\u50A8\u5E93\u4E0A\u73B0\u6709\u7684\u5143\u6570\u636E\u6587\u4EF6\n\u66F4\u65B0\u6587\u4EF6\u8DEF\u5F84\u4E0E\u683C\u5F0F\u8BBE\u7F6E
FileWizardPage.descriptionUpdateStep2=\u66F4\u65B0\u5B58\u50A8\u5E93\u4E2D\u7684\u5143\u6570\u636E\u6587\u4EF6\n\u5B9A\u4E49\u89E3\u6790\u4F5C\u4E1A\u7684\u8BBE\u7F6E
FileWizardPage.descriptionUpdateStep2=\u66F4\u65B0\u5B58\u50A8\u5E93\u4E0A\u73B0\u6709\u7684\u5143\u6570\u636E\u6587\u4EF6\n\u5B9A\u4E49\u89E3\u6790\u4F5C\u4E1A\u7684\u8BBE\u7F6E
FileWizardPage.of=/
FileWizardPage.titleCreate=\u6587\u4EF6-\u6B65\u9AA4
FileWizardPage.titleUpdate=\u6587\u4EF6-\u6B65\u9AA4
@@ -363,7 +363,7 @@ LDAPSchemaWizard.UpdateLdapSchema=\u66F4\u65B0 LDAP schema
LDIFReader.ioException.cannotConstrauctURL=\uFF1A\u4E0D\u80FD\u6784\u9020 url
LDIFReader.ioException.protocolNotSupported=\u4E0D\u652F\u6301\u7684\u534F\u8BAE:
LDIFReader.ioException.unknow=\u672A\u77E5\u7C7B\u578B\u3002
LdifFileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u662F\u5426\u786E\u5B9A\u6B64\u6587\u4EF6\u662F\u6B63\u786E\u7684 LDIF\uFF1F\n\u6CE8\u610F\uFF1A\u9519\u8BEF\u7684 LDIF \u6587\u4EF6\u683C\u5F0F\u901A\u5E38\u4F1A\u5F15\u8D77\u9884\u89C8\u9519\u8BEF\u3002
LdifFileStep2.previewFailure=\u9884\u89C8\u9519\u8BEF\u3002\u4F60\u786E\u5B9A\u6B64\u6587\u4EF6\u662F\u6B63\u786E\u7684 LDIF \u6587\u4EF6\uFF1F\n\u6CE8\u610F\uFF1A\u9519\u8BEF\u7684 LDIF \u6587\u4EF6\u683C\u5F0F\u4F1A\u9020\u6210\u9884\u89C8\u9519\u8BEF\u3002
LdifFileStep2Form.columnTtitle.attributes=\u7279\u6027
LdifFileStep2Form.group.listAttributes=\u5217\u51FA Ldif \u6587\u4EF6\u7279\u6027
LdifFileStep2Form.output=\u8F93\u51FA
@@ -495,13 +495,13 @@ OpenXSDFileDialog.cancel=\u53D6\u6D88
OpenXSDFileDialog.confirm=\u786E\u8BA4
OpenXSDFileDialog.fileName=\u6587\u4EF6\u540D:
OpenXSDFileDialog.xmlFileSelection=\u9009\u62E9\u8981\u9A8C\u8BC1\u7684 XML \u6587\u4EF6
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C\n \u5E94\u8BE5\u6709\u4E00\u4E2A xml \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
OpenXSDFileDialog.xmlSelectedOrNot=\u7531\u4E8E\u60A8\u9009\u62E9\u4E86 XSD \u5143\u6570\u636E\u6587\u4EF6\uFF0C \n \u5E94\u8BE5\u6709\u4E00\u4E2A XML \u6587\u4EF6\u9700\u8981\u9A8C\u8BC1\u3002
PropertiesWizard.EditPropertiesPageTitle=\u7F16\u8F91\u5C5E\u6027
PropertiesWizard.alreadyLockedByUser=\u56E0\u4E3A\u8FD9\u4E2A\u9879\u76EE\u5DF2\u88AB\u4E00\u4F4D\u7F16\u8F91\u8005\u9501\u5B9A\uFF0C\u6240\u4EE5\u5176\u5C5E\u6027\u4E3A\u53EA\u8BFB\u3002
PropertiesWizard.VersionTitle=\u66F4\u6539\u7236\u7248\u672C
PropertiesWizard.PreviousVersion={0} \u7684 TestCase \u5C06\u6307\u5411\u4E0A\u4E00\u7248\u672C\u3002\u8BF7\u4F7F\u7528 "\u7F16\u8F91 TestCase \u5C5E\u6027" \u6765\u66F4\u6539\u7236\u7248\u672C\u3002
ConfirmReloadConnectionDialog.title=\u786E\u8BA4\u91CD\u65B0\u52A0\u8F7D\u8FDE\u63A5
ConfirmReloadConnectionDialog.desc=\u8FDE\u63A5\u5C5E\u6027\u88AB\u66F4\u6539\uFF0C\u5206\u6790\u6240\u4F9D\u8D56\u7684\u8FDE\u63A5\u7684\n\u5206\u6790\u5143\u7D20\u53EF\u80FD\u4F1A\u88AB\u79FB\u9664\uFF0C\n\u60A8\u60F3\u8981\u7EE7\u7EED\u5417\uFF1F
ConfirmReloadConnectionDialog.desc=\u8FDE\u63A5\u5C5E\u6027\u88AB\u66F4\u6539\uFF0C\u5206\u6790\u6240\u4F9D\u8D56\u7684\u8FDE\u63A5\u7684 \n\u5206\u6790\u5143\u7D20\u53EF\u80FD\u4F1A\u88AB\u79FB\u9664\uFF0C \n\u7EE7\u7EED\u5417\uFF1F
ConfirmReloadConnectionDialog.reload=\u91CD\u65B0\u52A0\u8F7D
ConfirmReloadConnectionDialog.unreload=\u4E0D\u91CD\u65B0\u52A0\u8F7D
ManagerConnection.connectionSuccessful=\u8FDE\u63A5\u6210\u529F\uFF01
@@ -546,3 +546,5 @@ HiveJDBCPropertiesDialog.title=Hive \u5C5E\u6027
HiveJDBCPropertiesDialog.desc=Hive \u5C5E\u6027\u914D\u7F6E
MetadataTalendTypeEditor.confirmTitle=\u8B66\u544A
MetadataTalendTypeEditor.confirmMessage=\u662F\u5426\u786E\u5B9A\u8981\u5C06\u5F53\u524D\u8BBE\u7F6E\u66FF\u6362\u4E3A\u9ED8\u8BA4\u7CFB\u7EDF\u8BBE\u7F6E\uFF1F
PromptDialog.title=\u4F7F\u7528\u4EE5\u4E0B\u53C2\u6570\u8FD0\u884C\u4E0A\u4E0B\u6587 {0}:
PromptDialog.stringTip=\u8F93\u5165\u6587\u5B57\u5FC5\u987B\u7F6E\u4E8E\u5355\u5F15\u53F7\u5185\u3002

View File

@@ -0,0 +1,366 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.metadata.managment.ui.dialog;
import java.util.Arrays;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.talend.commons.ui.runtime.swt.tableviewer.celleditor.DateDialog;
import org.talend.commons.ui.utils.PathUtils;
import org.talend.core.model.process.IContext;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.ui.context.DefaultCellEditorFactory;
import org.talend.metadata.managment.ui.i18n.Messages;
/**
* this class copied from org.talend.designer.runprocess.ui.PromptDialog
*
* $Id$
*
*/
public class PromptDialog extends Dialog {
/**
*
*/
private static final int Y_POSITION = 100;
/**
*
*/
private static final int X_POSITION = 300;
/**
*
*/
private static final int CELLPADDING = 10;
/**
*
*/
private static final int MINIMUM_WIDTH = 50;
IContext context;
/**
* DOC nrousseau PromptDialog constructor comment.
*
* @param parentShell
*/
public PromptDialog(Shell parentShell, IContext context) {
super(parentShell);
this.context = context;
}
@Override
protected Control createDialogArea(Composite parent) {
final Composite composite = (Composite) super.createDialogArea(parent);
composite.setLayout(new FillLayout());
final ScrolledComposite sc = new ScrolledComposite(composite, SWT.H_SCROLL | SWT.V_SCROLL);
final Composite child = new Composite(sc, SWT.NONE);
child.setLayout(new GridLayout(1, false));
// Prompt for context values ?
for (final IContextParameter parameter : context.getContextParameterList()) {
if (parameter.isPromptNeeded()) {
if (DefaultCellEditorFactory.isBoolean(parameter.getType())) {
final Composite composite2 = new Composite(child, SWT.NONE);
final GridLayout gridLayout = new GridLayout(2, false);
gridLayout.horizontalSpacing = 5;
gridLayout.marginBottom = 0;
gridLayout.marginHeight = 0;
gridLayout.marginLeft = 0;
gridLayout.marginRight = 0;
gridLayout.marginTop = 0;
gridLayout.marginWidth = 0;
composite2.setLayout(gridLayout);
composite2.setLayoutData(new GridData(GridData.BEGINNING));
Label label = new Label(composite2, SWT.NONE);
label.setText(parameter.getPrompt());
label.setAlignment(SWT.LEFT);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
data.minimumWidth = MINIMUM_WIDTH;
label.setLayoutData(data);
final Button button = new Button(composite2, SWT.CHECK);
button.setSelection(Boolean.parseBoolean(parameter.getValue()));
button.addSelectionListener(new SelectionAdapter() {
/*
* (non-Javadoc)
*
* @see
* org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
parameter.setValue((new Boolean(button.getSelection())).toString());
}
});
} else {
Label label = new Label(child, SWT.NONE);
label.setText(parameter.getPrompt());
label.setAlignment(SWT.LEFT);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
data.minimumWidth = MINIMUM_WIDTH;
label.setLayoutData(data);
createParameterComposite(child, parameter, label);
}
}
}
sc.setContent(child);
// Set the minimum size
// sc.setMinSize(400, 400);
// Expand both horizontally and vertically
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
sc.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent e) {
Rectangle r = sc.getClientArea();
sc.setMinSize(child.computeSize(r.width, SWT.DEFAULT));
}
});
return composite;
}
/**
* DOC qiang.zhang Comment method "createParameterComposite".
*
* @param parent
* @param parameter
* @param label
*/
private void createParameterComposite(final Composite parent, final IContextParameter parameter, Label label) {
final Composite child = new Composite(parent, SWT.NONE);
final GridLayout layout = new GridLayout(2, false);
layout.marginLeft = 0;
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
layout.marginWidth = 0;
layout.marginHeight = 0;
child.setLayout(layout);
child.setLayoutData(new GridData(GridData.FILL_BOTH));
if (DefaultCellEditorFactory.isList(parameter.getType())) {
createListParameterArea(parameter, label, child);
return;
}
final Text text = new Text(child, SWT.SINGLE | SWT.BORDER);
text.setText(parameter.getValue());
text.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
parameter.setValue(text.getText());
}
});
String stringTip = ""; //$NON-NLS-1$
String comment = ""; //$NON-NLS-1$
if (parameter.getType().equalsIgnoreCase("String")) {// && LanguageManager.getCurrentLanguage() == //$NON-NLS-1$
stringTip = Messages.getString("PromptDialog.stringTip"); //$NON-NLS-1$
}
comment = parameter.getComment();
if (!stringTip.equals("")) { //$NON-NLS-1$
comment = comment + " " + stringTip; //$NON-NLS-1$
}
label.setToolTipText(comment);
text.setToolTipText(comment);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
data.minimumWidth = MINIMUM_WIDTH;
text.setLayoutData(data);
if (DefaultCellEditorFactory.isDate(parameter.getType())) {
text.setEditable(false);
final Button b = new Button(child, SWT.NONE);
b.setText("..."); //$NON-NLS-1$
b.addSelectionListener(new SelectionAdapter() {
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
DateDialog d = new DateDialog(((Button) e.getSource()).getShell());
int res = d.open();
if (res == Dialog.OK) {
text.setText(DefaultCellEditorFactory.getAddQuoteString(d.getTalendDateString()));
}
}
});
} else if (DefaultCellEditorFactory.isFile(parameter.getType())) {
text.setEditable(false);
final Button b = new Button(child, SWT.NONE);
b.setText("..."); //$NON-NLS-1$
b.addSelectionListener(new SelectionAdapter() {
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
FileDialog d = new FileDialog(((Button) e.getSource()).getShell());
if (text.getText() != null) {
d.setFileName(PathUtils.getOSPath(DefaultCellEditorFactory.getRemoveQuoteString(text.getText())));
}
String open = d.open();
if (open != null) {
text.setText(DefaultCellEditorFactory.getAddQuoteString(PathUtils.getPortablePath(open)));
}
}
});
} else if (DefaultCellEditorFactory.isDirectory(parameter.getType())) {
text.setEditable(false);
final Button b = new Button(child, SWT.NONE);
b.setText("..."); //$NON-NLS-1$
b.addSelectionListener(new SelectionAdapter() {
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
DirectoryDialog d = new DirectoryDialog(((Button) e.getSource()).getShell());
if (text.getText() != null) {
d.setFilterPath(PathUtils.getOSPath(DefaultCellEditorFactory.getRemoveQuoteString(text.getText())));
}
String open = d.open();
if (open != null) {
open = PathUtils.getPortablePath(open);
open += "/"; //$NON-NLS-1$
text.setText(DefaultCellEditorFactory.getAddQuoteString(open));
}
}
});
} else if (DefaultCellEditorFactory.isPassword(parameter.getType())) {
text.setEchoChar('*');
}
}
/**
* DOC bqian Comment method "createListParameterArea".
*
* @param parameter
* @param label
* @param parent
*/
private void createListParameterArea(final IContextParameter parameter, Label label, final Composite parent) {
final CCombo combo = new CCombo(parent, SWT.BORDER);
combo.setEditable(false);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
data.minimumWidth = MINIMUM_WIDTH;
combo.setLayoutData(data);
String[] valueList = parameter.getValueList();
if (valueList != null) {
combo.setItems(valueList);
int index = Arrays.binarySearch(valueList, parameter.getValue());
if (index >= 0) {
combo.select(index);
} else {
combo.select(0);
}
}
parameter.setInternalValue(combo.getText());
combo.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
parameter.setValue(combo.getText());
}
});
if (parameter.getComment() != null) {
if (!parameter.getComment().equals("")) { //$NON-NLS-1$
label.setToolTipText(parameter.getComment());
combo.setToolTipText(parameter.getComment());
}
}
}
@Override
protected void setShellStyle(int newShellStyle) {
newShellStyle = newShellStyle | SWT.RESIZE;
super.setShellStyle(newShellStyle);
}
protected void setSize(Shell shell, Point size) {
Point centerScreen = new Point(shell.getDisplay().getClientArea().width / 2,
shell.getDisplay().getClientArea().height / 2);
Point newPosition = new Point(size.x / 2, size.x / 2);
newPosition.x = centerScreen.x - newPosition.x;
newPosition.y = centerScreen.y - newPosition.y;
shell.setLocation(newPosition);
shell.setSize(size.x + (size.x / 2), size.y + (size.y / 2));
}
@Override
protected void configureShell(final Shell newShell) {
super.configureShell(newShell);
Text t = new Text(newShell, SWT.None);
int height = t.getLineHeight() + CELLPADDING;
t.dispose();
int nbParams = 0;
for (IContextParameter parameter : context.getContextParameterList()) {
if (parameter.isPromptNeeded()) {
nbParams++;
}
}
Point dialogSize = new Point(X_POSITION, Math.min((height * nbParams) + Y_POSITION, 400));
setSize(newShell, dialogSize);
newShell.setText(Messages.getString("PromptDialog.title", context.getName())); //$NON-NLS-1$
}
}

View File

@@ -28,6 +28,8 @@ import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
*/
public class PropertiesFieldModel extends ExtendedTableModel<Map<String, Object>> {
private boolean fixedSize;
public PropertiesFieldModel(String name) {
super(name);
setProperties(new ArrayList<Map<String, Object>>());
@@ -49,15 +51,26 @@ public class PropertiesFieldModel extends ExtendedTableModel<Map<String, Object>
@Override
public void addAll(final Integer index, List<Map<String, Object>> beans, boolean fireBefore, boolean fireAfter) {
super.addAll(index, beans, fireBefore, fireAfter);
TableViewer tableViewer = getTableViewer();
if (tableViewer != null) {
Table table = tableViewer.getTable();
table.pack();
table.layout();
if (!fixedSize) {
TableViewer tableViewer = getTableViewer();
if (tableViewer != null) {
Table table = tableViewer.getTable();
table.pack();
table.layout();
}
}
}
public void superAddAll(final Integer index, List<Map<String, Object>> beans, boolean fireBefore, boolean fireAfter) {
super.addAll(index, beans, fireBefore, fireAfter);
}
public boolean isFixedSize() {
return fixedSize;
}
public void setFixedSize(boolean fixedSize) {
this.fixedSize = fixedSize;
}
}

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.core.runtime.Assert;
import org.eclipse.emf.common.util.EList;
import org.eclipse.gef.commands.Command;
import org.eclipse.jface.dialogs.Dialog;
@@ -94,6 +95,7 @@ import org.talend.core.ui.context.model.table.ConectionAdaptContextVariableModel
import org.talend.core.ui.process.IGEFProcess;
import org.talend.core.ui.services.IDesignerCoreUIService;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.metadata.managment.ui.dialog.PromptDialog;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
@@ -2154,4 +2156,37 @@ public final class ConnectionContextHelper {
return null;
}
public static boolean promptConfirmLauch(Shell shell, IContext context) {
boolean continueLaunch = true;
int nbValues = 0;
Assert.isNotNull(context);
// Prompt for context values ?
for (IContextParameter parameter : context.getContextParameterList()) {
if (parameter.isPromptNeeded()) {
nbValues++;
}
}
if (nbValues > 0) {
IContext contextCopy = context.clone();
PromptDialog promptDialog = new PromptDialog(shell, contextCopy);
if (promptDialog.open() == PromptDialog.OK) {
for (IContextParameter param : context.getContextParameterList()) {
boolean found = false;
IContextParameter paramCopy = null;
for (int i = 0; i < contextCopy.getContextParameterList().size() & !found; i++) {
paramCopy = contextCopy.getContextParameterList().get(i);
if (param.getName().equals(paramCopy.getName())) {
// param.setValueList(paramCopy.getValueList());
param.setInternalValue(paramCopy.getValue());
found = true;
}
}
}
} else {
continueLaunch = false;
}
}
return continueLaunch;
}
}

View File

@@ -38,6 +38,7 @@ public class ExtendedNodeConnectionContextUtils {
Port,
ConnectionString,
Keyspace,
Datacenter,
Database,
Databasepath,
UserName,
@@ -101,8 +102,12 @@ public class ExtendedNodeConnectionContextUtils {
SynapseSparkPools,
SynapseFsHostName,
SynapseFsContainer,
SynapseAuthType,
SynapseFsUserName,
SynapseFsPassword,
SynapseClientId,
SynapseDirectoryId,
SynapseSecretKey,
SynapseDeployBlob,
SynapseDriverMemory,
SynapseDriverCores,
@@ -139,7 +144,10 @@ public class ExtendedNodeConnectionContextUtils {
GoogleClusterId,
GoogleRegion,
GoogleJarsBucket,
useGoogleCredentials,
GoogleAuthMode,
PathToGoogleCredentials,
GoogleOauthToken,
// Override hadoop configuration
setHadoopConf,
@@ -159,7 +167,15 @@ public class ExtendedNodeConnectionContextUtils {
KnoxUrl,
KnoxUsername,
KnoxPassword,
KnoxDirectory
KnoxDirectory,
//Cde
CdeApiEndPoint,
CdeAutoGenerateToken,
CdeToken,
CdeTokenEndpoint,
CdeWorkloadUser,
CdeWorkloadPassword
}
static List<IContextParameter> getContextVariables(final String prefixName, Connection conn, Set<IConnParamName> paramSet) {

View File

@@ -483,7 +483,7 @@ public abstract class AbstractForm extends Composite {
} else {
String defaultContextName = ConnectionContextHelper.convertContextLabel(connectionItem.getProperty().getLabel());
Map<ContextItem, List<ConectionAdaptContextVariableModel>> variableModels = ConnectionContextHelper
.exportAsContext(defaultContextName, connectionItem, getConetxtParams());
.exportAsContext(defaultContextName, connectionItem, getContextParams());
contextManager = ConnectionContextHelper.contextManager;
if (variableModels != null) {
@@ -496,11 +496,11 @@ public abstract class AbstractForm extends Composite {
Map<String, String> map = ((JobContextManager) contextManager).getNameMap();
// set properties for context mode
ConnectionContextHelper.setPropertiesForContextMode(defaultContextName, connectionItem,
contextItem, getConetxtParams(), map);
contextItem, getContextParams(), map);
}
} else {
// set properties for exist context
ConnectionContextHelper.setPropertiesForExistContextMode(connectionItem, getConetxtParams(),
ConnectionContextHelper.setPropertiesForExistContextMode(connectionItem, getContextParams(),
variableModels);
}
// refresh current UI.
@@ -556,7 +556,7 @@ public abstract class AbstractForm extends Composite {
contextParamSet.clear();
}
protected Set<IConnParamName> getConetxtParams() {
protected Set<IConnParamName> getContextParams() {
return contextParamSet; // for db and file connection
}

View File

@@ -22,6 +22,7 @@ import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.runtime.evaluator.AbstractPropertyValueEvaluator;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.runtime.util.GenericTypeUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.daikon.properties.property.Property;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
@@ -82,7 +83,12 @@ public class MetadataContextPropertyValueEvaluator extends AbstractPropertyValue
String val = String.valueOf(storedValue);
storedValue = getUri(val);
}
}
if (GenericTypeUtils.isStringType(property)) {
String val = String.valueOf(storedValue);
if (property.isFlag(Property.Flags.ENCRYPT)) {
return val;
}
}
return getTypedValue(property, currentStoredValue, storedValue);
}

Some files were not shown because too many files have changed in this diff Show More