Compare commits

..

35 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
100 changed files with 5071 additions and 264 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

@@ -114,7 +114,7 @@ TableViewerCreator.Table.BeNull=la table est null.
TableViewerCreator.TableColumn.AssertMsg=La TableColumn de TableEditorColumn avec idProperty '{0}' n'a pas la bonne Table parente
TreeToTablesLinker.Type.Unsupported=Ce type de currentControl n'est pas support\u00E9
commons.error=Erreur
exception.errorOccured=Une erreur est survenue ({0}).\nConsultez le log plus de d\u00E9tails.
exception.errorOccured=Une erreur est survenue ({0}).\nConsultez le log pour plus de d\u00E9tails.
ModelSelectionDialog.Message=S\u00E9lectionnez une option ou annulez.
ModelSelectionDialog.Option=Option
ModelSelectionDialog.BuiltIn=Basculer la propri\u00E9t\u00E9 en mode Built-In.

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

@@ -110,7 +110,7 @@ TableViewerCreator.Table.BeNull=la table est null.
TableViewerCreator.TableColumn.AssertMsg=La TableColumn de TableEditorColumn avec idProperty '{0}' n'a pas la bonne Table parente
TreeToTablesLinker.Type.Unsupported=Ce type de currentControl n'est pas support\u00E9
commons.error=Erreur
exception.errorOccured=Une erreur est survenue ({0}).\nConsultez le log plus de d\u00E9tails.
exception.errorOccured=Une erreur est survenue ({0}).\nConsultez le log pour plus de d\u00E9tails.
ModelSelectionDialog.Message=S\u00E9lectionnez une option ou annulez.
ModelSelectionDialog.Option=Option
ModelSelectionDialog.BuiltIn=Basculer la propri\u00E9t\u00E9 en mode Built-In.

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

@@ -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,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

@@ -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;
/**
@@ -61,7 +63,7 @@ public enum EDatabaseVersion4Drivers {
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

@@ -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

@@ -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

@@ -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 !

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

@@ -10,7 +10,7 @@
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.services;
package org.talend.core.service;
import java.io.File;
import java.text.ParseException;
@@ -76,7 +76,17 @@ public interface IDetectCVEService extends IService {
*/
ImpactedItem detect(Item item, Set<CVEData> datas, boolean includeNotFixed);
/**
* Persist final cve report
* @param impactedItems impacted items
* @param reportFile - report file path
*/
void writeReport(List<ImpactedItem> impactedItems, File reportFile);
/**
* Clear CVE cache
*/
void clearCache();
public static String mavenUri2GAV(String uri) {
if (MavenUrlHelper.isMvnUrl(uri)) {

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,4 +1,3 @@
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.
@@ -257,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 !

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

@@ -162,7 +162,7 @@ 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,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;

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

@@ -11,8 +11,9 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.42.0</tcomp.version>
<tcomp.version>1.43.1</tcomp.version>
<slf4j.version>1.7.32</slf4j.version>
<reload4j.version>1.2.19</reload4j.version>
</properties>
<repositories>
@@ -100,6 +101,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>

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

@@ -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

@@ -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

@@ -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

@@ -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

View File

@@ -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

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

@@ -363,9 +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?\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
@@ -548,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

@@ -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
@@ -272,12 +272,12 @@ 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
@@ -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

@@ -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

@@ -102,8 +102,12 @@ public class ExtendedNodeConnectionContextUtils {
SynapseSparkPools,
SynapseFsHostName,
SynapseFsContainer,
SynapseAuthType,
SynapseFsUserName,
SynapseFsPassword,
SynapseClientId,
SynapseDirectoryId,
SynapseSecretKey,
SynapseDeployBlob,
SynapseDriverMemory,
SynapseDriverCores,
@@ -140,7 +144,10 @@ public class ExtendedNodeConnectionContextUtils {
GoogleClusterId,
GoogleRegion,
GoogleJarsBucket,
useGoogleCredentials,
GoogleAuthMode,
PathToGoogleCredentials,
GoogleOauthToken,
// Override hadoop configuration
setHadoopConf,
@@ -160,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

@@ -14,11 +14,11 @@
<!-- Seems those 3 are not useful -->
<classloader
index="HIVE:HORTONWORKS:HDP_1_0:EMBEDDED"
libraries="hive-hbase-handler-0.9.0.jar;hbase-0.92.0.jar;hadoop-core-1.0.3.jar;commons-logging-1.0.4.jar;datanucleus-api-jdo-3.0.7.jar;datanucleus-core-3.0.9.jar;datanucleus-rdbms-3.0.8.jar;hive-builtins-0.9.0.jar;hive-exec-0.9.0_hdp.jar;hive-jdbc-0.9.0_hdp.jar;hive-metastore-0.9.0_hdp.jar;hive-service-0.9.0_hdp.jar;libfb303-0.7.0.jar;libthrift-0.7.0.jar;commons-lang-2.4.jar;antlr-runtime-3.0.1.jar;commons-dbcp-1.4.jar;commons-pool-1.5.4.jar;derby-10.4.2.0.jar;commons-configuration-1.6.jar;jdo2-api-2.3-ec.jar;log4j-1.2.17.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;jackson-core-asl-1.8.8.jar;jackson-mapper-asl-1.8.8.jar">
libraries="hive-hbase-handler-0.9.0.jar;hbase-0.92.0.jar;hadoop-core-1.0.3.jar;commons-logging-1.0.4.jar;datanucleus-api-jdo-3.0.7.jar;datanucleus-core-3.0.9.jar;datanucleus-rdbms-3.0.8.jar;hive-builtins-0.9.0.jar;hive-exec-0.9.0_hdp.jar;hive-jdbc-0.9.0_hdp.jar;hive-metastore-0.9.0_hdp.jar;hive-service-0.9.0_hdp.jar;libfb303-0.7.0.jar;libthrift-0.7.0.jar;commons-lang-2.4.jar;antlr-runtime-3.0.1.jar;commons-dbcp-1.4.jar;commons-pool-1.5.4.jar;derby-10.4.2.0.jar;commons-configuration-1.6.jar;jdo2-api-2.3-ec.jar;reload4j-1.2.19.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;jackson-core-asl-1.8.8.jar;jackson-mapper-asl-1.8.8.jar">
</classloader>
<classloader
index="HIVE:AMAZON_EMR:MapR_EMR:STANDALONE"
libraries="hadoop-core-0.20.203.0.jar;log4j-1.2.17.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
libraries="hadoop-core-0.20.203.0.jar;reload4j-1.2.19.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
</classloader>
<!-- -->
<classloader
@@ -36,14 +36,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>
<libraryNeeded

View File

@@ -316,7 +316,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 !

View File

@@ -1,5 +1,5 @@
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_content=\u7248\u6743\u6240\u6709 (c) 2005-2010, 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-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_content=\u7248\u6743\u6240\u6709 (c) 2005-2010, 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
@@ -232,7 +232,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:
@@ -282,12 +282,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 \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.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
RoutinesFunctionProposal.CreatedBy=\u521B\u5EFA\u4EBA:
@@ -421,12 +421,12 @@ 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
ProposalUtils.CellProposal.Error=\u5BF9\u6B64\u7C7B\u578B CellEditor \u7684\u63D0\u8BAE\u4E0D\u53D7\u652F\u6301:
ProposalUtils.CtrlProposal.ErrorMsg=\u63A7\u952E\u7C7B\u578B\u63D0\u793A\u4E0D\u88AB\u652F\u6301\uFF1A
CommonWizard.exception=\u5F02\u5E38
CheckConnection.CheckSchema.ProposeSchema.title=\u5C06 Schema \u66FF\u6362\u4E3A\u201C\u5EFA\u8BAE\u7684 Schema\u201D\uFF1F
CheckConnection.CheckSchema.ProposeSchema.message=\u65E0\u6CD5\u627E\u5230\u4ECE\u6570\u636E\u5E93\u4E2D\u586B\u5145\u7684 schema [{0}]\uFF0C\n\u60A8\u662F\u5426\u60F3\u4F7F\u7528 [{1}]\uFF1F
CheckConnection.CheckSchema.ProposeSchema.message=\u65E0\u6CD5\u627E\u5230\u4ECE\u6570\u636E\u5E93\u4E2D\u586B\u5145\u7684 schema [{0}]\uFF0C\n\u60A8\u662F\u5426\u60F3\u4F7F\u7528 [{1}]?
NetezzaConnectionFiller.emptyCalalogName=\u76EE\u5F55\u540D\u79F0\u4E3A\u7A7A\uFF01
DBConnectionFillerImpl.dbmsIdIsBlank=DBMS ID\u4E3A\u7A7A\\!
EmbeddedHiveDataBaseMetadata.functionNotSupportMessage=\u5728Windows\u4E2D\u4E0D\u652F\u6301\u5D4C\u5165\u5F0F\u6A21\u5F0F

View File

@@ -167,7 +167,8 @@ public class JDBCDriverLoader {
}
}
if (additionalParams != null && !"".equals(additionalParams) && dbType.toUpperCase().contains("ORACLE")) {//$NON-NLS-1$//$NON-NLS-2$
if (additionalParams != null && !"".equals(additionalParams)
&& (dbType.toUpperCase().contains("ORACLE") || EDatabaseTypeName.REDSHIFT.getDisplayName().equals(dbType))) {// $NON-NLS-1$//$NON-NLS-2$
if (additionalParams.contains(SSLPreferenceConstants.TRUSTSTORE_TYPE)) {
System.setProperty("jsse.enableCBCProtection", "false");//$NON-NLS-1$//$NON-NLS-2$
Object pki = ReflectionUtils.newInstance("oracle.security.pki.OraclePKIProvider", loader, //$NON-NLS-1$

View File

@@ -81,7 +81,7 @@ _UI_BusinessItemShape_incomingRelationships_feature=\u5165\u529B\u95A2\u4FC2
_UI_BusinessItemShape_outgoingRelationships_feature=\u51FA\u529B\u95A2\u4FC2
_UI_TableMetadata_type=\u30C6\u30FC\u30D6\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_TalendItem_author_feature=\u4F5C\u6210\u8005
_UI_FileDelimitedMetadata_type=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_FileDelimitedMetadata_type=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_FilePositionalMetadata_type=\u56FA\u5B9A\u9577\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_FileRegexpMetadata_type=\u6B63\u898F\u8868\u73FE\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_FileXmlMetadata_type=XML\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
@@ -125,7 +125,7 @@ _UI_RoutineItem_type=\u30EB\u30FC\u30C1\u30F3\u30A2\u30A4\u30C6\u30E0
_UI_ConnectionItem_type=\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_SnippetVariable_type=\u30B9\u30CB\u30DA\u30C3\u30C8\u5909\u6570
_UI_SnippetItem_type=\u30B9\u30CB\u30DA\u30C3\u30C8\u30A2\u30A4\u30C6\u30E0
_UI_DelimitedFileConnectionItem_type=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_DelimitedFileConnectionItem_type=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_PositionalFileConnectionItem_type=\u56FA\u5B9A\u9577\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_RegExFileConnectionItem_type=\u6B63\u898F\u8868\u73FE\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_CSVFileConnectionItem_type=CSV\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
@@ -579,7 +579,7 @@ _UI_MetadataColumn_type=\u30E1\u30BF\u30C7\u30FC\u30BF\u30AB\u30E9\u30E0
_UI_AbstractMetadataObject_type=\u62BD\u8C61\u30E1\u30BF\u30C7\u30FC\u30BF\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8
_UI_MetadataTable_type=\u30E1\u30BF\u30C7\u30FC\u30BF\u30C6\u30FC\u30D6\u30EB
_UI_FileConnection_type=\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_DelimitedFileConnection_type=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_DelimitedFileConnection_type=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_PositionalFileConnection_type=\u56FA\u5B9A\u9577\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_EbcdicConnection_type=EBCDIC\u63A5\u7D9A
_UI_MDMConnection_type=MDM\u63A5\u7D9A
@@ -773,7 +773,7 @@ _UI_FileExcelConnection_SheetName_feature=\u30B7\u30FC\u30C8\u540D
_UI_FileExcelConnection_sheetColumns_feature=\u30B7\u30FC\u30C8\u30AB\u30E9\u30E0
_UI_FileExcelConnection_firstColumn_feature=\u6700\u521D\u30AB\u30E9\u30E0
_UI_FileExcelConnection_lastColumn_feature=\u6700\u7D42\u30AB\u30E9\u30E0
_UI_FileExcelConnection_thousandSeparator_feature=\u5343\u6841\u533A\u5207\u308A\u8A18\u53F7
_UI_FileExcelConnection_thousandSeparator_feature=\u5343\u6841\u533A\u5207\u308A
_UI_FileExcelConnection_decimalSeparator_feature=\u5C0F\u6570\u70B9\u533A\u5207\u308A\u6587\u5B57
_UI_FileExcelConnection_advancedSpearator_feature=\u9AD8\u5EA6\u306A\u533A\u5207\u308A
_UI_FileExcelConnection_selectAllSheets_feature=\u30B7\u30FC\u30C8\u3092\u3059\u3079\u3066\u9078\u629E
@@ -899,7 +899,7 @@ _UI_FieldSeparator_Alt_65_literal='(Alt 65, #A4)
_UI_FieldSeparator_Custom_ANSI_literal=Custom_ANSI
_UI_FieldSeparator_Custom_UTF8_literal=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9(UTF8)
_UI_FieldSeparator_Custom_RegExp_literal=Custom_RegExp
_UI_Escape_Delimited_literal=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D
_UI_Escape_Delimited_literal=\u533A\u5207\u308A\u4ED8\u304D
_UI_Escape_CSV_literal=CSV
_UI_RowSeparator_Custom_String_literal=\u30AB\u30B9\u30BF\u30E0\u6587\u5B57\u5217
_UI_RowSeparator_Standart_EOL_literal=\u6A19\u6E96EOL

View File

@@ -866,6 +866,7 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceSystemName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="infoAreaName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="innerIOType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SAPBWTableField" eSuperTypes="#//SAPTableField">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="logicalName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

View File

@@ -568,6 +568,7 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute metadata.ecore#//SAPBWTable/sourceSystemName"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute metadata.ecore#//SAPBWTable/infoAreaName"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute metadata.ecore#//SAPBWTable/innerIOType"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute metadata.ecore#//SAPBWTable/category"/>
</genClasses>
<genClasses ecoreClass="metadata.ecore#//SAPBWTableField">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute metadata.ecore#//SAPBWTableField/logicalName"/>

View File

@@ -20013,6 +20013,15 @@ public interface ConnectionPackage extends EPackage {
*/
int SAPBW_TABLE__INNER_IO_TYPE = SAP_TABLE_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Category</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int SAPBW_TABLE__CATEGORY = SAP_TABLE_FEATURE_COUNT + 5;
/**
* The number of structural features of the '<em>SAPBW Table</em>' class.
* <!-- begin-user-doc -->
@@ -20020,7 +20029,7 @@ public interface ConnectionPackage extends EPackage {
* @generated
* @ordered
*/
int SAPBW_TABLE_FEATURE_COUNT = SAP_TABLE_FEATURE_COUNT + 5;
int SAPBW_TABLE_FEATURE_COUNT = SAP_TABLE_FEATURE_COUNT + 6;
/**
* The meta object id for the '{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableFieldImpl <em>SAPBW Table Field</em>}' class.
@@ -25188,6 +25197,17 @@ public interface ConnectionPackage extends EPackage {
*/
EAttribute getSAPBWTable_InnerIOType();
/**
* Returns the meta object for the attribute '{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getCategory <em>Category</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Category</em>'.
* @see org.talend.core.model.metadata.builder.connection.SAPBWTable#getCategory()
* @see #getSAPBWTable()
* @generated
*/
EAttribute getSAPBWTable_Category();
/**
* Returns the meta object for class '{@link org.talend.core.model.metadata.builder.connection.SAPBWTableField <em>SAPBW Table Field</em>}'.
* <!-- begin-user-doc -->
@@ -28987,6 +29007,14 @@ public interface ConnectionPackage extends EPackage {
*/
EAttribute SAPBW_TABLE__INNER_IO_TYPE = eINSTANCE.getSAPBWTable_InnerIOType();
/**
* The meta object literal for the '<em><b>Category</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute SAPBW_TABLE__CATEGORY = eINSTANCE.getSAPBWTable_Category();
/**
* The meta object literal for the '{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableFieldImpl <em>SAPBW Table Field</em>}' class.
* <!-- begin-user-doc -->

View File

@@ -18,6 +18,7 @@ import java.util.Date;
* <li>{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getSourceSystemName <em>Source System Name</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getInfoAreaName <em>Info Area Name</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getInnerIOType <em>Inner IO Type</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getCategory <em>Category</em>}</li>
* </ul>
*
* @see org.talend.core.model.metadata.builder.connection.ConnectionPackage#getSAPBWTable()
@@ -156,4 +157,26 @@ public interface SAPBWTable extends SAPTable {
*/
void setInnerIOType(String value);
/**
* Returns the value of the '<em><b>Category</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the value of the '<em>Category</em>' attribute.
* @see #setCategory(String)
* @see org.talend.core.model.metadata.builder.connection.ConnectionPackage#getSAPBWTable_Category()
* @model
* @generated
*/
String getCategory();
/**
* Sets the value of the '{@link org.talend.core.model.metadata.builder.connection.SAPBWTable#getCategory <em>Category</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Category</em>' attribute.
* @see #getCategory()
* @generated
*/
void setCategory(String value);
} // SAPBWTable

View File

@@ -4103,6 +4103,15 @@ public class ConnectionPackageImpl extends EPackageImpl implements ConnectionPac
return (EAttribute) sapbwTableEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getSAPBWTable_Category() {
return (EAttribute) sapbwTableEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4892,6 +4901,7 @@ public class ConnectionPackageImpl extends EPackageImpl implements ConnectionPac
createEAttribute(sapbwTableEClass, SAPBW_TABLE__SOURCE_SYSTEM_NAME);
createEAttribute(sapbwTableEClass, SAPBW_TABLE__INFO_AREA_NAME);
createEAttribute(sapbwTableEClass, SAPBW_TABLE__INNER_IO_TYPE);
createEAttribute(sapbwTableEClass, SAPBW_TABLE__CATEGORY);
sapbwTableFieldEClass = createEClass(SAPBW_TABLE_FIELD);
createEAttribute(sapbwTableFieldEClass, SAPBW_TABLE_FIELD__LOGICAL_NAME);
@@ -5122,7 +5132,7 @@ public class ConnectionPackageImpl extends EPackageImpl implements ConnectionPac
initEAttribute(getFileConnection_FieldSeparatorValue(), ecorePackage.getEString(), "FieldSeparatorValue", null, 1, 1,
FileConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEAttribute(getFileConnection_RowSeparatorType(), this.getRowSeparator(), "RowSeparatorType", "Standart_EOL = 1", 1, 1,
initEAttribute(getFileConnection_RowSeparatorType(), this.getRowSeparator(), "RowSeparatorType", null, 1, 1,
FileConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
initEAttribute(getFileConnection_RowSeparatorValue(), ecorePackage.getEString(), "RowSeparatorValue", null, 0, 1,
@@ -6204,6 +6214,8 @@ public class ConnectionPackageImpl extends EPackageImpl implements ConnectionPac
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getSAPBWTable_InnerIOType(), ecorePackage.getEString(), "innerIOType", null, 0, 1, SAPBWTable.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getSAPBWTable_Category(), ecorePackage.getEString(), "category", null, 0, 1, SAPBWTable.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(sapbwTableFieldEClass, SAPBWTableField.class, "SAPBWTableField", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);

View File

@@ -26,6 +26,7 @@ import org.talend.core.model.metadata.builder.connection.SAPBWTable;
* <li>{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableImpl#getSourceSystemName <em>Source System Name</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableImpl#getInfoAreaName <em>Info Area Name</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableImpl#getInnerIOType <em>Inner IO Type</em>}</li>
* <li>{@link org.talend.core.model.metadata.builder.connection.impl.SAPBWTableImpl#getCategory <em>Category</em>}</li>
* </ul>
*
* @generated
@@ -132,6 +133,26 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
*/
protected String innerIOType = INNER_IO_TYPE_EDEFAULT;
/**
* The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCategory()
* @generated
* @ordered
*/
protected static final String CATEGORY_EDEFAULT = null;
/**
* The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCategory()
* @generated
* @ordered
*/
protected String category = CATEGORY_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -260,6 +281,28 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
innerIOType));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getCategory() {
return category;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setCategory(String newCategory) {
String oldCategory = category;
category = newCategory;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ConnectionPackage.SAPBW_TABLE__CATEGORY, oldCategory,
category));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -278,6 +321,8 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
return getInfoAreaName();
case ConnectionPackage.SAPBW_TABLE__INNER_IO_TYPE:
return getInnerIOType();
case ConnectionPackage.SAPBW_TABLE__CATEGORY:
return getCategory();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -305,6 +350,9 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
case ConnectionPackage.SAPBW_TABLE__INNER_IO_TYPE:
setInnerIOType((String) newValue);
return;
case ConnectionPackage.SAPBW_TABLE__CATEGORY:
setCategory((String) newValue);
return;
}
super.eSet(featureID, newValue);
}
@@ -332,6 +380,9 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
case ConnectionPackage.SAPBW_TABLE__INNER_IO_TYPE:
setInnerIOType(INNER_IO_TYPE_EDEFAULT);
return;
case ConnectionPackage.SAPBW_TABLE__CATEGORY:
setCategory(CATEGORY_EDEFAULT);
return;
}
super.eUnset(featureID);
}
@@ -355,6 +406,8 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
return INFO_AREA_NAME_EDEFAULT == null ? infoAreaName != null : !INFO_AREA_NAME_EDEFAULT.equals(infoAreaName);
case ConnectionPackage.SAPBW_TABLE__INNER_IO_TYPE:
return INNER_IO_TYPE_EDEFAULT == null ? innerIOType != null : !INNER_IO_TYPE_EDEFAULT.equals(innerIOType);
case ConnectionPackage.SAPBW_TABLE__CATEGORY:
return CATEGORY_EDEFAULT == null ? category != null : !CATEGORY_EDEFAULT.equals(category);
}
return super.eIsSet(featureID);
}
@@ -380,6 +433,8 @@ public class SAPBWTableImpl extends SAPTableImpl implements SAPBWTable {
result.append(infoAreaName);
result.append(", innerIOType: ");
result.append(innerIOType);
result.append(", category: ");
result.append(category);
result.append(')');
return result.toString();
}

View File

@@ -36,6 +36,8 @@ public class SAPBWTableHelper {
public static final String SAP_DATASOURCE_SOURCESYSNAME = "SOURCE_SYSNAME"; //$NON-NLS-1$
public static final String ADSO_OUTPUT = "Output"; //$NON-NLS-1$
private static final List<String> INFOOBJECT_INNERTYPE = new ArrayList<String>();
static {

View File

@@ -67,7 +67,7 @@ TalendForgeDialog.labelMessageOnePart_1=Vous ne trouvez pas le bon connecteur da
TalendForgeDialog.labelMessageTwo_1=Acc\u00E9dez \u00E0 la documentation et aux articles techniques les plus r\u00E9cents sur l'aide en ligne Talend : help.talend.com
TalendForgeDialog.labelMessageThreeVer_1=Trouvez les r\u00E9ponses \u00E0 vos questions et aidez d'autres utilisateurs dans des discussions sur community.talend.com
TalendForgeDialog.createLabel=Cr\u00E9er un compte
TalendForgeDialog.userNameLabel=Utilisateur\u00A0:
TalendForgeDialog.userNameLabel=Identifiant\u00A0:
TalendForgeDialog.userNameLabel.tooltip=Nom d'utilisateur requis
TalendForgeDialog.emailLabel=Adresse e-mail :
TalendForgeDialog.emailLabel.tooltip=Saisissez une adresse e-mail valide
@@ -77,7 +77,7 @@ TalendForgeDialog.passwordLabel=Mot de passe :
TalendForgeDialog.passwordLabel.tooltip=Mot de passe n\u00E9cessaire
TalendForgeDialog.passwordAgainLabel=Mot de passe (confirmation) :
TalendForgeDialog.passwordAgainLabel.tooltip=Mot de passe (confirmation) doit correspondre au mot de passe
TalendForgeDialog.agreeButtonVer_1=J'accepte les termes
TalendForgeDialog.agreeButtonVer_1=J'accepte les termes
TalendForgeDialog.agreeButtonVer_2=d'utilisation de la Communaut\u00E9
TalendForgeDialog.improveButton=Je veux participer \u00E0 l'am\u00E9lioration de Talend en partageant des statistiques d'utilisation anonymes.
TalendForgeDialog.readMore=(en savoir plus...)
@@ -99,7 +99,7 @@ TalendForgeDialog.ConnectSuccessMessage=Connexion \u00E0 TalendForge r\u00E9ussi
TalendForgeDialog.ConnectFailureMessage=\u00C9chec de la connexion \u00E0 TalendForge.
TalendForgeDialog.ConnectExistingButton=Se connecter \u00E0 un compte existant
TalendForgeDialog.CreateNewButton=Cr\u00E9er un compte
TalendForgeDialog.form.userName.hint=Utilisateur
TalendForgeDialog.form.userName.hint=Identifiant
TalendForgeDialog.form.password.hint=Mot de passe
TalendForgeDialog.form.passwordAgain.hint=Mot de passe \u00E0 nouveau
TalendForgeDialog.form.email.hint=E-mail

View File

@@ -7,7 +7,7 @@ LicenseWizard.windowTitle=\u8BB8\u53EF\u8BC1
RegisterWizard.windowTitle={0} \u6CE8\u518C
RegisterWizardDialog.ok_button=\u9A8C\u8BC1
RegisterWizardPage.country=\u56FD\u5BB6/\u5730\u533A
RegisterWizardPage.description=\u8981\u83B7\u53D6 {0} \u6700\u65B0\u6D88\u606F\uFF0C\u8BF7\u63D0\u4F9B\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\uFF0C\u5982\u679C\u9700\u8981\uFF0C\u8BF7\u63D0\u4F9B\u60A8\u7684\u4EE3\u7406\u670D\u52A1\u5668\u8BE6\u7EC6\u4FE1\u606F\u3002\n\u6216\u8005\uFF0C\u70B9\u51FB\u201C\u53D6\u6D88\u201D\u8DF3\u8FC7\u6B64\u6B65\u9AA4\u3002
RegisterWizardPage.description=\u8981\u83B7\u53D6 {0} \u6700\u65B0\u6D88\u606F\uFF0C\u8BF7\u63D0\u4F9B\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\uFF0C\u5982\u679C\u9700\u8981\uFF0C\u8BF7\u63D0\u4F9B\u60A8\u7684\u4EE3\u7406\u670D\u52A1\u5668\u8BE6\u7EC6\u4FE1\u606F\u3002\n\u6216\u70B9\u51FB \u201C\u53D6\u6D88\u201D \u8DF3\u8FC7\u6B64\u6B65\u9AA4\u3002
RegisterWizardPage.email=\u7535\u5B50\u90AE\u4EF6
RegisterWizardPage.emailEmpty=\u9700\u8981 email \u5730\u5740\u3002
RegisterWizardPage.emailNotValid=\u7535\u5B50\u90AE\u4EF6\u5730\u5740\u5FC5\u987B\u6709\u6548\u3002
@@ -15,11 +15,11 @@ RegisterWizardPage.enableHttpProxy=\u542F\u7528 HTTP \u4EE3\u7406\u53C2\u6570
RegisterWizardPage.httpProxyHost=HTTP \u4EE3\u7406\u4E3B\u673A\u5730\u5740
RegisterWizardPage.httpProxyPort=Http \u4EE3\u7406\u4E3B\u673A\u7AEF\u53E3
RegisterWizardPage.invalidPort=\u7AEF\u53E3\u987B\u4E3A\u6B63\u6574\u6570
RegisterWizardPage.legalinfos=\u63D0\u4EA4\u8FD9\u4E9B\u4FE1\u606F\uFF0C\u6211\u540C\u610F{0}\u53EF\u4EE5\u968F\u65F6\u5229\u7528email\u53D1\u9001\u7ED9\u6211\n\u5173\u4E8E{0}\u4EA7\u54C1\u548C\u670D\u52A1\u7684\u4FE1\u606F\u3002\u5728\u4EFB\u4F55\u65F6\u5019\n\u53D1email\u5230unsubscribe@talend.com\u6216\u5E94\u7528\u9644\u5728\u90AE\u4EF6\u4E0A\u7684\u8FDE\u63A5\uFF0C\u6211\u5C06\u4F1A\u5728\u8FD9\u4E9B\u4FE1\u606F\u4E2D\u9009\u62E9\u51FA\u6765\u3002\n\n{0}\u5C0A\u91CD\u4F60\u7684\u9690\u79C1\u4E14\u4E0D\u8981\u53D1\u9001\u8FD9\u4E9B\u4FE1\u606F\u7ED9\u7684\u4E09\u65B9\u3002
RegisterWizardPage.legalinfos=\u901A\u8FC7\u63D0\u4EA4\u8FD9\u4E9B\u4FE1\u606F\uFF0C\u6211\u540C\u610F {0} \u53EF\u80FD\u4F1A\u4E0D\u65F6\u5411\u6211\u53D1\u9001\n\u6709\u5173 {0} \u7684\u4EA7\u54C1\u548C\u670D\u52A1\u7684\u7535\u5B50\u90AE\u4EF6\u901A\u4FE1\u3002\u6211\u5C06\u80FD\u591F\u968F\u65F6\u901A\u8FC7\u53D1\u9001\u7535\u5B50\u90AE\u4EF6\n\u81F3 unsubscribe@talend.com \u6216\u6309\u7167\u7535\u5B50\u90AE\u4EF6\u4E2D\u63D0\u4F9B\u7684\u8FDE\u63A5\u9000\u51FA\u8FD9\u4E9B\u901A\u4FE1\u3002 \n\n {0} \u5C0A\u91CD\u60A8\u7684\u9690\u79C1\uFF0C\u4E14\u4E0D\u4F1A\u5C06\u6B64\u4FE1\u606F\u4F20\u8FBE\u7ED9\u7B2C\u4E09\u65B9\u3002
RegisterWizardPage.proxyGroup=\u4EE3\u7406\u53C2\u6570
RegisterWizardPage.serverCommunicationProblem=\u4E0E\u6211\u4EEC\u7684\u6CE8\u518C\u670D\u52A1\u5668\u5EFA\u7ACB\u8FDE\u63A5\u65F6\u51FA\u73B0\u95EE\u9898\u3002\n\u9A8C\u8BC1\u60A8\u7684\u4E92\u8054\u7F51\u8FDE\u63A5\uFF0C\u6216\u5728\u4E0B\u6B21\u767B\u5F55\u65F6\u91CD\u8BD5\u3002
RegisterWizardPage.title=\u6CE8\u518C
RegisterWizardPage.legalinformations=\u6BCF\u5929\u90FD\u6709\u6570\u5343\u4EBA\u53C2\u4E0E\u6539\u8FDB {0} \u7684\u89E3\u51B3\u65B9\u6848\u3002\n\u5728\u4ED6\u4EEC\u7684\u5E2E\u52A9\u4E4B\u4E0B\uFF0C {0}\u4EA7\u54C1\u4EE5\u60CA\u4EBA\u7684\u901F\u5EA6\u53D1\u5C55\u6F14\u53D8\uFF0C\n\u5C55\u73B0\u51FA\u6781\u9AD8\u6C34\u5E73\u7684\u8D28\u91CF\u548C\u6027\u80FD\u3002\n\n\u6700\u91CD\u8981\u7684\u662F\uFF0C\u6BCF\u4E2A\u4EBA\u90FD\u80FD\u4ECE\u4E2D\u53D7\u76CA...\u514D\u8D39\uFF01 \u5B83\u91C7\u7528 \nnquintenssential \u5F00\u6E90\u6A21\u578B\uFF01\n\n\u521B\u5EFA\u60A8\u81EA\u5DF1\u7684\u793E\u533A\u4E2A\u4EBA\u8D44\u6599\u5E76\u52A0\u5165\u6211\u4EEC\u7684\u793E\u533A\uFF1A\u901A\u8FC7\u8BBA\u575B\u83B7\u5F97\n\u7B54\u6848\u3001\u5E2E\u52A9\u5176\u4ED6\u7528\u6237\u3001\u4E0B\u8F7D\u65B0\u7684\n\u7EC4\u4EF6...
RegisterWizardPage.legalinformations=\u6BCF\u5929\u90FD\u6709\u6570\u5343\u4EBA\u53C2\u4E0E\u6539\u8FDB {0} \u7684\u89E3\u51B3\u65B9\u6848\u3002\n\u5728\u4ED6\u4EEC\u7684\u5E2E\u52A9\u4E4B\u4E0B\uFF0C{0} \u4EA7\u54C1\u4EE5\u60CA\u4EBA\u7684\u901F\u5EA6\u53D1\u5C55\u6F14\u53D8\uFF0C\nn\u5C55\u73B0\u51FA\u6781\u9AD8\u6C34\u5E73\u7684\u8D28\u91CF\u548C\u6027\u80FD\u3002 \n\n\u6700\u5927\u7684\u597D\u5904\uFF1F\u6BCF\u4E2A\u4EBA\u90FD\u80FD\u4ECE\u4E2D\u53D7\u76CA...\u514D\u8D39\uFF01 \u5B83\u91C7\u7528 \nquintenssential \u5F00\u6E90\u6A21\u578B\uFF01 \n\n\u521B\u5EFA\u60A8\u81EA\u5DF1\u7684\u793E\u533A\u4E2A\u4EBA\u8D44\u6599\u5E76\u52A0\u5165\u6211\u4EEC\u7684\u793E\u533A\uFF1A\n\u901A\u8FC7\u8BBA\u575B\u83B7\u5F97\u7B54\u6848\u3001\u5E2E\u52A9\u5176\u4ED6\u7528\u6237\u3001\u4E0B\u8F7D\u65B0\u7684\n\u7EC4\u4EF6...
RegisterWizardPage.legalbottominformations=\u5982\u679C\u5DF2\u7ECF\u6CE8\u518C\u8FC7\uFF0C\u53EA\u9700\u8F93\u5165\u60A8\u7684\u6B63\u5E38\u8FDE\u63A5\u4FE1\u606F\u3002\u8FD9\u5C06\u5141\u8BB8\u60A8\n\u76F4\u63A5\u4ECE Studio \u8FDE\u63A5\u3002
RegisterWizardPage.logininfosPage2Yes1=\u60A8\u7684\u767B\u5F55\u4FE1\u606F\u5DF2\u8BB0\u5F55\u5728\u6211\u4EEC\u7684\u793E\u533A\u6570\u636E\u5E93\u4E2D\uFF01
RegisterWizardPage.logininfosPage2Yes2=\u8BF7\u586B\u5199\u60A8\u7684\u4E2A\u4EBA\u8D44\u6599...\n\u5982\u679C\u60A8\u5BF9\u6BCF\u4E2A\u5E94\u7528\u7A0B\u5E8F (\u8BBA\u575B\u3001Bugtracker\u3001\nExchange...) \u4F7F\u7528\u4E0D\u540C\u7684\u5BC6\u7801\uFF0C\u5219\u5728\u4E0B\u65B9\u8F93\u5165\u7684\u5BC6\u7801\u5C06\u6210\u4E3A\u60A8\u7684\u6807\u51C6\n\u5BC6\u7801\u3002

View File

@@ -1,6 +1,6 @@
ImportItemsWizardPage_importDescription=Importer les \u00E9l\u00E9ments depuis un r\u00E9pertoire ou un fichier archive.
ImportItemsWizardPage_browseText=Parcourir...
ImportItemsWizardPage_deselectAllButtonText=D\u00E9s\u00E9lectionner tout
ImportItemsWizardPage_deselectAllButtonText=Tout d\u00E9s\u00E9lectionner
ImportItemsWizardPage_fromExchangeText=Depuis Exchange
ImportItemsWizardPage_fromExchangeToolTipText=Parcourir depuis Talend Exchange.
ImportItemsWizardPage_messagesText=Erreurs et avertissements

View File

@@ -20,7 +20,7 @@ ImportItemsWizardPage_noSelectedItemsMessages=\u6CA1\u6709\u9009\u5B9A\u9879\u76
ImportItemsWizardPage_searchingMessage=\u6B63\u5728\u641C\u7D22\u5DE5\u7A0B
ImportItemsWizardPage_errorTitle=\u9519\u8BEF
ImportItemsWizardPage_couldNotRead=\u6E90\u6587\u4EF6\u65E0\u6CD5\u8BFB\u53D6\u3002
ImportItemsWizardPage_sameIdProblemMessage=\u4EE5\u4E0B\u4E24\u9879\u5177\u6709\u76F8\u540C\u7684 ID\uFF0C\u8BF7\u53D6\u6D88\u9009\u62E9\u5176\u4E2D\u4E00\u9879: \n [{0}] [{1}]
ImportItemsWizardPage_sameIdProblemMessage=\u4EE5\u4E0B\u4E24\u9879\u5177\u6709\u76F8\u540C\u7684 ID\uFF0C\u8BF7\u53D6\u6D88\u9009\u62E9\u5176\u4E2D\u4E00\u9879\uFF1A \n [{0}] [{1}]
ImportItemsWizardPage_TarImport_badFormat=\u6E90\u6587\u4EF6\u4E0D\u662F\u6709\u6548\u7684 tar \u6587\u4EF6\u3002
ImportItemsWizardPage_ZipImport_badFormat=\u6E90\u6587\u4EF6\u4E0D\u662F\u6709\u6548\u7684 Zip \u6587\u4EF6\u3002
ImportItemsWizardPage_ErrorsMessage=\u5B58\u5728\u5177\u6709\u4E0D\u540C\u7248\u672C {1} \u7684\u9879\u76EE {0}\u3002\u68C0\u67E5\u56DE\u6536\u7AD9\u5E76\u6839\u636E\u9700\u8981\u5C06\u5176\u6E05\u7A7A\u3002

View File

@@ -10,8 +10,8 @@ LocalRepositoryFactory.Property_File_Broken=Le fichier de propri\u00E9t\u00E9s {
LocalRepositoryFactory.logonDenyMsg=La version du produit est expir\u00E9e.\nInstallez d'abord [{0}].
LocalRepositoryFactory.productionLower01=La version du Studio et du projet doivent correspondre. \nVous devez installer le Studio [{0}] pour pouvoir ouvrir le projet.
LocalRepositoryFactory.productionLower02=La version du Studio et du projet doivent correspondre. \nVous devez installer le patch du Studio [{0}] pour pouvoir ouvrir le projet.
LocalRepositoryFactory.productionNewer01=Vous allez mettre \u00E0 niveau vers [{1}].\nUne fois que cette nouvelle version est appliqu\u00E9e, vous ne pourrez plus ouvrir le projet dans une version ant\u00E9rieure du Studio.\nSouhaitez-vous migrer votre projet\u00A0?
LocalRepositoryFactory.productionNewer02=Vous allez mettre \u00E0 niveau vers [{1}].\nUne fois que cette nouvelle version est appliqu\u00E9e, vous ne pourrez plus ouvrir le projet dans une version ant\u00E9rieure du Studio.\nSouhaitez-vous migrer votre projet\u00A0? \nNotez que la version courante utilis\u00E9e dans le projet est [{0}].
LocalRepositoryFactory.productionNewer01=Vous allez mettre \u00E0 niveau vers [{1}].\nUne fois cette nouvelle version appliqu\u00E9e, vous ne pourrez plus ouvrir le projet dans une version ant\u00E9rieure du Studio.\nSouhaitez-vous migrer votre projet\u00A0?
LocalRepositoryFactory.productionNewer02=Vous allez mettre \u00E0 niveau vers [{1}].\nUne fois cette nouvelle version appliqu\u00E9e, vous ne pourrez plus ouvrir le projet dans une version ant\u00E9rieure du Studio.\nSouhaitez-vous migrer votre projet\u00A0? \nNotez que la version courante utilis\u00E9e dans le projet est [{0}].
LocalRepositoryFactory.logonWarningTitle=Informations de connexion
LocalRepositoryFactory.login.userCancel=Connexion annul\u00E9e par l'utilisateur

View File

@@ -7,11 +7,11 @@ LocalRepositoryFactory.logRetrievingFiles=\u83B7\u53D6\u6587\u4EF6 {0} \u8017\u6
LocalRepositoryFactory.CannotLoadProperty=\u65E0\u6CD5\u52A0\u8F7D\u5B58\u50A8\u5E93\u672C\u5730\u63D0\u4F9B\u7A0B\u5E8F
LocalRepositoryFactory.UserLoginCannotBeNull=\u7528\u6237\u767B\u5F55\u540D\u4E0D\u80FD\u4E3A null
LocalRepositoryFactory.Property_File_Broken=\u5C5E\u6027\u6587\u4EF6{0}\u5DF2\u635F\u574F\u3002
LocalRepositoryFactory.logonDenyMsg=\u4EA7\u54C1\u7248\u672C\u8FC7\u671F\u3002\n\u8BF7\u5148\u5B89\u88C5 [{0}]!
LocalRepositoryFactory.productionLower01=Studio \u4E0E\u5DE5\u7A0B\u7684\u7248\u672C\u5FC5\u987B\u5339\u914D\u3002\n\u60A8\u9700\u8981\u5B89\u88C5 Studio [{0}] \u624D\u80FD\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002
LocalRepositoryFactory.productionLower02=Studio \u4E0E\u5DE5\u7A0B\u7684\u7248\u672C\u5FC5\u987B\u5339\u914D\u3002\n\u60A8\u9700\u8981\u5B89\u88C5 Studio \u8865\u4E01 [{0}] \u624D\u80FD\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002
LocalRepositoryFactory.logonDenyMsg=\u4EA7\u54C1\u7248\u672C\u8FC7\u671F\u3002\n\u8BF7\u5148\u5B89\u88C5 [{0}] !
LocalRepositoryFactory.productionLower01=Studio \u4E0E\u5DE5\u7A0B\u7684\u7248\u672C\u5FC5\u987B\u5339\u914D\u3002 \n\u60A8\u9700\u8981\u5B89\u88C5 Studio [{0}] \u624D\u80FD\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002
LocalRepositoryFactory.productionLower02=Studio \u4E0E\u5DE5\u7A0B\u7684\u7248\u672C\u5FC5\u987B\u5339\u914D\u3002 \n\u60A8\u9700\u8981\u5B89\u88C5 Studio \u66F4\u65B0\u8865\u4E01 [{0}] \u624D\u80FD\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002
LocalRepositoryFactory.productionNewer01=\u5373\u5C06\u5347\u7EA7\u5230 [{1}]\u3002\n\u65B0\u7684\u7248\u672C\u751F\u6548\u540E\uFF0C\u60A8\u5C06\u65E0\u6CD5\u5728\u66F4\u4F4E\u7248\u672C\u7684 Studio \u4E2D\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002\n\u786E\u5B9A\u8FC1\u79FB\u60A8\u7684\u5DE5\u7A0B\u5417\uFF1F
LocalRepositoryFactory.productionNewer02=\u5373\u5C06\u5347\u7EA7\u5230 [{1}]\u3002\n\u65B0\u7684\u7248\u672C\u751F\u6548\u540E\uFF0C\u60A8\u5C06\u65E0\u6CD5\u5728\u66F4\u4F4E\u7248\u672C\u7684 Studio \u4E2D\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002\n\u786E\u5B9A\u8FC1\u79FB\u60A8\u7684\u5DE5\u7A0B\u5417\uFF1F\n\u6CE8\u610F\uFF0C\u6B64\u5DE5\u7A0B\u7684\u5F53\u524D\u5DE5\u7A0B\u7248\u672C\u4E3A [{0}]\u3002
LocalRepositoryFactory.productionNewer02=\u5373\u5C06\u5347\u7EA7\u5230 [{1}]\u3002\n\u65B0\u7684\u7248\u672C\u751F\u6548\u540E\uFF0C\u60A8\u5C06\u65E0\u6CD5\u5728\u66F4\u4F4E\u7248\u672C\u7684 Studio \u4E2D\u6253\u5F00\u6B64\u5DE5\u7A0B\u3002\n\u786E\u5B9A\u8FC1\u79FB\u60A8\u7684\u5DE5\u7A0B\u5417\uFF1F \n\u6CE8\u610F\uFF0C\u6B64\u5DE5\u7A0B\u5F53\u524D\u4F7F\u7528\u7684\u7248\u672C\u4E3A [{0}]\u3002
LocalRepositoryFactory.logonWarningTitle=\u767B\u5F55\u4FE1\u606F
LocalRepositoryFactory.login.userCancel=\u767B\u5F55\u88AB\u7528\u6237\u53D6\u6D88

View File

@@ -3406,10 +3406,9 @@ public class LocalRepositoryFactory extends AbstractEMFRepositoryFactory impleme
if (p2Service != null) {
String profKey = p2Service.getProfileIdForProject(project.getTechnicalLabel(), false);
p2Service.setProfileKey(profKey);
IProgressMonitor subMonitor = SubMonitor.convert(monitor);
Project localProject = getRepositoryContext().getProject();
boolean doUpgrade = p2Service.checkProjectCompatibility(subMonitor, localProject);
int adaptResult = p2Service.adaptFeaturesForProject(subMonitor, project);
boolean doUpgrade = p2Service.checkProjectCompatibility(monitor, localProject);
int adaptResult = p2Service.adaptFeaturesForProject(monitor, project);
if (IStudioLiteP2Service.RESULT_DONE == adaptResult) {
// when switch product,need to set --disableLoginDialog to avoid pop up logindialog
EclipseCommandLine.updateOrCreateExitDataPropertyWithCommand(

View File

@@ -87,7 +87,7 @@ MdmReceiveForm.fileViewerAlert=\u663E\u793A\u6570\u636E\u6587\u4EF6\u9700\u8BBE\
MdmReceiveForm.filePathIncomplete=\u5FC5\u987B\u6307\u5B9A\u6587\u4EF6\u8DEF\u5F84
MdmReceiveForm.settingsIncomplete=\u5FC5\u987B\u5B8C\u6210\u8BBE\u7F6E\u624D\u80FD\u663E\u793A\u9884\u89C8
MdmReceiveForm.previewProgress=\u9884\u89C8\u8FDB\u884C\u4E2D...
MdmReceiveForm.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
MdmReceiveForm.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
MdmReceiveForm.mustBePrecised=\u5FC5\u987B\u6307\u5B9A
MdmReceiveForm.wait=\u7B49\u5F85
MdmReceiveForm.noresult=\u8FD9\u4E9B\u8BBE\u7F6E\u6CA1\u6709\u7ED3\u679C

View File

@@ -978,8 +978,11 @@ DatabaseForm.genaralJDBC.mappingFileAlert=Mapping File must be specified
DatabaseForm.hc.link.none=None
DatabaseForm.hc.link.repository=Repository
DatabaseForm.hc.link.title=Hadoop Cluster
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=en&env=prd
DatabaseForm.helpInfo.installDriverLink.label=How to install a driver
DatabaseForm.redshift.driverVersion=Driver version
DatabaseForm.redshift.driverVersion.tip=Select a Redshift driver
DatabaseForm.redshift.useStringAdditionParam=Use string parameter
DatabaseTableFilterForm.allSynonyms=All synonyms
DatabaseTableFilterForm.edit=Edit...
DatabaseTableFilterForm.editFilterName=Edit Filter Name

View File

@@ -486,7 +486,7 @@ TalendForgeDialog.labelMessageOne=T\u00E9l\u00E9charger de nouveaux composants e
TalendForgeDialog.labelMessageTwo=Acc\u00E9der \u00E0 la documentation et aux articles techniques les plus r\u00E9cents depuis \nla base de connaissances Talend.
TalendForgeDialog.labelMessageThree=Consulter les derniers messages des forums de discussion Talend
TalendForgeDialog.createLabel=Cr\u00E9er un compte
TalendForgeDialog.userNameLabel=Utilisateur\u00A0:
TalendForgeDialog.userNameLabel=Identifiant\u00A0:
TalendForgeDialog.emailLabel=Adresse e-mail :
TalendForgeDialog.countryLabel=Pays :
TalendForgeDialog.link=(ou connectez-vous avec un compte existant)\u00A0:
@@ -605,11 +605,11 @@ SelectDatabaseJarDialog.delete=Supprimer
SelectDatabaseJarDialog.title=S\u00E9lectionner les JAR des pilotes de la base de donn\u00E9es
SelectDatabaseJarDialog.warningMessage=Le JAR existe d\u00E9j\u00E0.
SelectDatabaseJarDialog.warningTitle=Avertissement
SelectDeleteProjectDialog.DeselectAll=D\u00E9s\u00E9lectionner tout
SelectDeleteProjectDialog.DeselectAll=Tout d\u00E9s\u00E9lectionner
SelectDeleteProjectDialog.Label=Supprimer le projet
SelectDeleteProjectDialog.SelectAll=Tout s\u00E9lectionner
SelectDeleteProjectDialog.Title=S\u00E9lectionner un projet
SelectDeleteProjectDialog.deleteWarning=Ne supprime pas physiquement les projets
SelectDeleteProjectDialog.deleteWarning=Ne pas supprimer physiquement les projets
SelectorTableForm.ColumnNumber=Nombre de colonnes
SelectorTableForm.CreationStatus=Statut de la cr\u00E9ation
SelectorTableForm.Pending=En attente
@@ -641,8 +641,8 @@ VersionAuthorSection.versionLabel=Version
VersionManagementDialog.ConfirmMessage=\u00CAtes-vous s\u00FBr(e) de vouloir mettre \u00E0 jour tous les \u00E9l\u00E9ments s\u00E9lectionn\u00E9s en version {0}
VersionManagementDialog.ConfirmTitle=Confirmer
VersionManagementDialog.DeletedTip=supprimer
VersionManagementDialog.EachVersion=Mettre \u00E0 jour la version de chaque \u00E9l\u00E9ment.
VersionManagementDialog.FixedVersion=Changer tous les \u00E9l\u00E9ments vers une version fix\u00E9e.
VersionManagementDialog.EachVersion=Mettre \u00E0 jour la version de chaque \u00E9l\u00E9ment
VersionManagementDialog.FixedVersion=Passer tous les \u00E9l\u00E9ments \u00E0 la version sp\u00E9cifi\u00E9e
VersionManagementDialog.Items=\u00C9l\u00E9ments
VersionManagementDialog.MajorVersionTip=Version majeure
VersionManagementDialog.MinorVersionTip=Version mineure
@@ -657,7 +657,7 @@ VersionManagementDialog.WarningMessages=Pas de modification pour cette version d
VersionManagementDialog.WarningTitle=Pas de modification
VersionManagementDialog.AllDependencies=S\u00E9lectionner toutes les d\u00E9pendances
VersionManagementDialog.Subjob=S\u00E9lectionner tous les sous-Jobs
VersionManagementDialog.FixVersion=Remplacer les versions de tRunJob par la derni\u00E8re
VersionManagementDialog.FixVersion=Remplacer les versions du tRunJob par la derni\u00E8re
VersionManagementDialog.FixLastVersion=Lors de la mise \u00E0 jour, si tous les tRunJob sont install\u00E9s par d\u00E9faut avec la derni\u00E8re version, cela remplacera la version par la pr\u00E9c\u00E9dente.\nPar exemple : parent 1.0 (tRunJob<enfant, Derni\u00E8re version>).\nEn cas de mise \u00E0 jour en version 1.1 : \n - la version parent 1.0 contiendra : (tRunJob<enfant, 1.0>). Pour ex\u00E9cuter l'enfant avec la version 1.0 \u00E9galement.\n - la version parent 1.1 contiendra : (tRunJob<enfant, Derni\u00E8re version>). Pour continuer \u00E0 utiliser la derni\u00E8re version.\n\nRemarque : il n'y aura aucun effet si la version est d\u00E9j\u00E0 r\u00E9par\u00E9e et si la derni\u00E8re version n'est pas utilis\u00E9e.
XPathProposalProvider.contentProposal=<< Trop de n\u0153uds, la liste de valeurs propos\u00E9es est peut \u00EAtre incompl\u00E8te... >>
XmlFileStep1.groupSchemaTarget=Sch\u00E9ma cible
@@ -978,7 +978,7 @@ DatabaseForm.genaralJDBC.mappingFileAlert=Le fichier de mapping doit \u00EAtre s
DatabaseForm.hc.link.none=Aucun
DatabaseForm.hc.link.repository=R\u00E9f\u00E9rentiel
DatabaseForm.hc.link.title=Cluster Hadoop
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=fr&env=prd
DatabaseForm.helpInfo.installDriverLink.label=Installer un pilote
DatabaseTableFilterForm.allSynonyms=Tous les synonymes
DatabaseTableFilterForm.edit=Modifier...

View File

@@ -45,9 +45,9 @@ CreateConnectionAction.action.openTitle=\u63A5\u7D9A\u3092\u958B\u304F
CreateContextAction.createContext=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u3092\u4F5C\u6210
CreateDocumentationAction.createDocActionText.addDoc=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u8FFD\u52A0
CreateDocumentationAction.createDocActionTipText.addDocItem=\u65B0\u898F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u30A2\u30A4\u30C6\u30E0\u3092\u8FFD\u52A0
CreateFileDelimitedAction.action.createTitle=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210
CreateFileDelimitedAction.action.editTitle=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
CreateFileDelimitedAction.action.openTitle=\u533A\u5207\u308A\u8A18\u53F7\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F
CreateFileDelimitedAction.action.createTitle=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210
CreateFileDelimitedAction.action.editTitle=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
CreateFileDelimitedAction.action.openTitle=\u533A\u5207\u308A\u4ED8\u304D\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F
CreateFileExcelAction.action.createTitle=Excel\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210
CreateFileExcelAction.action.editTitle=Excel\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96C6
CreateFileExcelAction.action.openTitle=Excel\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F
@@ -219,7 +219,7 @@ FileStep1.serverAlert=\u30B5\u30FC\u30D0\u30FC\u3092\u6307\u5B9A\u3057\u3066\u30
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
@@ -232,10 +232,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
@@ -263,12 +263,12 @@ 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
@@ -978,7 +978,7 @@ DatabaseForm.genaralJDBC.mappingFileAlert=\u30DE\u30C3\u30D4\u30F3\u30B0\u30D5\u
DatabaseForm.hc.link.none=\u306A\u3057
DatabaseForm.hc.link.repository=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC
DatabaseForm.hc.link.title=Hadoop\u30AF\u30E9\u30B9\u30BF
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=ja&env=prd
DatabaseForm.helpInfo.installDriverLink.label=\u30C9\u30E9\u30A4\u30D0\u30FC\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B\u65B9\u6CD5
DatabaseTableFilterForm.allSynonyms=\u3059\u3079\u3066\u306E\u30B7\u30CE\u30CB\u30E0
DatabaseTableFilterForm.edit=\u7DE8\u96C6...
@@ -1028,8 +1028,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
ExcelFileStep1Form.fileSetting=\u30D5\u30A1\u30A4\u30EB\u30D3\u30E5\u30FC\u30A2\u30FC\u3068\u30B7\u30FC\u30C8\u8A2D\u5B9A
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
@@ -1042,7 +1042,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
FileStep1.modeButText=Excel2007\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F(xlsx)\u3092\u8AAD\u307F\u8FBC\u3080

View File

@@ -115,7 +115,7 @@ CreateWSDLSchemaAction.openWSDL=\u6253\u5F00 WSDL schema
DatabaseForm.general.jarfile=\u9A71\u52A8 JAR
DatabaseForm.selectJar=\u9009\u62E9 jar \u6587\u4EF6
DatabaseForm.checkFileExist=\u6587\u4EF6 {0} \u65E0\u6548\u6216\u4E0D\u5B58\u5728
DatabaseTableForm.checkDefaultValue=\u83B7\u53D6\u7684\u8868\u5177\u6709\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u7684\u9ED8\u8BA4\u503C\u3002\n\u5982\u679C\u60A8\u7A0D\u540E\u91CD\u65B0\u4F7F\u7528\u6B64\u503C\uFF0C\u8BF7\u9A8C\u8BC1\u5185\u5BB9\u3002\nString\u503C\u5FC5\u987B\u4E3A\u5355\u5F15\u53F7\uFF0C\u6574\u6570\u6216\u4E0D\u9700\u8981\u53C2\u6570\u7684\u51FD\u6570\u3002
DatabaseTableForm.checkDefaultValue=\u83B7\u53D6\u7684\u8868\u5177\u6709\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u7684\u9ED8\u8BA4\u503C\u3002\n\u5982\u679C\u60A8\u7A0D\u540E\u91CD\u65B0\u4F7F\u7528\u6B64\u503C\uFF0C\u8BF7\u9A8C\u8BC1\u5185\u5BB9\u3002\n\u5B57\u4E32\u7684\u503C\u5FC5\u987B\u7528\u5355\u5F15\u53F7\u6269\u4E0A\uFF0C\u6574\u6570\u6216\u51FD\u6570\u65E0\u9700\u4F7F\u7528\u5F15\u53F7\u3002
DatabaseTableForm.AddTable=\u6DFB\u52A0 Schema
DatabaseTableForm.checkConnection=\u68C0\u67E5\u8FDE\u63A5
DatabaseTableForm.comment=\u6CE8\u91CA
@@ -134,7 +134,7 @@ DatabaseTableForm.retreiveSchema=\u83B7\u53D6 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\u4EFB\u610F\u8868\u5B58\u5728\uFF1A"\u83B7\u53D6 Schema" \u88AB\u7981\u7528\u3002\n\u4F7F\u7528 SGBD \u521B\u5EFA\u4E00\u4E2A\u8868\u5E76\u70B9\u6309 "\u68C0\u67E5\u8FDE\u63A5" \u8FDB\u884C\u6062\u590D\u3002
DatabaseTableForm.tableNoExist=\u6570\u636E\u5E93\u8FDE\u63A5\u6210\u529F\u4F46\u8868\u4E0D\u5B58\u5728\uFF1A"\u83B7\u53D6 Schema" \u88AB\u7981\u7528\u3002\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\uFF0C\u5E76\u4F7F\u7528\u83B7\u53D6\u6309\u94AE\u6216\u624B\u52A8\u5B9A\u4E49 Schema\u3002
DateSection.ModificationLabel=\u4FEE\u6539
DateSection.commitLabel=\u63D0\u4EA4
@@ -255,7 +255,7 @@ FileStep2.limitTip=\u9650\u5236
FileStep2.mustBePrecised=\u5FC5\u987B\u6307\u5B9A
FileStep2.noresult=\u5F53\u524D\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.quoteDelimitedTip=\u6CA1\u6709\u8F6C\u79FB\u5B57\u7B26\u7684\u60C5\u51B5\u4E0B\uFF0C\u60A8\u4E0D\u80FD\u4F7F\u7528\u5B57\u7B26 "\u3002\u4F7F\u7528 "
@@ -463,7 +463,7 @@ LoginComposite.sharedRepositoryMessage=\u9700\u8981\u5171\u4EAB\u5B58\u50A8\u5E9
LoginComposite.Workspace_inuse=\u5DE5\u4F5C\u533A\u6B63\u5728\u4F7F\u7528\u4E2D\uFF0C\u8BF7\u9009\u62E9\u53E6\u4E00\u4E2A\u3002
LoginComposite.TisWorkspace_welcome=\u6B22\u8FCE\u4F7F\u7528 {0}\uFF01
LoginComposite.welcomeTitle=\u6B22\u8FCE\u4F7F\u7528 Talend Open Studio
LoginComposite.detailMessage=\u5728\u5F00\u59CB\u4F7F\u7528 Talend \u4E4B\u524D\uFF0C\u60A8\u9700\u8981\u521B\u5EFA\u4E00\u4E2A\u5DE5\u7A0B\u3002\n\u60A8\u53EF\u4EE5\u4ECE\u5305\u542B\u6709\u7528\u793A\u4F8B\u7684\u6F14\u793A\u5DE5\u7A0B\u5F00\u59CB\uFF0C\u6216\u8005 \n \u521B\u5EFA\u60A8\u81EA\u5DF1\u7684\u7A7A\u5DE5\u7A0B\u3002
LoginComposite.detailMessage=\u5728\u5F00\u59CB\u4F7F\u7528 Talend \u4E4B\u524D\uFF0C\u60A8\u9700\u8981\u521B\u5EFA\u4E00\u4E2A\u5DE5\u7A0B\u3002 \n\u60A8\u53EF\u4EE5\u4ECE\u5305\u542B\u6709\u7528\u793A\u4F8B\u7684\u6F14\u793A\u5DE5\u7A0B\u5F00\u59CB\uFF0C\u6216\u8005 \n\u521B\u5EFA\u60A8\u81EA\u5DF1\u7684\u7A7A\u5DE5\u7A0B\u3002
LoginComposite.selectADemoProject=\u9009\u62E9\u4E00\u4E2A\u6F14\u793A\u5DE5\u7A0B
LoginComposite.projectTitleTemp=\u521B\u5EFA\u4E00\u4E2A\u65B0\u5DE5\u7A0B
LoginComposite.buttons.advanced=\u9AD8\u7EA7...
@@ -483,7 +483,7 @@ TOSLoginComposite.changeButton=\u66F4\u6539
TalendForgeDialog.newProjectTitle=\u8FDE\u63A5\u5230 TalendForge
TalendForgeDialog.labelTitle=\u5C06\u60A8\u7684 Studio \u8FDE\u63A5\u5230 TalendForge\uFF0C\u5373 Talend \u5728\u7EBF\u793E\u533A\u3002
TalendForgeDialog.labelMessageOne=\u4ECE Talend Exchange \u4E0B\u8F7D\u65B0\u7EC4\u4EF6\u548C\u8FDE\u63A5\u5668
TalendForgeDialog.labelMessageTwo=\u8BBF\u95EE Talend \u793E\u4EA4\u77E5\u8BC6\u5E93\u4E2D\u7684 \n\u6700\u65B0\u6587\u6863\u548C\u6280\u672F\u6587\u7AE0\u3002
TalendForgeDialog.labelMessageTwo=\u5982\u9700\u6700\u65B0\u6587\u6863\u548C\u6280\u672F\u6587\u7AE0\uFF0C\u8BF7\u8BBF\u95EE \nTalend \u77E5\u8BC6\u5E93\u3002
TalendForgeDialog.labelMessageThree=\u67E5\u770B Talend \u8BA8\u8BBA\u8BBA\u575B\u4E2D\u7684\u6700\u65B0\u6D88\u606F
TalendForgeDialog.createLabel=\u521B\u5EFA\u4E00\u4E2A\u5E10\u6237
TalendForgeDialog.userNameLabel=\u7528\u6237\u540D:
@@ -658,7 +658,7 @@ VersionManagementDialog.WarningTitle=\u6CA1\u6709\u4FEE\u6539
VersionManagementDialog.AllDependencies=\u9009\u62E9\u5168\u90E8\u4F9D\u8D56\u5173\u7CFB
VersionManagementDialog.Subjob=\u9009\u62E9\u5168\u90E8\u5B50\u4F5C\u4E1A
VersionManagementDialog.FixVersion=\u5982\u679C\u6700\u65B0\uFF0C\u5219\u4FEE\u6B63 tRunJob \u7248\u672C
VersionManagementDialog.FixLastVersion=\u66F4\u65B0\u7248\u672C\u65F6\uFF0C\u5982\u679C\u6240\u6709\u7684 tRunJob \u9ED8\u8BA4\u8BBE\u7F6E\u4E3A\u201C\u6700\u65B0\u201D\uFF0C\u6B64\u9009\u9879\u5C06\u7248\u672C\u6307\u5411\u4E0A\u4E00\u4E2A\u7248\u672C\u3002\n\u4F8B\u5982: \u7236\u4F5C\u4E1A 1.0 (tRunJob<\u5B50\u4F5C\u4E1A, \u6700\u65B0>)\u3002\n\u5982\u679C\u5347\u7EA7\u5230 1.1: \n - \u7236\u4F5C\u4E1A\u7248\u672C 1.0 \u5C06\u5305\u542B: (tRunJob<\u5B50\u4F5C\u4E1A, 1.0>)\uFF0C\u5E76\u4F1A\u8FD0\u884C\u5B50\u4F5C\u4E1A 1.0\u3002\n - \u7236\u4F5C\u4E1A\u7248\u672C 1.1 \u5C06\u5305\u542B: (tRunJob<\u5B50\u4F5C\u4E1A, \u6700\u65B0>). \u7EE7\u7EED\u4F7F\u7528\u6700\u65B0\u7248\u672C\u3002\n\n\u6CE8: \u5982\u679C\u7248\u672C\u5DF2\u7ECF\u56FA\u5B9A\u5E76\u4E14\u4E0D\u4F7F\u7528\u201C\u6700\u65B0\u201D\uFF0C\u5219\u6B64\u9009\u9879\u65E0\u4F5C\u7528\u3002
VersionManagementDialog.FixLastVersion=\u66F4\u65B0\u7248\u672C\u65F6\uFF0C\u5982\u679C\u6240\u6709\u7684 tRunJob \u9ED8\u8BA4\u8BBE\u7F6E\u4E3A \u201C\u6700\u65B0\u201D\uFF0C\u6B64\u9009\u9879\u5C06\u7248\u672C\u6307\u5411\u4E0A\u4E00\u4E2A\u7248\u672C\u3002\n\u4F8B\u5982: \u7236\u4F5C\u4E1A 1.0 (tRunJob<\u5B50\u4F5C\u4E1A, \u6700\u65B0>)\u3002\n\u5982\u679C\u5347\u7EA7\u5230 1.1 \u7248\u672C\uFF1A \n - \u7236\u4F5C\u4E1A\u7248\u672C 1.0 \u5C06\u5305\u542B: (tRunJob<\u5B50\u4F5C\u4E1A, 1.0>)\uFF0C\u5E76\u4F1A\u8FD0\u884C\u5B50\u4F5C\u4E1A 1.0\u3002\n - \u7236\u7248\u672C 1.1 \u5C06\u5305\u542B\uFF1A(tRunJob<child, Latest>)\uFF0C\u4EE5\u4FBF\u4FDD\u6301\u4F7F\u7528\u6700\u65B0\u7248\u672C\u3002\n\n\u6CE8\u610F\uFF1A\u5982\u679C\u7248\u672C\u5DF2\u7ECF\u56FA\u5B9A\uFF0C\u5E76\u4E14\u6CA1\u6709\u4F7F\u7528\u6700\u65B0\u7248\u672C\uFF0C\u5219\u4E0D\u4F1A\u6267\u884C\u4EFB\u4F55\u64CD\u4F5C\u3002
XPathProposalProvider.contentProposal=<< \u8282\u70B9\u592A\u591A\uFF0C\u5EFA\u8BAE\u503C\u53EF\u80FD\u4E0D\u5B8C\u6574 ... >>
XmlFileStep1.groupSchemaTarget=\u76EE\u6807 Schema
XmlFileStep1.sourceSchema=\u6E90 Schema
@@ -715,7 +715,7 @@ ImportItemUtil.taskLogWarn=\u5DE5\u7A0B\u4E2D\u7684\u4EFB\u52A1 {0} \u5DF2\u4E0D
ImportItemUtil.taskMonitor=\u5E94\u7528\u8FC1\u79FB\u4EFB\u52A1 {0} \u5230\u9879\u76EE {1} \u4E0A
ImportItemUtil.tdqErrorInfor=\u65E0\u6CD5\u5BFC\u5165 TDQ \u9879\u76EE {0}
ImportItemUtil.unknowException=\u672A\u77E5\u8BED\u8A00\uFF1A{0}
ImportItemWizardPage.0=\u4EE5\u4E0B\u4E24\u9879\u5177\u6709\u76F8\u540C\u7684 ID\uFF0C\u8BF7\u53D6\u6D88\u9009\u62E9\u5176\u4E2D\u4E00\u9879: \n [{0}] [{1}]
ImportItemWizardPage.0=\u4EE5\u4E0B\u4E24\u9879\u5177\u6709\u76F8\u540C\u7684 ID\uFF0C\u8BF7\u53D6\u6D88\u9009\u62E9\u5176\u4E2D\u4E00\u9879\uFF1A \n [{0}] [{1}]
ImportItemWizardPage.ItemsList=\u9879\u76EE\u5217\u8868
ImportItemWizardPage.ImportDescription=\u4ECE\u5B58\u6863\u6587\u4EF6\u6216\u76EE\u5F55\u5BFC\u5165\u9879\u76EE\u3002
ImportItemWizardPage.Importing=\u8F93\u5165
@@ -814,7 +814,7 @@ ContextWizard.contextPageTitle=\u7B2C 2 \u6B65 (\u5171 2 \u6B65)
ContextWizard.step0Description=\u6DFB\u52A0\u4EFB\u4F55\u6240\u9700\u4FE1\u606F
ContextWizard.step0Title=\u7B2C 1 \u6B65 (\u5171 2 \u6B65)
CreateTableAction.action.Warning=\u8B66\u544A
CreateTableAction.action.NotLockMessage=\u8BE5\u9879\u76EE\u672A\u88AB\u9501\u5B9A\u3002\n\u8981\u4ECE\u8FDC\u7A0B\u6570\u636E\u5E93\u83B7\u53D6 schema\uFF0C\u5FC5\u987B\u5148\u9501\u5B9A\u8FDE\u63A5\u3002\n\u7EE7\u7EED\u67E5\u770B schema\uFF1F
CreateTableAction.action.NotLockMessage=\u8BE5\u9879\u76EE\u672A\u88AB\u9501\u5B9A\u3002 \n\u8981\u4ECE\u8FDC\u7A0B\u6570\u636E\u5E93\u83B7\u53D6 schema\uFF0C\u5FC5\u987B\u5148\u9501\u5B9A\u8FDE\u63A5\u3002 \n\u7EE7\u7EED\u67E5\u770B Schema\uFF1F
DatabaseForm.hbase.settings=\u7248\u672C
DatabaseForm.impala.settings=\u7248\u672C
DatabaseForm.hbase.distribution=\u53D1\u884C\u7248
@@ -978,7 +978,7 @@ DatabaseForm.genaralJDBC.mappingFileAlert=\u5FC5\u987B\u6307\u5B9A\u6620\u5C04\u
DatabaseForm.hc.link.none=\u65E0
DatabaseForm.hc.link.repository=\u5B58\u50A8\u5E93
DatabaseForm.hc.link.title=Hadoop \u96C6\u7FA4
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=80&lang=zh&env=prd
DatabaseForm.helpInfo.installDriverLink.label=\u5982\u4F55\u5B89\u88C5\u9A71\u52A8
DatabaseTableFilterForm.allSynonyms=\u6240\u6709\u540C\u4E49\u8BCD
DatabaseTableFilterForm.edit=\u7F16\u8F91...
@@ -1067,7 +1067,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
@@ -1113,7 +1113,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
@@ -1243,12 +1243,12 @@ 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
ExtendedTableResetDBTypesCommand.ResetDBTypes.Label=\u91CD\u7F6E\u6570\u636E\u5E93\u7C7B\u578B
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
DatabaseForm.showContext=\u66F4\u591A\u9009\u9879
@@ -1263,4 +1263,4 @@ BrowerDialog.empryUrl=URL \u4E0D\u80FD\u4E3A\u7A7A
DatabaseForm.canNotUsableInDataProfiler=\u5256\u6790\u89C6\u56FE\u4E0B\u4E0D\u652F\u6301\u6B64\u6570\u636E\u5E93\u7C7B\u578B\u3002
ImportTreeFromXMLAction.ImportSchemaNotExistError=\u6240\u9700 schema \u53C2\u8003\u6587\u4EF6\u7F3A\u5931\u3002
ImportTreeFromXMLAction.schemaFileNotExistDetailTitle=\u4EE5\u4E0B\u6587\u4EF6\u4E0D\u5B58\u5728:
DatabaseForm.checkSchema=\u4F7F\u7528\u4E0A\u4E0B\u6587\u6A21\u5F0F\u65F6\uFF0C\u5FC5\u987B\u586B\u5199 Schema \u5B57\u6BB5\u3002\n\u5355\u51FB Cancel (\u53D6\u6D88) \u4EE5\u5B8C\u6210\u8FDE\u63A5\u53C2\u6570\uFF0C\u7136\u540E\u5355\u51FB OK (\u786E\u5B9A) \u8F6C\u5230\u4E0B\u4E00\u6B65\u3002
DatabaseForm.checkSchema=\u4F7F\u7528\u4E0A\u4E0B\u6587\u6A21\u5F0F\u65F6\uFF0C\u5FC5\u987B\u586B\u5199 Schema \u5B57\u6BB5\u3002\n \u5355\u51FB "\u53D6\u6D88" \u4EE5\u5B8C\u6210\u8FDE\u63A5\u53C2\u6570\uFF0C\u7136\u540E\u5355\u51FB "\u786E\u5B9A" \u8F6C\u5230\u4E0B\u4E00\u6B65\u3002

View File

@@ -195,6 +195,7 @@ public class CreateConnectionAction extends AbstractCreateAction {
}
// Open the Wizard
// TalendWizardDialog wizardDialog = new TalendWizardDialog(Display.getCurrent().getActiveShell(), databaseWizard);
WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), databaseWizard);
wizardDialog.setPageSize(780, 540);
wizardDialog.create();

View File

@@ -82,6 +82,8 @@ import org.talend.commons.ui.swt.formtools.LabelledDirectoryField;
import org.talend.commons.ui.swt.formtools.LabelledFileField;
import org.talend.commons.ui.swt.formtools.LabelledText;
import org.talend.commons.ui.swt.formtools.UtilsButton;
import org.talend.commons.ui.swt.tableviewer.IModifiedBeanListener;
import org.talend.commons.ui.swt.tableviewer.ModifiedBeanEvent;
import org.talend.commons.ui.utils.PathUtils;
import org.talend.commons.ui.utils.loader.MyURLClassLoader;
import org.talend.core.GlobalServiceRegister;
@@ -89,6 +91,7 @@ import org.talend.core.ILibraryManagerService;
import org.talend.core.ILibraryManagerUIService;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.EImpalaDriver;
import org.talend.core.database.ERedshiftDriver;
import org.talend.core.database.conn.ConnParameterKeys;
import org.talend.core.database.conn.DatabaseConnStrUtil;
import org.talend.core.database.conn.EDatabaseConnVar;
@@ -131,6 +134,7 @@ import org.talend.core.runtime.hd.hive.HiveMetadataHelper;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.core.ui.branding.IBrandingService;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.cwm.helper.ConnectionHelper;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
@@ -219,6 +223,8 @@ public class DatabaseForm extends AbstractForm {
private LabelledCombo impalaDriverCombo;
private LabelledCombo redshiftDriverCombo;
private LabelledText serverText;
private LabelledText portText;
@@ -243,6 +249,10 @@ public class DatabaseForm extends AbstractForm {
private LabelledDirectoryField directoryField;
private Button useStringAdditionParam;
private LabelledParameterTable additionParamTable;
private LabelledText additionParamText;
private LabelledText additionalJDBCSettingsText;
@@ -655,6 +665,8 @@ public class DatabaseForm extends AbstractForm {
} else if (isDBTypeSelected(EDatabaseConnTemplate.IMPALA)) {
initImpalaSettings();
initImpalaInfo();
} else if (isDBTypeSelected(EDatabaseConnTemplate.REDSHIFT)) {
initRedshiftAdditionalParamSetting();
} else if (isHiveDBConnSelected()) {
// Changed by Marvin Wang on Oct. 15, 2012 for but TDI-23235.
doRemoveHiveSetup();
@@ -1005,7 +1017,7 @@ public class DatabaseForm extends AbstractForm {
createHiveServerVersionField(typeDbCompositeParent);
createImpalaDriverField(typeDbCompositeParent);
createRedshiftDriverField(typeDbCompositeParent);
setHideVersionInfoWidgets(true);
createHiveDataprocField(typeDbCompositeParent);
@@ -1031,6 +1043,7 @@ public class DatabaseForm extends AbstractForm {
} else {
datasourceText = new LabelledText(typeDbCompositeParent, Messages.getString("DatabaseForm.dataSource"), 2); //$NON-NLS-1$
}
createRedshiftAdditionalParamSetting(typeDbCompositeParent);
additionParamText = new LabelledText(typeDbCompositeParent, Messages.getString("DatabaseForm.AddParams"), 2); //$NON-NLS-1$
additionalJDBCSettingsText = new LabelledText(typeDbCompositeParent,
Messages.getString("DatabaseForm.hive.additionalJDBCSettings"), 2); //$NON-NLS-1$
@@ -4085,6 +4098,111 @@ public class DatabaseForm extends AbstractForm {
impalaDriverCombo.setHideWidgets(true);
}
private void createRedshiftDriverField(Composite parent) {
redshiftDriverCombo = new LabelledCombo(parent, Messages.getString("DatabaseForm.redshift.driverVersion"), //$NON-NLS-1$
Messages.getString("DatabaseForm.redshift.driverVersion.tip"), //$NON-NLS-1$
new String[] {}, 2, true);
redshiftDriverCombo.getCombo().setItems(ERedshiftDriver.getRedshiftDriverDisplayNames());
redshiftDriverCombo.setHideWidgets(true);
redshiftDriverCombo.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
if (ERedshiftDriver.DRIVER_V2.getDisplayName().equals(redshiftDriverCombo.getText())) {
hideControl(useStringAdditionParam, false);
} else {
hideControl(useStringAdditionParam, true);
additionParamText.setHideWidgets(false);
additionParamText.setEditable(true);
additionParamTable.getPropertiesTableModel().setProperties(new ArrayList<Map<String, Object>>());
handleAdditionParaTableModify();
additionParamTable.setHideWidgets(true);
}
handleUseStringAdditionParamSelection();
getConnection().getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER,
ERedshiftDriver.getEnameByDisplayName(redshiftDriverCombo.getText()));
}
});
}
private void createRedshiftAdditionalParamSetting(Composite parent) {
useStringAdditionParam = new Button(parent, SWT.CHECK);
useStringAdditionParam.setText(Messages.getString("DatabaseForm.redshift.useStringAdditionParam"));
GridData gridData = new GridData();
gridData.verticalSpan = 1;
gridData.horizontalSpan = 3;
useStringAdditionParam.setLayoutData(gridData);
useStringAdditionParam.setVisible(false);
gridData.exclude = true;
useStringAdditionParam.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleUseStringAdditionParamSelection();
}
});
List<Map<String, Object>> tableProperties = new ArrayList<Map<String, Object>>();
String paraTableInfos = getConnection().getParameters().get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_PARATABLE);
if (StringUtils.isNotBlank(paraTableInfos)) {
tableProperties = ConvertionHelper.getEntryProperties(paraTableInfos);
}
additionParamTable = new LabelledParameterTable(parent, Messages.getString("DatabaseForm.AddParams"),
tableProperties, 2);
additionParamTable.setHideWidgets(true);
additionParamTable.getPropertiesTableModel().addModifiedBeanListener(new IModifiedBeanListener<Map<String, Object>>() {
@Override
public void handleEvent(ModifiedBeanEvent<Map<String, Object>> event) {
handleAdditionParaTableModify();
}
});
}
private void handleAdditionParaTableModify() {
List<Map<String, Object>> beansList = additionParamTable.getPropertiesTableModel().getBeansList();
getConnection().getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_PARATABLE,
ConvertionHelper.getEntryPropertiesString(beansList));
}
private void handleUseStringAdditionParamSelection() {
boolean stringParaInUse = ERedshiftDriver.DRIVER_V1.getDisplayName().equals(redshiftDriverCombo.getText());
boolean selected = stringParaInUse || useStringAdditionParam.getSelection();
additionParamText.setHideWidgets(!selected);
additionParamTable.setHideWidgets(selected);
if (selected) {
additionParamText.setEditable(true);
additionParamTable.getPropertiesTableModel().setProperties(new ArrayList<Map<String, Object>>());
handleAdditionParaTableModify();
} else {
additionParamText.setText("");
}
getConnection().getParameters().put(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_STRINGPARA, String.valueOf(selected));
}
private void setupDefaultRedshiftAdditionalParamSetting() {
boolean isRedshiftSelected = isDBTypeSelected(EDatabaseConnTemplate.REDSHIFT);
if (isRedshiftSelected) {
redshiftDriverCombo.setText(ERedshiftDriver.DRIVER_V2.getDisplayName());
}
redshiftDriverCombo.setHideWidgets(!isRedshiftSelected);
}
private void initRedshiftAdditionalParamSetting() {
EMap<String, String> parameters = getConnection().getParameters();
String redshiftDriver = parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_DRIVER);
if (StringUtils.isBlank(redshiftDriver)) {
redshiftDriver = ERedshiftDriver.DRIVER_V1.getDisplayName();
} else {
redshiftDriver = ERedshiftDriver.getDisplayNameByEName(redshiftDriver);
}
String useString = parameters.get(ConnParameterKeys.CONN_PARA_KEY_REDSHIFT_STRINGPARA);
useStringAdditionParam.setSelection(Boolean.valueOf(useString));
redshiftDriverCombo.setText(redshiftDriver);
handleUseStringAdditionParamSelection();
}
/**
* Added by Marvin Wang on Oct. 15, 2012.
*
@@ -4494,6 +4612,25 @@ public class DatabaseForm extends AbstractForm {
}
}
String dbVersionString = enableDbVersion() ? versionStr : null;
if (isDBTypeSelected(EDatabaseConnTemplate.REDSHIFT)) {
if (ERedshiftDriver.DRIVER_V2.getDisplayName().equals(redshiftDriverCombo.getText())
&& !useStringAdditionParam.getSelection()) {
Properties info = new Properties();
List<Map<String, Object>> entryProperties = additionParamTable.getPropertiesTableModel().getBeansList();
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")));
ConvertionHelper.updateAdditionParam(sgb, info, key, value);
}
}
}
String driverVName = ERedshiftDriver.getEnameByDisplayName(redshiftDriverCombo.getText());
if (StringUtils.isNotBlank(driverVName)) {
dbVersionString = driverVName;
}
}
// TODO If the current DB type is Hive, then to identify if Hive mode is EMBEDDED, if so, then setup some
// system
// properties.
@@ -4506,7 +4643,7 @@ public class DatabaseForm extends AbstractForm {
isGeneralJDBC() ? jDBCschemaText.getText() : schemaText.getText(),
additionParamText.getText() + sgb.toString(),
generalJdbcClassNameText.getText(), generalJdbcDriverjarText.getText(),
enableDbVersion() ? versionStr : null, metadataconnection.getOtherParameters());
dbVersionString, metadataconnection.getOtherParameters());
managerConnection.setDbRootPath(directoryField.getText());
@@ -5447,6 +5584,7 @@ public class DatabaseForm extends AbstractForm {
} else {
doImpalaNotSelected();
}
setupDefaultRedshiftAdditionalParamSetting();
}
// Added by Marvin Wang on Oct. 22, 2012 just for show the scrolled bar when a hive DB type is selected.
@@ -6662,6 +6800,7 @@ public class DatabaseForm extends AbstractForm {
boolean isMsSQL = visible && asMsSQLVersionEnable();
boolean isSybase = visible && asSybaseVersionEnable();
boolean isGreenplum = visible && asGreenplumVersionEnable();
boolean isRedshift = visible && redshiftVersionEnable();
dbVersionCombo
.setEnabled(!isReadOnly()
@@ -6948,6 +7087,8 @@ public class DatabaseForm extends AbstractForm {
// usernameText.hide();
// passwordText.hide();
impalaDriverCombo.setHideWidgets(false);
} else if (isRedshift) {
redshiftDriverCombo.setHideWidgets(false);
} else if (isHiveDBConnSelected()) {
if (isHiveEmbeddedMode()) {
// Need to revert if required, changed by Marvin Wang on Nov. 22, 2012.
@@ -7007,11 +7148,22 @@ public class DatabaseForm extends AbstractForm {
}
if (EDatabaseConnTemplate.isAddtionParamsNeeded(getConnection().getDatabaseType())
&& !EDatabaseConnTemplate.GENERAL_JDBC.getDBTypeName().equals(getConnectionDBType()) && visible) {
additionParamText.show();
boolean isRedshiftV2 = isRedshift
&& ERedshiftDriver.DRIVER_V2.getDisplayName().equals(redshiftDriverCombo.getText());
hideControl(useStringAdditionParam, !isRedshiftV2);
if (isRedshiftV2 && !useStringAdditionParam.getSelection()) {
additionParamTable.setHideWidgets(false);
additionParamText.hide();
} else {
additionParamText.show();
additionParamTable.setHideWidgets(true);
}
additionParamText.setEditable(true);
addContextParams(EDBParamName.AdditionalParams, true);
} else {
if (!EDatabaseConnTemplate.isAddtionParamsNeeded(getConnection().getDatabaseType())) {
hideControl(useStringAdditionParam, true);
additionParamTable.setHideWidgets(true);
additionParamText.hide();
addContextParams(EDBParamName.AdditionalParams, false);
}
@@ -7065,7 +7217,7 @@ public class DatabaseForm extends AbstractForm {
private void collectHiveContextParams() {
// recollect context params for hive
if (isHiveDBConnSelected()) {
getConetxtParams().clear();
getContextParams().clear();
addContextParams(EDBParamName.Database, true);
boolean isHiveDataproc = doSupportHiveDataproc();
if (isHiveDataproc) {
@@ -7110,7 +7262,7 @@ public class DatabaseForm extends AbstractForm {
private void collectHBaseContextParams() {
// recollect context params for Hbase
if (isHBaseDBConnSelected()) {
getConetxtParams().clear();
getContextParams().clear();
addContextParams(EDBParamName.Server, true);
addContextParams(EDBParamName.Port, true);
addContextParams(EDBParamName.Schema, true);
@@ -7132,7 +7284,7 @@ public class DatabaseForm extends AbstractForm {
private void collectMaprdbContextParams() {
// recollect context params for maprdb
if (isMapRDBConnSelected()) {
getConetxtParams().clear();
getContextParams().clear();
addContextParams(EDBParamName.Server, true);
addContextParams(EDBParamName.Port, true);
addContextParams(EDBParamName.Schema, true);
@@ -7154,7 +7306,7 @@ public class DatabaseForm extends AbstractForm {
private void collectImpalaContextParams() {
// recollect context params for impala
if (isImpalaDBConnSelected()) {
getConetxtParams().clear();
getContextParams().clear();
addContextParams(EDBParamName.Login, true);
addContextParams(EDBParamName.Server, true);
addContextParams(EDBParamName.Port, true);
@@ -7176,7 +7328,7 @@ public class DatabaseForm extends AbstractForm {
private void collectOracleCustomContextParams() {
// recollect context params for Oracle Custom
if (isOracleCustomDBConnSelected()) {
getConetxtParams().clear();
getContextParams().clear();
addContextParams(EDBParamName.Server, true);
addContextParams(EDBParamName.Password, true);
addContextParams(EDBParamName.Login, true);
@@ -7244,6 +7396,14 @@ public class DatabaseForm extends AbstractForm {
return template != null && (template == EDatabaseConnTemplate.HIVE);
}
private boolean redshiftVersionEnable() {
if (getConnectionDBType().length() <= 0) {
return false;
}
EDatabaseConnTemplate template = EDatabaseConnTemplate.indexOfTemplate(getConnectionDBType());
return template != null && template == EDatabaseConnTemplate.REDSHIFT;
}
/**
*
* DOC qli Comment method "as400VersionEnable".
@@ -9356,7 +9516,7 @@ public class DatabaseForm extends AbstractForm {
labelText = sidOrDatabaseText.getLabelText();
needConfirmDialog = true;
}
Set<IConnParamName> conetxtParams = getConetxtParams();
Set<IConnParamName> conetxtParams = getContextParams();
boolean contains = conetxtParams.contains(EDBParamName.Schema);
if ((contains || EDatabaseConnTemplate.isSchemaNeeded(getConnection().getDatabaseType()))
&& StringUtils.isBlank(schemaText.getText())) {

View File

@@ -0,0 +1,150 @@
// ============================================================================
//
// 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.repository.ui.wizards.metadata.connection.database;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.talend.metadata.managment.ui.props.PropertiesFieldModel;
import org.talend.metadata.managment.ui.props.PropertiesTableView;
/**
* DOC jding class global comment. Detailled comment
*/
public class LabelledParameterTable {
public static final String DEFAULT_KEY_NAME = "KEY";
public static final String DEFAULT_VALUE_NAME = "VALUE";
public static final String DEFAULT_KEY_COLUMN_NAME = "Key";
public static final String DEFAULT_VALUE_COLUMN_NAME = "Value";
private Label label;
private PropertiesFieldModel propertiesTableModel;
private PropertiesTableView propertiesTableView;
private Composite tableComposite;
private List<Map<String, Object>> properties = new ArrayList<Map<String, Object>>();
public LabelledParameterTable(final Composite parent, final String labelStr, List<Map<String, Object>> properties,
final int horizontalSpan) {
if (properties == null) {
properties = new ArrayList<Map<String, Object>>();
}
this.properties = properties;
createLabelledParameterTable(parent, labelStr, horizontalSpan);
}
private void createLabelledParameterTable(final Composite parent, final String labelStr, final int horizontalSpan) {
label = new Label(parent, SWT.BEGINNING);
if (labelStr != null) {
label.setText(labelStr);
}
label.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
tableComposite = new Composite(parent, SWT.NONE);
GridLayout compositeTableLayout = new GridLayout(1, false);
compositeTableLayout.marginWidth = 0;
compositeTableLayout.marginHeight = 0;
tableComposite.setLayout(compositeTableLayout);
GridData gridData = new GridData(GridData.FILL_BOTH);
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.horizontalSpan = horizontalSpan;
gridData.minimumHeight = 200;
tableComposite.setLayoutData(gridData);
propertiesTableModel = new PropertiesFieldModel(properties, ""); //$NON-NLS-1$
propertiesTableView = new PropertiesTableView(tableComposite, propertiesTableModel) {
@Override
public String getKeyName() {
return getPropertiesKeyName();
}
@Override
public String getValueName() {
return getPropertiesValueName();
}
@Override
public String getKeyColumnName() {
return getPropertiesKeyColumnName();
}
@Override
public String getValueColumnName() {
return getPropertiesValueColumnName();
}
};
propertiesTableModel.setFixedSize(true);
Composite fieldTableEditorComposite = propertiesTableView.getMainComposite();
GridData tableGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
tableGridData.heightHint = 200;
fieldTableEditorComposite.setLayoutData(tableGridData);
}
public void setHideWidgets(final boolean hide) {
GridData dataLabel = (GridData) label.getLayoutData();
dataLabel.exclude = hide;
label.setLayoutData(dataLabel);
GridData dataCombo = (GridData) tableComposite.getLayoutData();
dataCombo.exclude = hide;
tableComposite.setLayoutData(dataCombo);
label.setVisible(!hide);
tableComposite.setVisible(!hide);
if (label.getParent() != null)
label.getParent().layout();
}
public PropertiesFieldModel getPropertiesTableModel() {
return propertiesTableModel;
}
public PropertiesTableView getPropertiesTableView() {
return propertiesTableView;
}
public String getPropertiesKeyName() {
return DEFAULT_KEY_NAME;
}
public String getPropertiesValueName() {
return DEFAULT_VALUE_NAME;
}
public String getPropertiesKeyColumnName() {
return DEFAULT_KEY_COLUMN_NAME;
}
public String getPropertiesValueColumnName() {
return DEFAULT_VALUE_COLUMN_NAME;
}
}

View File

@@ -1,4 +1,4 @@
ADVANCED_SEPARATOR.NAME=\u9AD8\u5EA6\u306A\u533A\u5207\u308A\u8A18\u53F7(\u6570\u5B57\u7528)
ADVANCED_SEPARATOR.NAME=\u9AD8\u5EA6\u306A\u533A\u5207\u308A(\u6570\u5B57\u7528)
CHECK_FIELDS_NUM.NAME=\u30B9\u30AD\u30FC\u30DE\u306B\u5BFE\u3059\u308B\u5404\u884C\u30B9\u30C8\u30E9\u30AF\u30C1\u30E3\u30FC\u3092\u30C1\u30A7\u30C3\u30AF
CHECK_DATE.NAME=\u65E5\u4ED8\u3092\u30C1\u30A7\u30C3\u30AF
CSV_OPTION.NAME=CSV\u30AA\u30D7\u30B7\u30E7\u30F3

View File

@@ -1,5 +1,5 @@
ActiveRepositoryFilterActionProvider.ActivateFilter=\u5F00\u59CB\u7B5B\u9009
ActiveRepositoryFilterActionProvider.ActiveFilterAvailable=\u6FC0\u6D3B\u7B5B\u9009\u5668 \n(\u8BBE\u7F6E\u7B5B\u9009\u5668\u8BA9\u5176\u5728\u89C6\u56FE\u83DC\u5355\u4E2D\u53EF\u7528)
ActiveRepositoryFilterActionProvider.ActiveFilterAvailable=\u5F00\u59CB\u7B5B\u9009 \n(\u8BBE\u7F6E\u7B5B\u9009\u5668\u8BA9\u5176\u5728\u89C6\u56FE\u83DC\u5355\u4E2D\u53EF\u7528)
PerspectiveFilterActionProvider.PerspectiveContentFilter=\u900F\u89C6\u56FE\u5185\u5BB9\u7B5B\u9009\u5668
RepoDoubleClickAction.ServiceOperation=ServiceOperation
RepositoryFilterSettingActionProvider.FilterSetting=\u7B5B\u9009\u5668\u8BBE\u7F6E
@@ -14,7 +14,7 @@ RepositoryFilterSettingDialog.Item=\u672A\u8BBE\u5B9A\u72B6\u6001
RepositoryFilterSettingDialog.Label=\u6807\u7B7E
RepositoryFilterSettingDialog.LastName=\u59D3\u6C0F
RepositoryFilterSettingDialog.Login=\u767B\u5F55\u540D
RepositoryFilterSettingDialog.PatternInfo=\u6A21\u5F0F\u7531\u9017\u53F7\u5206\u9694\uFF0C\u5176\u4E2D \n* = \u4EFB\u610F\u5B57\u7B26\u4E32\uFF0C? = \u4EFB\u610F\u5B57\u7B26\uFF0C,, = ,
RepositoryFilterSettingDialog.PatternInfo=\u6A21\u5F0F\u7528\u9017\u53F7\u5206\u9694\uFF0C\u5176\u4E2D\n* = \u4EFB\u610F\u5B57\u4E32, ? = \u4EFB\u610F\u5B57\u7B26, ,, = ,
RepoViewCommonNavigator.Content=\u5DF2\u5728 {1} \u4E0A\u7531 {0} \u9501\u5B9A
RepoViewCommonNavigator.Desc= \u63CF\u8FF0:
RepoViewCommonNavigator.refresh=\u6B63\u5728\u5237\u65B0...
@@ -24,4 +24,4 @@ RepoDoubleClickAction.unknown=\u672A\u77E5\u5DE5\u4F5C
progress.interrupted=\u5DE5\u4F5C\u5DF2\u4E2D\u65AD
progress.cancelled=\u5DE5\u4F5C\u5DF2\u53D6\u6D88
RepoDoubleClickAction.Warning=\u6267\u884C\u5931\u8D25 {0}
RepoDoubleClickAction.Warning.msg=Studio \u6B63\u5728\u5904\u7406\u540E\u53F0\u4F5C\u4E1A\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002\n\n (\u60A8\u53EF\u4EE5\u4ECE\u6D41\u7A0B\u8BD5\u56FE\u4E2D\u627E\u5230\u6240\u6709\u540E\u53F0\u4F5C\u4E1A)
RepoDoubleClickAction.Warning.msg=Studio \u6B63\u5728\u5904\u7406\u540E\u53F0\u4F5C\u4E1A\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002\n\n(\u60A8\u53EF\u4EE5\u5728\u8FDB\u7A0B\u89C6\u56FE\u4E2D\u627E\u5230\u6240\u6709\u540E\u53F0\u4F5C\u4E1A)

View File

@@ -390,7 +390,8 @@ public class RepoDoubleClickAction extends Action {
return false;
}
if (ERepositoryObjectType.METADATA_SAP_BW_DATASOURCE != null) {
if (nodeType == ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT
if (nodeType == ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_INPUT
|| nodeType == ERepositoryObjectType.METADATA_SAP_BW_ADVANCEDDATASTOREOBJECT_OUTPUT
|| nodeType == ERepositoryObjectType.METADATA_SAP_BW_DATASOURCE
|| nodeType == ERepositoryObjectType.METADATA_SAP_BW_DATASTOREOBJECT
|| nodeType == ERepositoryObjectType.METADATA_SAP_BW_INFOCUBE

View File

@@ -1,9 +1,9 @@
UpdateStudioWizard.missing.jar.download.ok=\u6240\u6709\u7F3A\u5C11\u7684 jar \u90FD\u5DF2\u4E0B\u8F7D\u6210\u529F\u3002
UpdateStudioWizard.missing.jar.download.failed=\u4E0B\u5217 jar \u7684\u4E0B\u8F7D\u5931\u8D25\uFF1A{0}
UpdateStudioWizard.some.jars.sucessfully.installed=\u4EE5\u4E0B jar \u5DF2\u6210\u529F\u5B89\u88C5\uFF1A{0}
missing.third.parties.libs.feature.description=\u5305\u542B\u6240\u6709\u5FC5\u9700\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\uFF0C\u7531\u4E8E\u8BB8\u53EF\u539F\u56E0\uFF0C\u8FD9\u4E9B\u4F9D\u8D56\u5305\u65E0\u6CD5\u968F\u672C\u4EA7\u54C1\u4E00\u8D77\u63D0\u4F9B\uFF0C\u4F46\u4EA7\u54C1\u6B63\u5E38\u8FD0\u884C\u9700\u8981\u8FD9\u4E9B\u4F9D\u8D56\u5305\u3002\n\u5982\u679C\u60A8\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u60A8\u5C06\u88AB\u9080\u8BF7\u63A5\u53D7\u60A8\u5B89\u88C5\u7684\u6BCF\u4E2A\u4F9D\u8D56\u5305\u7684\u8BB8\u53EF\u8BC1\u3002\u60A8\u5FC5\u987B\u63A5\u53D7\u6240\u6709\u8BB8\u53EF\u624D\u80FD\u4F7F\u7528 Talend Studio\u3002\n\u5982\u679C\u60A8\u672A\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u5219\u7CFB\u7EDF\u4F1A\u5728\u4EA7\u54C1\u9700\u8981\u65F6\u9010\u4E00\u63D0\u793A\u60A8\u8F93\u5165\u6BCF\u4E2A\u7F3A\u5931\u7684\u4F9D\u8D56\u5305\u3002
missing.third.parties.libs.feature.description=\u5305\u542B\u6240\u6709\u5FC5\u9700\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5E93\uFF0C\u7531\u4E8E\u8BB8\u53EF\u539F\u56E0\uFF0C\u8FD9\u4E9B\u5E93\u65E0\u6CD5\u968F\u672C\u4EA7\u54C1\u4E00\u8D77\u63D0\u4F9B\uFF0C\u4F46\u4EA7\u54C1\u6B63\u5E38\u8FD0\u884C\u9700\u8981\u8FD9\u4E9B\u5E93\u3002\n\u5982\u679C\u60A8\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u60A8\u5C06\u88AB\u9080\u8BF7\u63A5\u53D7\u60A8\u5B89\u88C5\u7684\u6BCF\u4E2A\u5E93\u7684\u8BB8\u53EF\u8BC1\u3002\u60A8\u5FC5\u987B\u63A5\u53D7\u6240\u6709\u8BB8\u53EF\u624D\u80FD\u4F7F\u7528 Talend Studio\u3002\n\u5982\u679C\u60A8\u672A\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u5219\u7CFB\u7EDF\u4F1A\u5728\u4EA7\u54C1\u9700\u8981\u65F6\u9010\u4E00\u63D0\u793A\u60A8\u8F93\u5165\u6BCF\u4E2A\u7F3A\u5931\u7684\u5E93\u3002
missing.third.parties.libs.feature.name=\u5FC5\u9700\u7684\u7B2C\u4E09\u65B9\u5E93
missing.optional.third.parties.libs.feature.description=\u5305\u542B\u6240\u6709\u53EF\u9009\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\uFF0C\u51FA\u4E8E\u8BB8\u53EF\u539F\u56E0\uFF0C\u8FD9\u4E9B\u4F9D\u8D56\u5305\u4E0D\u80FD\u968F\u672C\u4EA7\u54C1\u4E00\u8D77\u63D0\u4F9B\uFF0C\u4F46\u4EA7\u54C1\u7684\u67D0\u4E9B\u975E\u6838\u5FC3\u90E8\u5206\u9700\u8981\u8FD9\u4E9B\u4F9D\u8D56\u5305\u624D\u80FD\u6B63\u5E38\u8FD0\u884C\u3002\n\u5982\u679C\u60A8\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u60A8\u5C06\u88AB\u9080\u8BF7\u63A5\u53D7\u60A8\u5B89\u88C5\u7684\u6BCF\u4E2A\u4F9D\u8D56\u5305\u7684\u8BB8\u53EF\u8BC1\u3002\u60A8\u5FC5\u987B\u63A5\u53D7\u76F8\u5173\u8BB8\u53EF\u624D\u80FD\u4F7F\u7528 Talend Studio \u7684\u76F8\u5173\u90E8\u5206\u3002\n\u5982\u679C\u60A8\u672A\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u5219\u7CFB\u7EDF\u4F1A\u5728\u4EA7\u54C1\u9700\u8981\u65F6\u9010\u4E00\u63D0\u793A\u60A8\u8F93\u5165\u6BCF\u4E2A\u7F3A\u5931\u7684\u4F9D\u8D56\u5305\u3002
missing.optional.third.parties.libs.feature.description=\u5305\u542B\u6240\u6709\u53EF\u9009\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5E93\uFF0C\u51FA\u4E8E\u8BB8\u53EF\u539F\u56E0\uFF0C\u8FD9\u4E9B\u5E93\u4E0D\u80FD\u968F\u672C\u4EA7\u54C1\u4E00\u8D77\u63D0\u4F9B\uFF0C\u4F46\u4EA7\u54C1\u7684\u67D0\u4E9B\u975E\u6838\u5FC3\u90E8\u200B\u5206\u9700\u8981\u8FD9\u4E9B\u5E93\u624D\u80FD\u6B63\u5E38\u8FD0\u884C\u3002\n\u5982\u679C\u60A8\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u60A8\u5C06\u88AB\u9080\u8BF7\u63A5\u53D7\u60A8\u5B89\u88C5\u7684\u6BCF\u4E2A\u5E93\u7684\u8BB8\u53EF\u8BC1\u3002\u60A8\u5FC5\u987B\u200B\u63A5\u53D7\u76F8\u5173\u8BB8\u53EF\u624D\u80FD\u4F7F\u7528 Talend Studio \u7684\u76F8\u5173\u90E8\u5206\u3002\n\u5982\u679C\u60A8\u672A\u9009\u62E9\u6B64\u9009\u9879\uFF0C\u5219\u7CFB\u7EDF\u4F1A\u5728\u4EA7\u54C1\u9700\u8981\u65F6\u9010\u4E00\u63D0\u793A\u60A8\u8F93\u5165\u6BCF\u4E2A\u7F3A\u5931\u7684\u5E93\u3002
missing.optional.third.parties.libs.feature.name=\u53EF\u9009\u7684\u7B2C\u4E09\u65B9\u5E93
installing.new.components.name=\u5B89\u88C5\u65B0\u7EC4\u4EF6
installing.new.components.description=\u5C1D\u8BD5\u4E3A\u65B0\u7684\u7EC4\u4EF6\u6846\u67B6\u5B89\u88C5\u65B0\u7EC4\u4EF6
@@ -64,7 +64,7 @@ failed.install.of.feature=\u5B89\u88C5{0}\u5931\u8D25
ComponentP2ExtraFeature.installing.components=\u5B89\u88C5\u7EC4\u4EF6\uFF1A{0}\uFF08{1}\uFF09
ComponentP2ExtraFeature.user.cancel.installation.of.components=\u7528\u6237\u53D6\u6D88\u7EC4\u4EF6\u7684\u5B89\u88C5\uFF1A{0}\uFF08{1}\uFF09
ComponentP2ExtraFeature.could.not.find.components=\u5728\u4EE5\u4E0B\u5B58\u50A8\u5E93{2}\u4E2D\u627E\u4E0D\u5230\u7EC4\u4EF6{0}\uFF08{1}\uFF09
ComponentP2ExtraFeature.error.installing.new.components=\u5B89\u88C5\u65B0\u7EC4\u4EF6\u65F6\u51FA\u9519\uFF1A{0}\uFF08{1}\uFF09\uFF0C\n\u51FA\u9519\u539F\u56E0\u8BE6\u7EC6\u4FE1\u606F\uFF1A{2}
ComponentP2ExtraFeature.error.installing.new.components=\u5B89\u88C5\u65B0\u7EC4\u4EF6\u65F6\u51FA\u9519\uFF1A{0} ({1})\uFF0C \n\u51FA\u9519\u539F\u56E0\u8BE6\u7EC6\u4FE1\u606F\uFF1A{2}
ComponentP2ExtraFeature.error.installing.components.uri.exception=\u7531\u4E8EURI\u5F02\u5E38\uFF0C\u65E0\u6CD5\u5B89\u88C5\u7EC4\u4EF6{0}\uFF08{1}\uFF09\uFF1A
sucessfull.install.of.components=\u6210\u529F\u5B89\u88C5\u7EC4\u4EF6\uFF1A{0} ({1})
ComponentsNexusInstallFactory.categorytitile=\u7EC4\u4EF6 ({0})
@@ -89,8 +89,8 @@ CheckAdditionalPackagesToInstallJob.check.third.party.lib.to.install=\u68C0\u67E
AdditionalPackagesDialog.ok=\u786E\u5B9A
AdditionalPackagesDialog.feature.list.label=\u53EF\u7528\u7279\u6027
AdditionalPackagesDialog.description.label=\u63CF\u8FF0
AdditionalPackagesDialog.description.content=\u7531\u4E8E\u8BB8\u53EF\u65B9\u9762\u7684\u9650\u5236\uFF0C\u6211\u4EEC\u65E0\u6CD5\u968F\u540C Talend Studio \u5C3D\u6570\u63D0\u4F9B\u7EC4\u4EF6\u53CA\u5143\u6570\u636E\u8FDE\u63A5\u6240\u9700\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002\n\u60A8\u53EF\u4EE5:\n- \u901A\u8FC7\u9009\u62E9\u4E0A\u8FF0\u76F8\u5E94\u7684\u9009\u9879\u4E00\u6B21\u6027\u5B89\u88C5\u6240\u6709\u7684\u5FC5\u987B\u53CA/\u6216\u53EF\u9009\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002\u6216\u8005 \n- \u5728\u9700\u8981\u7684\u65F6\u5019\u6309\u63D0\u793A\u5206\u522B\u5B89\u88C5\u7F3A\u5931\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002
AdditionalPackagesDialog.description.content=\u7531\u4E8E\u8BB8\u53EF\u65B9\u9762\u7684\u9650\u5236\uFF0C\u6211\u4EEC\u65E0\u6CD5\u968F\u540C Talend Studio \u5C3D\u6570\u63D0\u4F9B\u7EC4\u4EF6\u53CA\u5143\u6570\u636E\u8FDE\u63A5\u6240\u9700\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002 \n\u60A8\u53EF\u4EE5:\n- \u901A\u8FC7\u9009\u62E9\u4E0A\u8FF0\u76F8\u5E94\u7684\u9009\u9879\u4E00\u6B21\u6027\u5B89\u88C5\u6240\u6709\u7684\u5FC5\u987B\u53CA/\u6216\u53EF\u9009\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002 \n- \u6216\u8005\u5728\u9700\u8981\u7684\u65F6\u5019\u6309\u63D0\u793A\u5206\u522B\u5B89\u88C5\u7F3A\u5931\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002
download.external.dialog.info=\u4FE1\u606F
download.external.dialog.message=\u76EE\u524D\u6CA1\u6709\u53EF\u4F9B\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002\n\u60A8\u53EF\u80FD\u5DF2\u7ECF\u5B89\u88C5\u4E86\u6240\u6709\u7684\u6240\u9700\u4F9D\u8D56\u5305\uFF0C\u5426\u5219\u60A8\u5C06\u65E0\u6CD5\u8FDE\u63A5\u5230\u6784\u4EF6\u5E93\u3002
download.external.dialog.message=\u76EE\u524D\u4F3C\u4E4E\u6CA1\u6709\u53EF\u4F9B\u5B89\u88C5\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305\u3002 \n\u60A8\u53EF\u80FD\u5DF2\u7ECF\u5B89\u88C5\u4E86\u6240\u6709\u7684\u6240\u9700\u4F9D\u8D56\u5305\uFF0C\u5426\u5219\u60A8\u5C06\u65E0\u6CD5\u8FDE\u63A5\u5230\u6784\u4EF6\u5E93\u3002
download.external.dialog.title=\u9009\u62E9\u8981\u5B89\u88C5\u7684\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305
download.external.dialog.name=\u7B2C\u4E09\u65B9\u4F9D\u8D56\u5305

View File

@@ -76,7 +76,7 @@ public class VersionUtilsTest {
File artifactIdFolder = new File(mojoType.getMojoArtifactIdFolder());
String majorVersion = StringUtils.substringBeforeLast(talendVersion, ".");
String minorVersion = StringUtils.substringAfterLast(talendVersion, ".");
minorVersion = (Integer.valueOf(minorVersion) + 2) + "";
minorVersion = (Integer.valueOf(minorVersion) + 1000) + "";
testVersion = majorVersion + "." + minorVersion + testVersion;
File versionFolder = new File(artifactIdFolder, testVersion);
versionFolder.mkdir();

View File

@@ -13,6 +13,7 @@
package org.talend.designer.maven.tools;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -23,6 +24,7 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -34,6 +36,7 @@ import org.eclipse.m2e.core.MavenPlugin;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.talend.commons.utils.MojoType;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.ProjectReference;
@@ -43,6 +46,7 @@ import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.nexus.TalendMavenResolver;
import org.talend.core.repository.model.ProxyRepositoryFactory;
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.projectsetting.ProjectPreferenceManager;
@@ -52,6 +56,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory;
import org.talend.designer.maven.DesignerMavenPlugin;
import org.talend.designer.maven.model.TalendMavenConstants;
import org.talend.designer.maven.utils.PomIdsHelper;
import org.talend.designer.maven.utils.PomUtil;
import org.talend.designer.runprocess.IRunProcessService;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.IProxyRepositoryFactory;
@@ -97,6 +102,44 @@ public class AggregatorPomsHelperTest {
defaultProjectVersion = PomIdsHelper.getProjectVersion();
defaultUseSnapshot = false;
}
@Test
public void testNeedInstallRootPom() throws Exception {
Model modelBak = null;
File installedPomFile = null;
try {
IFile pomFile = helper.getProjectRootPom();
assertFalse(helper.needInstallRootPom(pomFile));
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);
String artifactPath = PomUtil.getAbsArtifactPath(artifact);
installedPomFile = new File(artifactPath);
modelBak = MavenPlugin.getMaven().readModel(installedPomFile);
Model installedModel = MavenPlugin.getMaven().readModel(installedPomFile);
// test ci-builder
Plugin mojo = installedModel.getBuild().getPlugins().stream()
.filter(p -> p.getArtifactId().equals(MojoType.CI_BUILDER.getArtifactId())).findFirst().get();
String versionBak = mojo.getVersion();
mojo.setVersion("1.1.1");
PomUtil.savePom(null, installedModel, installedPomFile);
assertTrue(helper.needInstallRootPom(pomFile));
// test signer
mojo.setVersion(versionBak);
installedModel.getProperties().setProperty(MojoType.SIGNER.getVersionKey(), "1.1.1");
PomUtil.savePom(null, installedModel, installedPomFile);
assertTrue(helper.needInstallRootPom(pomFile));
} finally {
// restore m2 project pom file
if (modelBak != null && installedPomFile != null) {
PomUtil.savePom(null, modelBak, installedPomFile);
}
}
}
@Test
public void testGetJobProjectName() {