Compare commits

..

60 Commits

Author SHA1 Message Date
Zhiwei Xue
87fc7471dd Update PATCH_RELEASE_NOTE.md 2023-12-05 16:23:01 +08:00
wwang
abdbe7a669 chore(TPS-5573):update patch note 2023-12-05 16:04:55 +08:00
wang wei
345cf6c44b fix(TDI-50317): tFileInputPositional don't parse properly when pattern units field is set to Symbols (#6421) 2023-12-05 15:55:59 +08:00
kjwang
9f9a381bd7 Fix TUP-38743 Dark Mode: Job editor color is still using light theme in (#6130)
Fix TUP-38743 Dark Mode: Job editor color is still using light theme in Remote Project
https://jira.talendforge.org/browse/TUP-38743
2023-04-18 16:43:01 +08:00
kjwang
f2599689ed Kjwang/fix tup 38656 improve job designer in dark mode (#6121)
* TUP-38645 On dark mode, Job designer & subjob color can't restore to
correct default color
https://jira.talendforge.org/browse/TUP-38645
2023-04-17 17:07:54 +08:00
Emmanuel GALLOIS
3b647c2316 feat(TDI-49562): bump component-runtime to 1.55 (#6054) 2023-04-13 12:00:27 +02:00
kjwang
4ff0184a49 TUP-38591 Text in unselected row isn't clear in FileJson wizard>"Fields (#6116)
TUP-38591 Text in unselected row isn't clear in FileJson wizard>"Fields to extract"
https://jira.talendforge.org/browse/TUP-38591
2023-04-13 14:35:24 +08:00
sbliu
0e37b9632e fix(TUP-38637) fix context update problem from TUP-38212 (#6114) 2023-04-13 10:58:40 +08:00
bhe-talendbj
f2a4328037 fix(TUP-38617): add new api (#6103) 2023-04-13 09:52:12 +08:00
Jane Ding
771a1bf810 fix(TUP-37227):Issue building when items names too long (#6067) (#6087)
https://jira.talendforge.org/browse/TUP-37227
2023-04-12 16:38:38 +08:00
kjwang
3f7d1a83d9 TUP-37441 Improve mapper display in dark mode (#5906)
* TUP-37441 Improve mapper display in dark mode
2023-04-12 10:35:08 +08:00
Jane Ding
c20078c3d1 feat(TUP-38424):Add dark mode info to the pendo of Login Project (#6088)
https://jira.talendforge.org/browse/TUP-38424
2023-04-11 17:09:46 +08:00
Zhiwei Xue
d13ae7e637 fix(TUP-38316):[801 CI/CD] Duplicate Parameter error in the artifact and (#6058)
creating the task
2023-04-11 09:23:44 +08:00
bhe-talendbj
6b094dd4fd feat(TUP-38297): Improve Update settings for user/password (#6075)
* feat(TUP-38297): delete basic auth credential

* feat(TUP-38297): throw error
2023-04-10 16:54:41 +08:00
sponomarova
1ebdb18d27 feat(TBD-12991): Azure Synapse with Universal (#6070) 2023-04-10 11:40:44 +03:00
sbliu
98930c8c96 Add localized files (#6093) (#6098)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-04-07 10:47:55 +08:00
sbliu
a7ab220672 fix(TUP-38212) using updated context (#6089) 2023-04-06 15:59:34 +08:00
sbliu
553b2770c9 fix(TUP-37855) add log to network check exception (#5987)
* fix(TUP-37855) add log to network check exception

* fix(TUP-37855) add check ulr to networkutil error log
2023-04-03 11:28:28 +08:00
jiezhang-tlnd
dd851d3202 Add localized files (#6082) (#6084)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-30 17:20:09 +08:00
vyu-talend
f47f991977 chore(TDI-49458):bump file enhanced. (#6076) 2023-03-30 16:31:59 +08:00
Zhiwei Xue
a2e44cb5c2 fix(TUP-37990):remove custom bundle org.bouncycastle.bcprov (#6049) 2023-03-29 17:08:03 +08:00
hcyi
e36f0690f0 fix(TUP-38199):Remove updates section from Studio preferences. (#6052) 2023-03-29 11:49:58 +08:00
Jill Yan
9c4a9c1589 8.0/APPINT-35452 correct snapshot post fix (#6060)
* APPINT-35452 correct snapshot post fix

* APPINT-35452 correct snapshot post fix

* APPINT-35452 correct snapshot post fix
2023-03-28 09:34:25 +08:00
sbliu
da4ba3f1a0 Add localized files (#6066) (#6071)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-27 15:20:18 +08:00
bhe-talendbj
087dac391d chore(TUP-38259): refactor proxyrepositoryfactory (#6057) 2023-03-27 09:22:03 +08:00
dicarcab
ab843f7a55 fix(TBD-14951):OracleDB Migration task affecting DI Jobs (#6041) 2023-03-23 09:16:02 +01:00
jiezhang-tlnd
5949ce647d chore(TUP-38180)CVE-2022-45787,org.apache.james:apache-mime4j:0.6 (#6050) 2023-03-21 17:05:55 +08:00
hcyi
f9e7be104e fix(TUP-38139):context tab doesn't get updated after press 'undo'. (#6017) 2023-03-21 09:48:48 +08:00
sbliu
774e6dea26 Add localized files (#6051) (#6056)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-17 11:03:54 +08:00
Oleksandr Zhelezniak
3eccad0352 fix(TDI-31777): bump talendcsv (#5926) 2023-03-10 12:46:52 +02:00
kjwang
ada4bcf7e3 Fix TUP-38298 Can't edit the two default contexts in testcase (#6046)
* Fix TUP-38298 Can't edit the two default contexts in testcase
https://jira.talendforge.org/browse/TUP-38298
2023-03-10 17:39:34 +08:00
jiezhang-tlnd
7c72d190de Add localized files (#6040) (#6045)
Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-10 09:29:09 +08:00
jiezhang-tlnd
025cec4828 Add localized files (#6039)
* Add localized files

* Add localized files (#6038)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-03-09 18:20:50 +08:00
bhe-talendbj
91df21afcd feat(TUP-38202): Preference for repositories where the username and password can be set in the settings (Window > preferences > Talend > Update settings) of the Talend studio (#6032)
* feat(TUP-38202): Add p2 credential api

* feat(TUP-38202): add basic auth api

* feat(TUP-38202): add basic auth api

* feat(TUP-38202): add check for forbidden status code
2023-03-08 15:20:11 +08:00
Jane Ding
a3af2de13a feat(TUP-37093):Send Mapper data to PTP (#5982)
* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093

* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093

* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093
2023-03-08 11:11:00 +08:00
kjwang
5c6fd374f1 Kjwang/tup 35058 issues on tmc after publishing (#5954)
TUP-35058 Issues on TMC after publishing artifact with Int type parameter but string values
https://jira.talendforge.org/browse/TUP-35058
2023-03-07 16:45:17 +08:00
AlixMetivier-zz
c11aa42cee feat(TBD-13123): K8S with Livy (#5090)
* feat(TBD-13123): K8S with Livy

* fix for wizard

---------

Co-authored-by: unknown <ametivier@talend.com>
2023-03-03 11:03:33 +01:00
Jill Yan
5506094ec3 tcommon-studio-se/m80/APPINT-35365 (#6006)
* APPINT-35365 fix output flow empty

* APPINT-35365 fix output flow empty

* APPINT-35365 fix empty outflow name

* APPINT-35365 fix empty outflow name
2023-03-03 10:24:36 +08:00
sbliu
a0a7b7cc52 chore(TUP-37430) cleanup orgtalendlibraries (#5985)
* chore(TUP-37430) cleanup default group id org.talend.libraries

* remove extension of library needed

* recovery last removed 'librariesNeeded' extension for unit test

* revert , keep not changed

* revert for org.talend.libraries
2023-03-02 20:29:19 +08:00
sbliu
0a7eb0653f Add localized files (#6027) (#6028)
Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-02 20:03:44 +08:00
sbliu
baabcf9167 Add localized files (#6024) (#6026)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-02 17:46:06 +08:00
Jane Ding
d24160aaf7 Revert "fix(TUP-37227):Issue building when items names too long (#5905)" (#6023)
This reverts commit 6e88e334a3.
2023-03-02 15:59:50 +08:00
Emmanuel GALLOIS
ff42b63947 feat(TDI-49432): bump component-runtime to 1.54 (#5994) 2023-03-01 16:48:33 +01:00
kjwang
bc536f772e TUP-38032 [Studio 8.0]"Overwrite existing item" option is not display (#5983)
TUP-38032 [Studio 8.0]"Overwrite existing item" option is not display even increase the window height to maximum
https://jira.talendforge.org/browse/TUP-38032
2023-03-01 09:32:50 +08:00
Jane Ding
6e88e334a3 fix(TUP-37227):Issue building when items names too long (#5905)
* fix(TUP-37227):Issue building when items names too long (#5828)

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

Conflicts:
	main/plugins/org.talend.designer.maven.ui/src/main/java/messages.properties
2023-02-27 19:04:04 +08:00
Jane Ding
5b86f87d99 Add localized files (#6010) (#6011)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-02-24 16:46:50 +08:00
Jane Ding
11ff6ac63d fix(TUP-37569):Update Support>Documentation link with CLM link (#5979)
* fix(TUP-37569):Update Support>Documentation link with CLM link
https://jira.talendforge.org/browse/TUP-37569

* fix(TUP-37569):Update Support>Documentation link with CLM link
https://jira.talendforge.org/browse/TUP-37569
2023-02-24 16:22:00 +08:00
Jane Ding
a4679a906a fix(TUP-37568):Edits to the Help Contents menu (#5981)
* fix(TUP-37568):Edits to the Help Contents menu
https://jira.talendforge.org/browse/TUP-37568

* fix(TUP-37568):Edits to the Help Contents menu
https://jira.talendforge.org/browse/TUP-37568
2023-02-24 16:21:45 +08:00
Oleksandr Zhelezniak
a4a0bc0649 fix(TDI-49284): talend file enhanced (#5989) 2023-02-23 13:49:05 +02:00
jiezhang-tlnd
0709202ae3 fix(TUP-37874)SQL inject risk (#6007) 2023-02-23 15:13:12 +08:00
ypiel
899c5a03f6 Revert "chore(TDI-49432): bump component-runtime:1.54.0 (#6001)" (#6003)
This reverts commit 5e1bca282f.
2023-02-22 14:20:32 +01:00
ypiel
5e1bca282f chore(TDI-49432): bump component-runtime:1.54.0 (#6001) 2023-02-22 14:04:54 +01:00
jiezhang-tlnd
61a8ed2b73 fix(TUP-37874)SQL inject risk (#5955)
* fix(TUP-37874)SQL inject risk

* add back

* add back

* SQL inject risk
2023-02-22 18:17:19 +08:00
kjwang
ab88eda019 TUP-37176 SSO logs out way too often on the Studio (#5800)
* TUP-37176 SSO logs out way too often on the Studio
https://jira.talendforge.org/browse/TUP-37176
2023-02-22 17:35:43 +08:00
zyuan-talend
c4942af4b0 fix(TUP-35060): tWarn does not show the TalendDate.TO_CHAR method. (#5962) 2023-02-21 11:57:43 +08:00
Jane Ding
80ccccb407 Add localized files (#5995)
* Add localized files (#5986)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#5991)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-02-21 11:22:27 +08:00
hcyi
4063e6888b fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk. (#5925)
* fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk.

* fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk.
2023-02-21 09:57:27 +08:00
Colm O hEigeartaigh
54d1a85c1f TDI-49282 - maxDate in TalendDate is not validated (#5944) 2023-02-13 14:21:53 +08:00
Jane Ding
a2c23dd110 Add localized files (#5978)
* Add localized files (#5976)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#5977)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-02-10 09:44:10 +08:00
Zhiwei Xue
9e56acd4e5 feat(TUP-37353):Guess Schema for tBigQueryInput (#5953) 2023-02-09 17:00:24 +08:00
116 changed files with 2497 additions and 905 deletions

55
PATCH_RELEASE_NOTE.md Normal file
View File

@@ -0,0 +1,55 @@
---
version: 8.0.1
module: https://talend.poolparty.biz/coretaxonomy/42
product:
- https://talend.poolparty.biz/coretaxonomy/183
- https://talend.poolparty.biz/coretaxonomy/23
---
# TPS-5573
| Info | Value |
| ---------------- | ---------------- |
| Patch Name | Patch\_20231204\_TPS-5573\_v1-8.0.1 |
| Release date | 2023-12-04 |
| Target version | 20211109\_1610-8.0.1 |
| Product affected | Talend Studio |
## Introduction
This is a self-contained patch.
**NOTE**: For information on how to obtain this patch, reach out to your Support contact at Talend.
## Fixed issues
This patch contains the following fix:
- TDI-50317 [8.0.1] tFileInputPositional don't parse properly when pattern units field is set to Symbols
## Prerequisites
Consider the following requirements for your system:
- Must install Talend Studio 8.0.1 with the monthly released patch, Patch\_20230421\_R2023-04_v1-8.0.1.zip.
- Or must update the Talend Studio 8.0.1 with the URL, https://update.talend.com/Studio/8/updates/R2023-04/.
## Installation
Installation On Studio:
1. Shut down Talend studio if it is opened.
2. Extract the zip.
3. Merge the folder "plugins" and its content to "{studio}/plugins" and overwrite the existing files.
4. remove the folder "{studio}/configuration/org.eclipse.osgi".
5. Start the Talend studio.
6. Rebuild your jobs.
Installation On CI:
1. put the patch in a location that can be reached in CI environment.
2. copy the patch to <product.path>/patches folder between executions of org.talend.ci:builder-maven-plugin:8.0.x:install and org.talend.ci:builder-maven-plugin:8.0.x:generateAllPoms command.
3. if it's an automation task for CI/CD, use scripts to do the copy action.
4. Run the CI/CD task.

View File

@@ -5,7 +5,6 @@
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
<license url="http://www.example.com/license">[Enter License Description here.]</license>
<requires>
<import plugin="org.bouncycastle.bcprov" version="1.70.0" match="greaterOrEqual"/>
<import plugin="com.cedarsoftware.json-io" version="0.0.0" match="greaterOrEqual"/>
<import plugin="com.fasterxml.jackson.core.jackson-annotations" version="2.9.0" match="greaterOrEqual"/>
<import plugin="com.fasterxml.jackson.core.jackson-core" version="2.9.8" match="greaterOrEqual"/>

View File

@@ -37,6 +37,8 @@ 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 ERROR_FONT_COLOR = new Color(null, new RGB(255, 0, 0));// 255
static final Color VERTICAL_SEPERATOR_LINE_COLOR = new Color(null, 162, 179, 195);
@@ -55,12 +57,17 @@ public interface ColorConstants {
static Color getTableBackgroundColor() {
return ITalendThemeService.getColor(ColorConstants.BUNDLE_ID_COMMON_UI_RUNTIME, ColorConstants.KEY_TABLE_BACKGROUND)
.orElse(WHITE_COLOR);
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
}
static Color getTableForegroundColor() {
return ITalendThemeService.getColor(ColorConstants.BUNDLE_ID_COMMON_UI_RUNTIME, ColorConstants.KEY_TABLE_FOREGROUND)
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
}
static Color getTableReadOnlyForegroundColor() {
return ITalendThemeService.getColor("CONTEXT_TABLE_READONLY_FOREGROUND")
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
}
}

View File

@@ -15,6 +15,7 @@ package org.talend.commons.ui.runtime;
import java.util.Optional;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.graphics.Color;
import org.osgi.framework.BundleContext;
@@ -29,6 +30,8 @@ public interface ITalendThemeService {
public static String DEFAULT_PREFERENCE_ID = "org.eclipse.ui.workbench";
public static String THEME_PREFERENCE_ID = "org.eclipse.e4.ui.css.swt.theme";
/**
* Get color from instance scope preference of default bundleId, which managed by theme; the standard way eclipse
* uses
@@ -132,6 +135,8 @@ public interface ITalendThemeService {
void removePropertyChangeListenerFor(String bundleId, IPropertyChangeListener listener);
IPreferenceStore getThemePreferenceStore();
static ITalendThemeService get() {
try {
BundleContext bc = FrameworkUtil.getBundle(ITalendThemeService.class).getBundleContext();

View File

@@ -96,7 +96,7 @@ ProposalUtils.CtrlProposal.ErrorMsg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u5236\u
RemovePushButton.RemoveButton.Tip=\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u524A\u9664
ResetDBTypesButton.ResetDBTypesButton.Tip=DB\u30BF\u30A4\u30D7\u3092\u30EA\u30BB\u30C3\u30C8
Rule.rule=\u30EB\u30FC\u30EB[{0}]
SaveAsGenericSchemaPushButton.saveAsSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SaveAsGenericSchemaPushButton.saveAsSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SelectContextVariablesPushButton.Label=\u30B3\u30F3\u30C6\u30AF\u30B9\u30C8\u5909\u6570\u3092\u9078\u629E
SWTCalendarWithTime.contentEvening=\u5915\u65B9
SWTCalendarWithTime.contentHr=\u6642:

View File

@@ -36,6 +36,11 @@ public final class CommonExceptionHandler {
Priority priority = getPriority(ex);
process(ex, priority);
}
public static void process(Throwable ex, String msg) {
Priority priority = getPriority(ex);
process(ex, msg, priority);
}
public static void process(Throwable ex, Priority priority) {
String message = ex.getMessage();
@@ -43,6 +48,13 @@ public final class CommonExceptionHandler {
log.log(priority, message, ex);
}
public static void process(Throwable ex, String msg, Priority priority) {
String message = ex.getMessage() + ": " + msg;
log.log(priority, message, ex);
}
public static void log(String message) {
log.log(Level.INFO, message);

View File

@@ -0,0 +1,85 @@
// ============================================================================
//
// Copyright (C) 2006-2023 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.runtime.model.emf;
import java.util.Iterator;
import java.util.Map;
import java.util.StringJoiner;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.xmi.XMLHelper;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.XMLSave;
import org.eclipse.emf.ecore.xmi.impl.XMISaveImpl;
import org.eclipse.emf.ecore.xmi.impl.XMLString;
/**
* DOC jding class global comment. Detailled comment
*/
public class CustomXMIResource extends TalendXMIResource {
public static final String ENCODING = "UTF-8"; //$NON-NLS-1$
CustomXMISave xmiSave;
public CustomXMIResource() {
super();
}
public CustomXMIResource(URI uri) {
super(uri);
}
@Override
protected void init() {
super.init();
encoding = ENCODING;
}
@Override
protected XMLSave createXMLSave() {
xmiSave = new CustomXMISave(createXMLHelper());
return xmiSave;
}
public String getResourceContent(Map<?, ?> options) {
if (xmiSave == null) {
createXMLSave();
}
return xmiSave.getXMLContent(this, options);
}
}
class CustomXMISave extends XMISaveImpl {
public CustomXMISave(XMLHelper helper) {
super(helper);
}
public String getXMLContent(XMLResource resource, Map<?, ?> options) {
StringJoiner strJoin = new StringJoiner("");
super.init(resource, options);
super.traverse(resource.getContents());
XMLString xmlString = this.doc;
Iterator<String> iterator = xmlString.stringIterator();
while (iterator.hasNext()) {
String string = (String) iterator.next();
if (string != null) {
strJoin.add(string);
}
}
return strJoin.toString();
}
}

View File

@@ -16,6 +16,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -263,4 +264,12 @@ public class EmfHelper {
return result;
}
public static String getEmfModelContent(EObject model) throws Exception {
String content = "";
CustomXMIResource xmiResource = new CustomXMIResource();
xmiResource.getContents().add(model);
content = xmiResource.getResourceContent(Collections.EMPTY_MAP);
return content;
}
}

View File

@@ -33,6 +33,7 @@ import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.runtime.utils.io.FileCopyUtils;
@@ -108,6 +109,7 @@ public class NetworkUtil {
return true;
}
} catch (Exception e) {
CommonExceptionHandler.process(e, getCheckUrl());
return false;
} finally {
conn.disconnect();
@@ -144,6 +146,7 @@ public class NetworkUtil {
conn.setRequestMethod("HEAD"); //$NON-NLS-1$
conn.getResponseMessage();
} catch (Exception e) {
CommonExceptionHandler.process(e, urlString);
// if not reachable , will throw exception(time out/unknown host) .So if catched exception, make it a
// invalid server
return false;

View File

@@ -92,7 +92,7 @@ ProposalUtils.CtrlProposal.ErrorMsg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u5236\u
RemovePushButton.RemoveButton.Tip=\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u524A\u9664
ResetDBTypesButton.ResetDBTypesButton.Tip=DB\u30BF\u30A4\u30D7\u3092\u30EA\u30BB\u30C3\u30C8
Rule.rule=\u30EB\u30FC\u30EB[{0}]
SaveAsGenericSchemaPushButton.saveAsSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SaveAsGenericSchemaPushButton.saveAsSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SelectContextVariablesPushButton.Label=\u30B3\u30F3\u30C6\u30AF\u30B9\u30C8\u5909\u6570\u3092\u9078\u629E
SWTCalendarWithTime.contentEvening=\u5915\u65B9
SWTCalendarWithTime.contentHr=\u6642:

View File

@@ -18,12 +18,12 @@ import java.util.Iterator;
import java.util.Map;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.StringConverter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.runtime.ITalendThemeService;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
/**
@@ -33,7 +33,7 @@ import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
*
*/
public class ColorManager {
public static final RGB DEFAULT_STRING_COLOR = new RGB(0, 0, 0);
public static final RGB DEFAULT_KEYWORD1_COLOR = new RGB(50, 32, 160);
@@ -106,15 +106,19 @@ public class ColorManager {
}
public Color getColor(String colorName) {
RGB prefColor = PreferenceConverter.getColor(store, colorName);
Color color = null;
if (colorMap.containsKey(colorName) && (colorMap.get(colorName)).getRGB().equals(prefColor)) {
color = (Color) colorMap.get(colorName);
Color prefColor = getThemeColor(colorName);
if (colorMap.containsKey(colorName) && (colorMap.get(colorName)).equals(prefColor)) {
return colorMap.get(colorName);
} else {
color = new Color(Display.getDefault(), prefColor);
colorMap.put(colorName, color);
colorMap.put(colorName, prefColor);
}
return color;
return prefColor;
}
private static Color getThemeColor(String colorName) {
Color c = ITalendThemeService.getColor(colorName)
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
return c;
}
public void dispose() {
@@ -164,20 +168,20 @@ public class ColorManager {
}
public static void initDefaultColors(IPreferenceStore store) {
store.setDefault(NULL_COLOR, StringConverter.asString(DEFAULT_STRING_COLOR));
store.setDefault(COMMENT1_COLOR, StringConverter.asString(DEFAULT_COMMENT1_COLOR));
store.setDefault(COMMENT2_COLOR, StringConverter.asString(DEFAULT_COMMENT2_COLOR));
store.setDefault(LITERAL1_COLOR, StringConverter.asString(DEFAULT_LITERAL1_COLOR));
store.setDefault(LITERAL2_COLOR, StringConverter.asString(DEFAULT_LITERAL2_COLOR));
store.setDefault(LABEL_COLOR, StringConverter.asString(DEFAULT_LABEL_COLOR));
store.setDefault(KEYWORD1_COLOR, StringConverter.asString(DEFAULT_KEYWORD1_COLOR));
store.setDefault(KEYWORD2_COLOR, StringConverter.asString(DEFAULT_KEYWORD2_COLOR));
store.setDefault(KEYWORD3_COLOR, StringConverter.asString(DEFAULT_KEYWORD3_COLOR));
store.setDefault(FUNCTION_COLOR, StringConverter.asString(DEFAULT_FUNCTION_COLOR));
store.setDefault(MARKUP_COLOR, StringConverter.asString(DEFAULT_MARKUP_COLOR));
store.setDefault(OPERATOR_COLOR, StringConverter.asString(DEFAULT_OPERATOR_COLOR));
store.setDefault(DIGIT_COLOR, StringConverter.asString(DEFAULT_DIGIT_COLOR));
store.setDefault(INVALID_COLOR, StringConverter.asString(DEFAULT_INVALID_COLOR));
store.setDefault(NULL_COLOR, StringConverter.asString(getThemeColor(NULL_COLOR).getRGB()));
store.setDefault(COMMENT1_COLOR, StringConverter.asString(getThemeColor(COMMENT1_COLOR).getRGB()));
store.setDefault(COMMENT2_COLOR, StringConverter.asString(getThemeColor(COMMENT2_COLOR).getRGB()));
store.setDefault(LITERAL1_COLOR, StringConverter.asString(getThemeColor(LITERAL1_COLOR).getRGB()));
store.setDefault(LITERAL2_COLOR, StringConverter.asString(getThemeColor(LITERAL2_COLOR).getRGB()));
store.setDefault(LABEL_COLOR, StringConverter.asString(getThemeColor(LABEL_COLOR).getRGB()));
store.setDefault(KEYWORD1_COLOR, StringConverter.asString(getThemeColor(KEYWORD1_COLOR).getRGB()));
store.setDefault(KEYWORD2_COLOR, StringConverter.asString(getThemeColor(KEYWORD2_COLOR).getRGB()));
store.setDefault(KEYWORD3_COLOR, StringConverter.asString(getThemeColor(KEYWORD3_COLOR).getRGB()));
store.setDefault(FUNCTION_COLOR, StringConverter.asString(getThemeColor(FUNCTION_COLOR).getRGB()));
store.setDefault(MARKUP_COLOR, StringConverter.asString(getThemeColor(MARKUP_COLOR).getRGB()));
store.setDefault(OPERATOR_COLOR, StringConverter.asString(getThemeColor(OPERATOR_COLOR).getRGB()));
store.setDefault(DIGIT_COLOR, StringConverter.asString(getThemeColor(DIGIT_COLOR).getRGB()));
store.setDefault(INVALID_COLOR, StringConverter.asString(getThemeColor(INVALID_COLOR).getRGB()));
String bold = BOLD_SUFFIX;
store.setDefault(COMMENT1_COLOR + bold, false);

View File

@@ -1,368 +1,384 @@
// ============================================================================
//
// 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.colorstyledtext;
import java.util.ArrayList;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ExtendedModifyEvent;
import org.eclipse.swt.custom.ExtendedModifyListener;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Mode;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Modes;
import org.talend.commons.ui.swt.colorstyledtext.rules.CToken;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
import org.talend.commons.utils.threading.ExecutionLimiter;
/**
* This component is an adaptation of a Color Editor for a StyledText.
*
* The original editor can be found on http://www.gstaff.org/colorEditor/ <br/>
*
* <b>How to use it, example :</b> <br/>
* ColorStyledText text = new ColorStyledText(parent, SWT.H_SCROLL | SWT.V_SCROLL,
* CorePlugin.getDefault().getPreferenceStore(), ECodeLanguage.PERL.getName());</i> <br/>
* <br/>
*
* $Id: ColorStyledText.java 7183 2007-11-23 11:03:36Z amaumont $
*
*/
public class ColorStyledText extends StyledText {
private final static int MAXIMUM_CHARACTERS_BEFORE_USE_TIMER = 1000;
private final ColorManager colorManager;
private final ColoringScanner scanner;
private final String languageMode;
private final MenuItem pasteItem;
private boolean coloring = true;
private UndoRedoManager undoRedoManager;
public ColorStyledText(Composite parent, int style, IPreferenceStore store, String languageMode) {
super(parent, style);
this.languageMode = languageMode;
this.colorManager = new ColorManager(store);
/*
* set the Shortcuts of the undo/redo
*/
this.setKeyBinding('Z' | SWT.CTRL, ActionCode.UNDO);
this.setKeyBinding('Y' | SWT.CTRL, ActionCode.REDO);
UndoRedoManager undoManager = new UndoRedoManager(50);
undoManager.connect(this);
this.setUndoManager(undoManager);
ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
Menu popupMenu = new Menu(this);
MenuItem redoItem = new MenuItem(popupMenu, SWT.PUSH);
redoItem.setText(Messages.getString("ColorStyledText.RedoItem.Text")); //$NON-NLS-1$
redoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
redo();
}
});
MenuItem undoItem = new MenuItem(popupMenu, SWT.PUSH);
undoItem.setText(Messages.getString("ColorStyledText.UndoItem.Text")); //$NON-NLS-1$
undoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
undo();
}
});
Image image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
copyItem.setText(Messages.getString("ColorStyledText.CopyItem.Text")); //$NON-NLS-1$
copyItem.setImage(image);
copyItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
copy();
}
});
image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
pasteItem = new MenuItem(popupMenu, SWT.PUSH);
pasteItem.setText(Messages.getString("ColorStyledText.PasteItem.Text")); //$NON-NLS-1$
pasteItem.setData(this);
pasteItem.setImage(image);
pasteItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
paste();
}
});
pasteItem.setEnabled(getEditable());
this.setMenu(popupMenu);
MenuItem selectAllItem = new MenuItem(popupMenu, SWT.PUSH);
selectAllItem.setText(Messages.getString("ColorStyledText.SelectAllItem.Text")); //$NON-NLS-1$
selectAllItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
selectAll();
}
});
this.setMenu(popupMenu);
Listener selectAllListener = new Listener() {
public void handleEvent(Event event) {
if (event.character == '\u0001') { // CTRL + A
selectAll();
}
}
};
addListener(SWT.KeyDown, selectAllListener);
Mode mode = Modes.getMode(languageMode + XmlUtil.FILE_XML_SUFFIX);
scanner = new ColoringScanner(mode, colorManager);
addExtendedModifyListener(modifyListener);
}
/**
* DOC qli Comment method "invokeAction".
*
* @param action
*
* */
public void invokeAction(int action) {
super.invokeAction(action);
switch (action) {
case ActionCode.UNDO:
undo(); // ctrl+Z
break;
case ActionCode.REDO:
redo(); // ctrl+Y
break;
}
}
/**
* Getter for undoRedoManager.
*
* @return the undoRedoManager
*/
public UndoRedoManager getUndoManager() {
return this.undoRedoManager;
}
/**
* Sets the undoRedoManager.
*
* @param undoRedoManager the undoRedoManager to set
*/
public void setUndoManager(UndoRedoManager undoRedoManager) {
this.undoRedoManager = undoRedoManager;
}
public static class ActionCode {
public static final int UNDO = Integer.MAX_VALUE;
public static final int REDO = UNDO - 1;
}
private void undo() {
if (undoRedoManager != null) {
undoRedoManager.undo();
}
}
private void redo() {
if (undoRedoManager != null) {
undoRedoManager.redo();
}
}
protected void colorize(final ColoringScanner scanner) {
final ArrayList<StyleRange> styles = new ArrayList<StyleRange>();
if (this.coloring) {
IToken token;
if (this.isDisposed()) {
return;
}
scanner.parse(this.getText().replaceAll("\"", " ").replaceAll("'", " ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
do {
token = scanner.nextToken();
if (!token.isEOF()) {
if (token instanceof CToken) {
CToken ctoken = (CToken) token;
StyleRange styleRange;
styleRange = new StyleRange();
styleRange.start = scanner.getTokenOffset();
styleRange.length = scanner.getTokenLength();
if (ctoken.getType() == null) {
styleRange.fontStyle = colorManager.getStyleFor(ctoken.getColor());
styleRange.foreground = colorManager.getColor(ctoken.getColor());
} else {
styleRange.fontStyle = colorManager.getStyleForType(ctoken.getColor());
styleRange.foreground = colorManager.getColorForType(ctoken.getColor());
}
styles.add(styleRange);
}
}
} while (!token.isEOF());
setStyles(styles);
} else {
StyleRange styleRange = new StyleRange();
styles.add(styleRange);
styleRange.start = 0;
styleRange.length = this.getText().getBytes().length;
styleRange.foreground = null;
setStyles(styles);
}
}
public void setStyles(final ArrayList<StyleRange> styles) {
if (ColorStyledText.this.isDisposed()) {
return;
}
int countChars = getCharCount();
for (int i = 0; i < styles.size(); i++) {
StyleRange styleRange = styles.get(i);
// System.out.println("styleRange.start=" + styleRange.start);
// System.out.println("styleRange.length=" + styleRange.length);
if (!(0 <= styleRange.start && styleRange.start + styleRange.length <= countChars)) {
continue;
}
setStyleRange(styleRange);
}
}
ExtendedModifyListener modifyListener = new ExtendedModifyListener() {
public void modifyText(ExtendedModifyEvent event) {
if (ColorStyledText.this.getCharCount() > MAXIMUM_CHARACTERS_BEFORE_USE_TIMER) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
} else {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
public ColorManager getColorManager() {
return this.colorManager;
}
public String getLanguageMode() {
return this.languageMode;
}
public ColoringScanner getScanner() {
return this.scanner;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.custom.StyledText#setEditable(boolean)
*/
@Override
public void setEditable(boolean editable) {
super.setEditable(editable);
if (pasteItem != null) {
pasteItem.setEnabled(editable);
}
}
/**
* Getter for coloring.
*
* @return the coloring
*/
public boolean isColoring() {
return this.coloring;
}
/**
* Sets the coloring.
*
* @param coloring the coloring to set
*/
public void setColoring(boolean coloring) {
boolean wasDifferent = this.coloring != coloring;
this.coloring = coloring;
if (!coloring) {
removeExtendedModifyListener(modifyListener);
} else if (wasDifferent) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
addExtendedModifyListener(modifyListener);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
@Override
public void dispose() {
super.dispose();
colorManager.dispose();
}
private final ExecutionLimiter colorizeLimiter = new ExecutionLimiter(1000, true) {
@Override
public void execute(final boolean isFinalExecution, Object data) {
if (!isDisposed()) {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
}
// ============================================================================
//
// 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.colorstyledtext;
import java.util.ArrayList;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ExtendedModifyEvent;
import org.eclipse.swt.custom.ExtendedModifyListener;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.ui.runtime.ITalendThemeService;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Mode;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Modes;
import org.talend.commons.ui.swt.colorstyledtext.rules.CToken;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
import org.talend.commons.utils.threading.ExecutionLimiter;
/**
* This component is an adaptation of a Color Editor for a StyledText.
*
* The original editor can be found on http://www.gstaff.org/colorEditor/ <br/>
*
* <b>How to use it, example :</b> <br/>
* ColorStyledText text = new ColorStyledText(parent, SWT.H_SCROLL | SWT.V_SCROLL,
* CorePlugin.getDefault().getPreferenceStore(), ECodeLanguage.PERL.getName());</i> <br/>
* <br/>
*
* $Id: ColorStyledText.java 7183 2007-11-23 11:03:36Z amaumont $
*
*/
public class ColorStyledText extends StyledText {
public static final String PREFERENCE_COLOR_FOREGROUND= "ColorStyledText.Color.Foreground"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_BACKGROUND= "ColorStyledText.Color.Background"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_SELECTION_FOREGROUND= "ColorStyledText.Color.SelectionForeground"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_SELECTION_BACKGROUND= "ColorStyledText.Color.SelectionBackground"; //$NON-NLS-1$
private final static int MAXIMUM_CHARACTERS_BEFORE_USE_TIMER = 1000;
private final ColorManager colorManager;
private final ColoringScanner scanner;
private final String languageMode;
private final MenuItem pasteItem;
private boolean coloring = true;
private UndoRedoManager undoRedoManager;
public ColorStyledText(Composite parent, int style, IPreferenceStore store, String languageMode) {
super(parent, style);
this.languageMode = languageMode;
this.colorManager = new ColorManager(store);
/*
* set the Shortcuts of the undo/redo
*/
this.setKeyBinding('Z' | SWT.CTRL, ActionCode.UNDO);
this.setKeyBinding('Y' | SWT.CTRL, ActionCode.REDO);
UndoRedoManager undoManager = new UndoRedoManager(50);
undoManager.connect(this);
this.setUndoManager(undoManager);
ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
Menu popupMenu = new Menu(this);
MenuItem redoItem = new MenuItem(popupMenu, SWT.PUSH);
redoItem.setText(Messages.getString("ColorStyledText.RedoItem.Text")); //$NON-NLS-1$
redoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
redo();
}
});
MenuItem undoItem = new MenuItem(popupMenu, SWT.PUSH);
undoItem.setText(Messages.getString("ColorStyledText.UndoItem.Text")); //$NON-NLS-1$
undoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
undo();
}
});
Image image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
copyItem.setText(Messages.getString("ColorStyledText.CopyItem.Text")); //$NON-NLS-1$
copyItem.setImage(image);
copyItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
copy();
}
});
image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
pasteItem = new MenuItem(popupMenu, SWT.PUSH);
pasteItem.setText(Messages.getString("ColorStyledText.PasteItem.Text")); //$NON-NLS-1$
pasteItem.setData(this);
pasteItem.setImage(image);
pasteItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
paste();
}
});
pasteItem.setEnabled(getEditable());
this.setMenu(popupMenu);
MenuItem selectAllItem = new MenuItem(popupMenu, SWT.PUSH);
selectAllItem.setText(Messages.getString("ColorStyledText.SelectAllItem.Text")); //$NON-NLS-1$
selectAllItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
selectAll();
}
});
this.setMenu(popupMenu);
Listener selectAllListener = new Listener() {
public void handleEvent(Event event) {
if (event.character == '\u0001') { // CTRL + A
selectAll();
}
}
};
addListener(SWT.KeyDown, selectAllListener);
Mode mode = Modes.getMode(languageMode + XmlUtil.FILE_XML_SUFFIX);
scanner = new ColoringScanner(mode, colorManager);
addExtendedModifyListener(modifyListener);
initColorSetting();
}
protected void initColorSetting() {
this.setForeground(ITalendThemeService.getColor(PREFERENCE_COLOR_FOREGROUND).orElse(null));
this.setBackground(ITalendThemeService.getColor(PREFERENCE_COLOR_BACKGROUND).orElse(null));
this.setSelectionBackground(ITalendThemeService.getColor(PREFERENCE_COLOR_SELECTION_BACKGROUND).orElse(null));
this.setSelectionForeground(ITalendThemeService.getColor(PREFERENCE_COLOR_SELECTION_FOREGROUND).orElse(null));
}
/**
* DOC qli Comment method "invokeAction".
*
* @param action
*
* */
public void invokeAction(int action) {
super.invokeAction(action);
switch (action) {
case ActionCode.UNDO:
undo(); // ctrl+Z
break;
case ActionCode.REDO:
redo(); // ctrl+Y
break;
}
}
/**
* Getter for undoRedoManager.
*
* @return the undoRedoManager
*/
public UndoRedoManager getUndoManager() {
return this.undoRedoManager;
}
/**
* Sets the undoRedoManager.
*
* @param undoRedoManager the undoRedoManager to set
*/
public void setUndoManager(UndoRedoManager undoRedoManager) {
this.undoRedoManager = undoRedoManager;
}
public static class ActionCode {
public static final int UNDO = Integer.MAX_VALUE;
public static final int REDO = UNDO - 1;
}
private void undo() {
if (undoRedoManager != null) {
undoRedoManager.undo();
}
}
private void redo() {
if (undoRedoManager != null) {
undoRedoManager.redo();
}
}
protected void colorize(final ColoringScanner scanner) {
final ArrayList<StyleRange> styles = new ArrayList<StyleRange>();
if (this.coloring) {
IToken token;
if (this.isDisposed()) {
return;
}
scanner.parse(this.getText().replaceAll("\"", " ").replaceAll("'", " ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
do {
token = scanner.nextToken();
if (!token.isEOF()) {
if (token instanceof CToken) {
CToken ctoken = (CToken) token;
StyleRange styleRange;
styleRange = new StyleRange();
styleRange.start = scanner.getTokenOffset();
styleRange.length = scanner.getTokenLength();
if (ctoken.getType() == null) {
styleRange.fontStyle = colorManager.getStyleFor(ctoken.getColor());
styleRange.foreground = colorManager.getColor(ctoken.getColor());
} else {
styleRange.fontStyle = colorManager.getStyleForType(ctoken.getColor());
styleRange.foreground = colorManager.getColorForType(ctoken.getColor());
}
styles.add(styleRange);
}
}
} while (!token.isEOF());
setStyles(styles);
} else {
StyleRange styleRange = new StyleRange();
styles.add(styleRange);
styleRange.start = 0;
styleRange.length = this.getText().getBytes().length;
styleRange.foreground = null;
setStyles(styles);
}
}
public void setStyles(final ArrayList<StyleRange> styles) {
if (ColorStyledText.this.isDisposed()) {
return;
}
int countChars = getCharCount();
for (int i = 0; i < styles.size(); i++) {
StyleRange styleRange = styles.get(i);
// System.out.println("styleRange.start=" + styleRange.start);
// System.out.println("styleRange.length=" + styleRange.length);
if (!(0 <= styleRange.start && styleRange.start + styleRange.length <= countChars)) {
continue;
}
setStyleRange(styleRange);
}
}
ExtendedModifyListener modifyListener = new ExtendedModifyListener() {
public void modifyText(ExtendedModifyEvent event) {
if (ColorStyledText.this.getCharCount() > MAXIMUM_CHARACTERS_BEFORE_USE_TIMER) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
} else {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
public ColorManager getColorManager() {
return this.colorManager;
}
public String getLanguageMode() {
return this.languageMode;
}
public ColoringScanner getScanner() {
return this.scanner;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.custom.StyledText#setEditable(boolean)
*/
@Override
public void setEditable(boolean editable) {
super.setEditable(editable);
if (pasteItem != null) {
pasteItem.setEnabled(editable);
}
}
/**
* Getter for coloring.
*
* @return the coloring
*/
public boolean isColoring() {
return this.coloring;
}
/**
* Sets the coloring.
*
* @param coloring the coloring to set
*/
public void setColoring(boolean coloring) {
boolean wasDifferent = this.coloring != coloring;
this.coloring = coloring;
if (!coloring) {
removeExtendedModifyListener(modifyListener);
} else if (wasDifferent) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
addExtendedModifyListener(modifyListener);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
@Override
public void dispose() {
super.dispose();
colorManager.dispose();
}
private final ExecutionLimiter colorizeLimiter = new ExecutionLimiter(1000, true) {
@Override
public void execute(final boolean isFinalExecution, Object data) {
if (!isDisposed()) {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
}

View File

@@ -16,8 +16,10 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ICellEditorListener;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Text;
import org.talend.commons.ui.runtime.ColorConstants;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.swt.tableviewer.data.ModifiedObjectInfo;
import org.talend.commons.ui.runtime.thread.AsynchronousThreading;
@@ -39,6 +41,8 @@ public abstract class DialogErrorForCellEditorListener implements ICellEditorLis
protected TableViewerCreatorColumn column;
protected TableViewerCreator tableViewerCreator;
private Color tableBackground = ColorConstants.getTableBackgroundColor();
/**
* DOC amaumont CellEditorListener constructor comment.
@@ -89,7 +93,7 @@ public abstract class DialogErrorForCellEditorListener implements ICellEditorLis
final String errorMessage = validateValue(newValue, beanPosition);
if (errorMessage == null) {
newValidValueTyped(beanPosition, lastValidValue, newValue, state);
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_WHITE));
text.setBackground(tableBackground);
lastValidValue = newValue;
} else {
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_RED));

View File

@@ -31,6 +31,7 @@ import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.gmf.util.DisplayUtils;
import org.talend.commons.ui.runtime.ITalendThemeService;
/**
* Figure managing some simple HTML styles. <br/>
@@ -77,6 +78,8 @@ public class SimpleHtmlFigure extends Figure {
private static Font boldFont = null;
private static Font boldItalicFont = null;
private static final Color DEFAULT_LABEL_COLOR = ITalendThemeService.getColor("NODE_FIGURE_LABEL_FORCEGROUND").orElse(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
/**
* Constructs a new SimpleHtmlFigure.
@@ -262,6 +265,8 @@ public class SimpleHtmlFigure extends Figure {
label.setFont(fontToUse);
if (colorStack.size() > 0) {
label.setForegroundColor(colorStack.get(colorStack.size() - 1));
} else {
label.setForegroundColor(DEFAULT_LABEL_COLOR); // Set label default foreground color
}
horizContainer.add(label);
}

View File

@@ -204,3 +204,4 @@ RenameFolderAction.warning.cannotFind.title=Action not available
ConvertJobsUtil.warning.title=Warning
ConvertJobsUtil.warning.message=The target framework is not fully supported for this release.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=Create stats log and implicit parameters
WizardPageAPIDefinition_operationIdMissing=API is missing operationIds. operationIds are used to initialize tRESTRequest/cRest output flows. See tRESTRequest/cRest online help.

View File

@@ -204,3 +204,4 @@ RenameFolderAction.warning.cannotFind.title=Action non disponible
ConvertJobsUtil.warning.title=Avertissement
ConvertJobsUtil.warning.message=Le framework cible n'est pas totalement support\u00E9 dans cette version.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=Cr\u00E9er des logs de stat et des param\u00E8tres implicites.
WizardPageAPIDefinition_operationIdMissing=Des operationIds manquent dans l'API. Ces operationIds sont utilis\u00E9s pour initialiser les flux de sortie du tRESTRequest/cRest. Consultez l'aide en ligne des composants tRESTRequest/cRest.

View File

@@ -156,7 +156,7 @@ ProjectRepositoryNode.invalidItem=\u7121\u52B9\u306A\u30A2\u30A4\u30C6\u30E0
ProjectRepositoryNode.columns=\u30AB\u30E9\u30E0
ProjectRepositoryNode.validationRules=\u691C\u8A3C\u30EB\u30FC\u30EB
ProjectRepositoryNode.cdcFoundation=CDC Foundation
ProjectRepositoryNode.genericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.genericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.queries=\u30AF\u30A8\u30EA\u30FC
ProjectRepositoryNode.synonymSchemas=\u30B7\u30CE\u30CB\u30E0\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.calculationViewSchemas=\u8A08\u7B97\u30D3\u30E5\u30FC\u30B9\u30AD\u30FC\u30DE
@@ -204,3 +204,4 @@ RenameFolderAction.warning.cannotFind.title=\u4F7F\u7528\u3067\u304D\u306A\u3044
ConvertJobsUtil.warning.title=\u8B66\u544A
ConvertJobsUtil.warning.message=\u3053\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u306F\u3001\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF\u304C\u5B8C\u5168\u306B\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=\u7D71\u8A08\u30ED\u30B0\u3068\u6697\u9ED9\u7684\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u4F5C\u6210
WizardPageAPIDefinition_operationIdMissing=API\u3067operationIds\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002operationIds\u306F\u3001tRESTRequest/cRest\u51FA\u529B\u30D5\u30ED\u30FC\u3092\u521D\u671F\u5316\u3059\u308B\u305F\u3081\u306B\u4F7F\u308F\u308C\u307E\u3059\u3002tRESTRequest/cRest\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002

View File

@@ -204,3 +204,4 @@ RenameFolderAction.warning.cannotFind.title=\u64CD\u4F5C\u4E0D\u53EF\u7528
ConvertJobsUtil.warning.title=\u8B66\u544A
ConvertJobsUtil.warning.message=\u6B64\u7248\u672C\u4E0D\u5B8C\u5168\u652F\u6301\u76EE\u6807\u6846\u67B6.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=\u521B\u5EFA\u7EDF\u8BA1\u65E5\u5FD7\u548C\u9690\u5F0F\u53C2\u6570
WizardPageAPIDefinition_operationIdMissing=API \u7F3A\u5931 operationId \u53C2\u6570\uFF0C\u8FD9\u4E9B operationId \u53C2\u6570\u7528\u6765\u521D\u59CB\u5316 tRESTRequest \u6216 cRest \u8F93\u51FA\u6D41\u3002\u8BF7\u53C2\u89C1 tRESTRequest \u6216 cRest \u5728\u7EBF\u5E2E\u52A9\u6587\u6863\u3002

View File

@@ -240,14 +240,14 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
return singleton;
}
private ICoreService getCoreService() {
public ICoreService getCoreService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
return GlobalServiceRegister.getDefault().getService(ICoreService.class);
}
return null;
}
private IRunProcessService getRunProcessService() {
public IRunProcessService getRunProcessService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRunProcessService.class)) {
return GlobalServiceRegister.getDefault().getService(IRunProcessService.class);
}
@@ -352,7 +352,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
* @param project
* @throws LoginException
*/
private void checkProjectCompatibility(Project project) throws LoginException {
public void checkProjectCompatibility(Project project) throws LoginException {
IMigrationToolService migrationToolService = GlobalServiceRegister.getDefault().getService(
IMigrationToolService.class);
// update migration system.
@@ -1849,7 +1849,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
* @param project
* @throws PersistenceException
*/
private void emptyTempFolder(Project project) throws PersistenceException {
public void emptyTempFolder(Project project) throws PersistenceException {
try {
String str = SharedStudioUtils.getTempFolderPath().toPortableString();
FilesUtils.deleteFolder(new File(str), false);
@@ -2528,7 +2528,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
}
}
private void checkReferenceProjectsProblems(Project project) throws BusinessException, PersistenceException {
public void checkReferenceProjectsProblems(Project project) throws BusinessException, PersistenceException {
if (ReferenceProjectProblemManager.getInstance().getAllInvalidProjectReferenceSet().size() > 0) {
StringBuffer sb = new StringBuffer();
for (String technicalLabel : ReferenceProjectProblemManager.getInstance().getAllInvalidProjectReferenceSet()) {
@@ -3026,4 +3026,11 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
this.repositoryFactoryFromProvider.saveProject(project);
}
public void setCancelled(boolean cancelled) {
this.isCancelled = cancelled;
}
public boolean isCancelled() {
return this.isCancelled;
}
}

View File

@@ -139,3 +139,5 @@ Bundle-ClassPath: .,
lib/delight-rhino-sandbox-0.0.15.jar,
lib/rhino-1.7.13.jar
Eclipse-RegisterBuddy: org.talend.testutils
Import-Package: org.eclipse.equinox.p2.repository,
org.eclipse.equinox.security.storage

View File

@@ -366,7 +366,57 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_DATABRICKS_RUNTIME_VERSION="CONN_PARA_KEY_DATABRICKS_RUNTIME_VERSION";
public static final String CONN_PARA_KEY_DATABRICKS_DBFS_DEP_FOLDER="CONN_PARA_KEY_DATABRICKS_DBFS_DEP_FOLDER";
/**kubernetes*/
public static final String CONN_PARA_KEY_K8S_SUBMIT_MODE="CONN_PARA_KEY_K8S_SUBMIT_MODE";
public static final String CONN_PARA_KEY_K8S_MASTER="CONN_PARA_KEY_K8S_MASTER";
public static final String CONN_PARA_KEY_K8S_INSTANCES="CONN_PARA_KEY_K8S_INSTANCES";
public static final String CONN_PARA_KEY_K8S_REGISTRYSECRET_CHECK="CONN_PARA_KEY_K8S_REGISTRYSECRET_CHECK";
public static final String CONN_PARA_KEY_K8S_REGISTRYSECRET="CONN_PARA_KEY_K8S_REGISTRYSECRET";
public static final String CONN_PARA_KEY_K8S_IMAGE="CONN_PARA_KEY_K8S_IMAGE";
public static final String CONN_PARA_KEY_K8S_NAMESPACE="CONN_PARA_KEY_K8S_NAMESPACE";
public static final String CONN_PARA_KEY_K8S_SERVICEACCOUNT="CONN_PARA_KEY_K8S_SERVICEACCOUNT";
public static final String CONN_PARA_KEY_K8S_DISTUPLOAD="CONN_PARA_KEY_K8S_DISTUPLOAD";
public static final String CONN_PARA_KEY_K8S_S3BUCKET="CONN_PARA_KEY_K8S_S3BUCKET";
public static final String CONN_PARA_KEY_K8S_S3FOLDER="CONN_PARA_KEY_K8S_S3FOLDER";
public static final String CONN_PARA_KEY_K8S_S3CREDENTIALS="CONN_PARA_KEY_K8S_S3CREDENTIALS";
public static final String CONN_PARA_KEY_K8S_S3ACCESSKEY="CONN_PARA_KEY_K8S_S3ACCESSKEY";
public static final String CONN_PARA_KEY_K8S_S3SECRETKEY="CONN_PARA_KEY_K8S_S3SECRETKEY";
public static final String CONN_PARA_KEY_K8S_BLOBACCOUNT="CONN_PARA_KEY_K8S_BLOBACCOUNT";
public static final String CONN_PARA_KEY_K8S_BLOBCONTAINER="CONN_PARA_KEY_K8S_BLOBCONTAINER";
public static final String CONN_PARA_KEY_K8S_BLOBSECRETKEY="CONN_PARA_KEY_K8S_BLOBSECRETKEY";
public static final String CONN_PARA_KEY_K8S_AZUREACCOUNT="CONN_PARA_KEY_K8S_AZUREACCOUNT";
public static final String CONN_PARA_KEY_K8S_AZURECREDENTIALS="CONN_PARA_KEY_K8S_AZURECREDENTIALS";
public static final String CONN_PARA_KEY_K8S_AZURECONTAINER="CONN_PARA_KEY_K8S_AZURECONTAINER";
public static final String CONN_PARA_KEY_K8S_AZURESECRETKEY="CONN_PARA_KEY_K8S_AZURESECRETKEY";
public static final String CONN_PARA_KEY_K8S_AZUREAADKEY="CONN_PARA_KEY_K8S_AZUREAADKEY";
public static final String CONN_PARA_KEY_K8S_AZUREAADCLIENTID="CONN_PARA_KEY_K8S_AZUREAADCLIENTID";
public static final String CONN_PARA_KEY_K8S_AZUREAADDIRECTORYID="CONN_PARA_KEY_K8S_AZUREAADDIRECTORYID";
/**
* Override hadoop configuration
*/

View File

@@ -150,10 +150,11 @@ public enum EDatabaseVersion4Drivers {
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
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.55.1083.jar", "antlr4-runtime-4.8-1.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.13.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.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$
"aws-java-sdk-redshift-internal-1.12.x.jar" })), //$NON-NLS-1$
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "jackson-core-2.13.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.4.jar", "httpcore-4.4.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"httpclient-4.5.13.jar", "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$//$NON-NLS-4$
"aws-java-sdk-redshift-internal-1.12.x.jar", "aws-java-sdk-core-1.12.315.jar", //$NON-NLS-1$ //$NON-NLS-2$
"aws-java-sdk-sts-1.12.315.jar", "aws-java-sdk-redshift-1.12.315.jar", "jmespath-java-1.12.315.jar" })), //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "mysql-connector-java-5.1.49.jar")); //$NON-NLS-1$

View File

@@ -28,6 +28,8 @@ public class HadoopConstants {
public static final String SPARK_MODE_YARN_CLUSTER = "YARN_CLUSTER";
public static final String SPARK_MODE_DATAPROC = "DATAPROC";
public static final String SPARK_MODE_SYNAPSE = "SYNAPSE";
public static final String FRAMEWORK = "FRAMEWORK";

View File

@@ -153,6 +153,52 @@ public enum EHadoopProperties {
DATABRICKS_TOKEN,
DATABRICKS_DBFS_DEP_FOLDER,
K8S_SUBMIT_MODE,
K8S_MASTER,
K8S_INSTANCES,
K8S_REGISTRYSECRET,
K8S_IMAGE,
K8S_NAMESPACE,
K8S_SERVICEACCOUNT,
K8S_DISTUPLOAD,
K8S_S3BUCKET,
K8S_S3FOLDER,
K8S_S3CREDENTIALS,
K8S_S3ACCESSKEY,
K8S_S3SECRETKEY,
K8S_BLOBACCOUNT,
K8S_BLOBCONTAINER,
K8S_BLOBSECRETKEY,
K8S_AZUREACCOUNT,
K8S_AZURECREDENTIALS,
K8S_AZURECONTAINER,
K8S_AZURESECRETKEY,
K8S_AZUREAADKEY,
K8S_AZUREAADCLIENTID,
K8S_AZUREAADDIRECTORYID,
DATABRICKS_NODE_TYPE,

View File

@@ -984,6 +984,14 @@ public class ContextUtils {
}
public boolean remove(Item item, String param) {
Set<String> params = map.get(item);
if (params != null && params.contains(param)) {
return params.remove(param);
}
return false;
}
public boolean isEmpty() {
return map.isEmpty();
}

View File

@@ -1477,12 +1477,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfJoblet() {
public static List<ERepositoryObjectType> getAllBigDataTypesOfJoblet(){
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();
if (ERepositoryObjectType.JOBLET != null) {
allTypes.add(ERepositoryObjectType.JOBLET);
}
if (ERepositoryObjectType.SPARK_JOBLET != null) {
allTypes.add(ERepositoryObjectType.SPARK_JOBLET);
}
@@ -1492,6 +1488,15 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfJoblet() {
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();
allTypes.addAll(getAllBigDataTypesOfJoblet());
if (ERepositoryObjectType.JOBLET != null) {
allTypes.add(ERepositoryObjectType.JOBLET);
}
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfTestContainer() {
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();

View File

@@ -79,4 +79,8 @@ public final class TalendPropertiesUtil {
public static String getProductApp() {
return System.getProperty(PROD_APP);
}
public static boolean isEnabledUseShortJobletName() {
return isEnabled("talend.job.build.useShortJobletName"); //$NON-NLS-1$
}
}

View File

@@ -13,7 +13,7 @@
package org.talend.core.pendo;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.core.service.IRemoteService;
import org.talend.core.service.ICoreTisRuntimeService;
/**
* DOC jding class global comment. Detailled comment
@@ -22,11 +22,11 @@ public class PendoDataTrackFactory {
private static PendoDataTrackFactory instance;
private static IRemoteService remoteService;
private static ICoreTisRuntimeService coreRuntimeService;
static {
instance = new PendoDataTrackFactory();
remoteService = IRemoteService.get();
coreRuntimeService = ICoreTisRuntimeService.get();
}
private PendoDataTrackFactory() {
@@ -37,35 +37,35 @@ public class PendoDataTrackFactory {
}
public boolean isTrackSendAvailable() throws Exception {
if (remoteService != null) {
return remoteService.isPendoTrackAvailable();
if (coreRuntimeService != null) {
return coreRuntimeService.isPendoTrackAvailable();
}
return false;
}
public void sendTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception {
if (remoteService != null) {
remoteService.sendPendoTrackData(event, properties);
if (coreRuntimeService != null) {
coreRuntimeService.sendPendoTrackData(event, properties);
}
}
public void sendProjectLoginTrack() {
if (remoteService != null) {
AbstractPendoTrackManager pendoProjectLoginManager = remoteService.getPendoProjectLoginManager();
if (coreRuntimeService != null) {
AbstractPendoTrackManager pendoProjectLoginManager = coreRuntimeService.getPendoProjectLoginManager();
pendoProjectLoginManager.sendTrackToPendo();
}
}
public void sendGenericTrack(TrackEvent event, IPendoDataProperties properties) {
if (remoteService != null) {
AbstractPendoTrackManager genericManager = remoteService.getPendoGenericManager(event, properties);
if (coreRuntimeService != null) {
AbstractPendoTrackManager genericManager = coreRuntimeService.getPendoGenericManager(event, properties);
genericManager.sendTrackToPendo();
}
}
public String getTmcUser(String url, String token) {
if (remoteService != null) {
return remoteService.getTmcUser(url, token);
if (coreRuntimeService != null) {
return coreRuntimeService.getTmcUser(url, token);
}
return "";
}

View File

@@ -620,7 +620,7 @@ ProgressMonitorDialogWithCancel.executeTimeout=Suspension de l'ex\u00E9cution, l
ProgressMonitorDialogWithCancel.CheckingConnectionJob.waitingFinish=en attente de la fin de {0}...
ProgressMonitorDialogWithCancel.CheckingConnectionJob.emptyWaitingfinish=en attente de la fin...
OverTimePopupDialogTask.title=Ex\u00E9cution...
OverTimePopupDialogTask.message=T\u00E2che d'ex\u00E9cution en arri\u00E8re plan, patientez...
OverTimePopupDialogTask.message=T\u00E2che d'ex\u00E9cution en arri\u00E8re-plan, patientez...
OverTimePopupDialogTask.executeTimeout=Suspension de l'ex\u00E9cution, le Studio a essay\u00E9 d'interrompre la v\u00E9rification en t\u00E2che de fond.
OverTimePopupDialogTask.killed=Ex\u00E9cution arr\u00EAt\u00E9e
OverTimePopupDialogTask.waitingFinishMessage.default=Interruption impossible de la t\u00E2che en fond,\n
@@ -656,3 +656,7 @@ AnalysisReportAccessDialog.shellTitle=Analyse du projet
AnalysisReportAccessDialog.generateSuccess=Analyse du projet termin\u00E9e.
AnalysisReportAccessDialog.completeReportAvailable=Consulter le rapport
AnalysisReportAccessDialog.accessReport=ici
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Par d\u00E9faut
AbstractPomTemplateProjectSettingPage.customTabLabel=Personnalis\u00E9
AbstractPomTemplateProjectSettingPage.previewButton=Aper\u00E7u
AbstractPomTemplateProjectSettingPage.learnMoreLink=En savoir plus

View File

@@ -637,8 +637,8 @@ DynamicPlugin.addExtension.empty=ExtensionPoint\u307E\u305F\u306FID\u304C\u7A7A\
BigDataBasicUtil.loadDynamicDistribution.IDynamicDistributionManager.notFound={0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
TalendLibsServerManager.connectUserLibraryFailureMessage=\u7BA1\u7406\u8005\u30E2\u30FC\u30C9\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304C\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002{0}\u3078\u306E\u63A5\u7D9A\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
TalendLibsServerManager.cannotGetUserLibraryServer=\u30EA\u30E2\u30FC\u30C8\u7BA1\u7406\u8005\u304B\u3089\u30E6\u30FC\u30B6\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30B5\u30FC\u30D0\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093
MigrationReportAccessDialog.title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30A4\u30C6\u30E0\u3092\u79FB\u884C
MigrationReportAccessDialog.migrateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30A4\u30C6\u30E0\u304C\u6B63\u3057\u304F\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002
MigrationReportAccessDialog.title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u3092\u79FB\u884C
MigrationReportAccessDialog.migrateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u304C\u6B63\u3057\u304F\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002
MigrationReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
MigrationReportAccessDialog.accessReport=\u3053\u3061\u3089
MigrationReportAccessDialog.provideAnalysisTool=\u4ECA\u3059\u3050\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u3092\u5B9F\u884C\u3057\u3066\u3001\u79FB\u884C\u3055\u308C\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u5206\u6790\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A66\u9A13\u7684\u306A\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4EE5\u4E0B\u304C\u542B\u307E\u308C\u308B\u30EC\u30DD\u30FC\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3059:
@@ -656,3 +656,7 @@ AnalysisReportAccessDialog.shellTitle=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206
AnalysisReportAccessDialog.generateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u304C\u6B63\u3057\u304F\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002
AnalysisReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
AnalysisReportAccessDialog.accessReport=\u3053\u3061\u3089
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u30C7\u30D5\u30A9\u30EB\u30C8
AbstractPomTemplateProjectSettingPage.customTabLabel=\u30AB\u30B9\u30BF\u30E0
AbstractPomTemplateProjectSettingPage.previewButton=\u30D7\u30EC\u30D3\u30E5\u30FC
AbstractPomTemplateProjectSettingPage.learnMoreLink=\u8A73\u7D30

View File

@@ -656,3 +656,7 @@ AnalysisReportAccessDialog.shellTitle=\u5DE5\u7A0B\u5206\u6790
AnalysisReportAccessDialog.generateSuccess=\u5DE5\u7A0B\u5206\u6790\u6210\u529F\u5B8C\u6210\u3002
AnalysisReportAccessDialog.completeReportAvailable=\u8BF7\u68C0\u67E5\u62A5\u544A
AnalysisReportAccessDialog.accessReport=\u6B64\u5904
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u9ED8\u8BA4
AbstractPomTemplateProjectSettingPage.customTabLabel=\u81EA\u5B9A\u4E49
AbstractPomTemplateProjectSettingPage.previewButton=\u9884\u89C8
AbstractPomTemplateProjectSettingPage.learnMoreLink=\u4E86\u89E3\u66F4\u591A

View File

@@ -41,6 +41,8 @@ public interface MavenConstants {
static final String DEFAULT_VERSION = "6.0.0";
static final String SNAPSHOT = "-SNAPSHOT";
static final String DOT_SNAPSHOT = ".SNAPSHOT";
static final String POM_FILTER = "POM_FILTER";

View File

@@ -21,10 +21,6 @@ public interface ICloudSignOnService extends IService {
TokenMode getToken(String authCode, String codeVerifier, String dataCenter) throws Exception;
void startHeartBeat() throws Exception;
void stopHeartBeat();
String generateCodeVerifier();
String getCodeChallenge(String seed) throws Exception;
@@ -43,11 +39,13 @@ public interface ICloudSignOnService extends IService {
boolean isNeedShowSSOPage();
public void showReloginDialog();
public boolean showReloginDialog();
public boolean isReloginDialogRunning();
public void reload();
public boolean isRelogined4CurrentTask(String clazz);
public static ICloudSignOnService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICloudSignOnService.class)) {

View File

@@ -0,0 +1,45 @@
// ============================================================================
//
// Copyright (C) 2006-2023 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.service;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.pendo.AbstractPendoTrackManager;
import org.talend.core.pendo.TrackEvent;
import org.talend.core.pendo.properties.IPendoDataProperties;
/**
* DOC jding class global comment. Detailled comment
*/
public interface ICoreTisRuntimeService extends IService {
String getTmcUser(String url, String token);
AbstractPendoTrackManager getPendoProjectLoginManager();
AbstractPendoTrackManager getPendoGenericManager(TrackEvent event, IPendoDataProperties peoperties);
boolean isPendoTrackAvailable() throws Exception;
void sendPendoTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception;
void sendPTPTrackData(String componentName, String componentUniqName, String jobId, String data);
static ICoreTisRuntimeService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisRuntimeService.class)) {
return GlobalServiceRegister.getDefault().getService(ICoreTisRuntimeService.class);
}
return null;
}
}

View File

@@ -17,9 +17,6 @@ import org.talend.commons.exception.PersistenceException;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.pendo.AbstractPendoTrackManager;
import org.talend.core.pendo.TrackEvent;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.utils.json.JSONException;
import org.talend.utils.json.JSONObject;
@@ -39,16 +36,6 @@ public interface IRemoteService extends IService {
boolean isAuthorized(String value);
boolean isPendoTrackAvailable() throws Exception;
void sendPendoTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception;
AbstractPendoTrackManager getPendoProjectLoginManager();
AbstractPendoTrackManager getPendoGenericManager(TrackEvent event, IPendoDataProperties peoperties);
String getTmcUser(String url, String token);
public boolean isCloudConnection();
public static IRemoteService get() {

View File

@@ -12,14 +12,23 @@
// ============================================================================
package org.talend.core.service;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.equinox.p2.repository.IRepository;
import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.general.Project;
@@ -201,6 +210,12 @@ public interface IStudioLiteP2Service extends IService {
}
public static interface UpdateSiteConfig {
public static final int DEFAULT_TIMEOUT = 4000;
public static final String PROTOCOL_HTTP = "http";
public static final String PROTOCOL_HTTPS = "https";
boolean isReleaseEditable();
@@ -239,6 +254,83 @@ public interface IStudioLiteP2Service extends IService {
boolean isOverwriteTmcUpdateSettings(IProgressMonitor monitor) throws Exception;
void overwriteTmcUpdateSettings(IProgressMonitor monitor, boolean overwrite) throws Exception;
void enableBasicAuth(String uri, boolean enable) throws Exception;
boolean isEnabledBasicAuth(String uri) throws Exception;
public static boolean requireCredentials(URI uri, String nameAndPwd) throws Exception {
String scheme = uri.getScheme();
if (StringUtils.isEmpty(scheme) || (!StringUtils.equals(scheme, PROTOCOL_HTTP) && !StringUtils.equals(scheme, PROTOCOL_HTTPS))) {
return false;
}
URL url = new URL(uri.toString() + "/p2.index");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(DEFAULT_TIMEOUT);
conn.setReadTimeout(DEFAULT_TIMEOUT);
conn.setRequestMethod("HEAD");
if (!StringUtils.isEmpty(nameAndPwd)) {
nameAndPwd = Base64.encodeBase64String(nameAndPwd.getBytes());
conn.addRequestProperty("Authorization", "Basic " + nameAndPwd);
}
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED || responseCode == HttpURLConnection.HTTP_FORBIDDEN) {
return true;
}
if (responseCode != HttpURLConnection.HTTP_OK) {
throw new Exception("status code: " + responseCode);
}
return false;
}
public static void saveCredentialsIntoSecureStore(URI uri, String uname, String pwd) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
ISecurePreferences prefNode = null;
prefNode = securePreferences.node(nodeName);
prefNode.put(IRepository.PROP_USERNAME, uname, true);
prefNode.put(IRepository.PROP_PASSWORD, pwd, true);
securePreferences.flush();
}
public static String[] loadCredentialsFromSecureStore(URI uri) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
ISecurePreferences prefNode = null;
String[] namePwd = new String[2];
if (!securePreferences.nodeExists(nodeName)) {
return null;
}
prefNode = securePreferences.node(nodeName);
namePwd[0] = prefNode.get(IRepository.PROP_USERNAME, "");
namePwd[1] = prefNode.get(IRepository.PROP_PASSWORD, "");
return namePwd;
}
public static void deleteCredentialsFromSecureStore(URI uri) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
if (securePreferences.nodeExists(nodeName)) {
securePreferences.node(nodeName).removeNode();
securePreferences.flush();
}
}
}

View File

@@ -560,6 +560,7 @@ ContextNebulaComposite.ContextsUnAvailable=Context view is not available.
ContextNebulaComposite.ContextGroupLabel=Default context environment
ContextTreeTable.PromptToolTips=activate prompt on variable
ContextValidator.ParameterNotValid=parameter name is not valid
ContextValidator.ParameterValueNotMatch=Type/value mismatch: the value of a variable must match its type
WorkspaceMnu.switch.text=Switch &Workspace
WorkspaceMnu.switch.tooltip=Open Workspace
WorkspaceMnu.choose.text=&Choose...

View File

@@ -560,6 +560,7 @@ ContextNebulaComposite.ContextsUnAvailable=La vue Contextes n'est pas disponible
ContextNebulaComposite.ContextGroupLabel=Environnement du contexte par d\u00E9faut
ContextTreeTable.PromptToolTips=activer le prompt sur variable
ContextValidator.ParameterNotValid=le nom du param\u00E8tre n'est pas valide
ContextValidator.ParameterValueNotMatch=Mauvaise correspondance de type/valeur\u00A0: la valeur d'une variable doit correspondre \u00E0 son type
WorkspaceMnu.switch.text=Changer de r\u00E9pertoire &Workspace
WorkspaceMnu.switch.tooltip=Ouvrir le r\u00E9pertoire Workspace
WorkspaceMnu.choose.text=&Choisir...

View File

@@ -321,7 +321,7 @@ repository.metadataFileRegexp=\u6B63\u898F\u8868\u73FE\u30D5\u30A1\u30A4\u30EB
repository.metadataFileRegexp.alias=REGX
repository.metadataFileXml=XML\u30D5\u30A1\u30A4\u30EB
repository.metadataFileXml.alias=XML
repository.metadataGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE
repository.metadataGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE
repository.metadataGenericSchema.alias=GENERIC
repository.metadataLDAPSchema=LDAP
repository.metadataLDAPSchema.alias=LDAP
@@ -560,6 +560,7 @@ ContextNebulaComposite.ContextsUnAvailable=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\
ContextNebulaComposite.ContextGroupLabel=\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u74B0\u5883
ContextTreeTable.PromptToolTips=\u5909\u6570\u306E\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u6709\u52B9\u5316
ContextValidator.ParameterNotValid=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u304C\u7121\u52B9\u3067\u3059\u3002
ContextValidator.ParameterValueNotMatch=\u578B\u3068\u5024\u306E\u4E0D\u4E00\u81F4: \u5909\u6570\u306E\u5024\u306F\u305D\u306E\u578B\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
WorkspaceMnu.switch.text=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u5207\u308A\u63DB\u3048(&W)
WorkspaceMnu.switch.tooltip=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u958B\u304F
WorkspaceMnu.choose.text=\u9078\u629E(&C)...
@@ -579,6 +580,6 @@ I18nPreferencePage.restart=\u518D\u8D77\u52D5
I18nPreferencePage.restartButton=\u6709\u52B9\u5316\u306B\u306F\u518D\u8D77\u52D5\u304C\u5FC5\u8981\u3067\u3059\u3002
I18nPreferencePage.restoreDefault=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u5FA9\u5143
I18nPreferencePage.wait_process=\u3053\u306E\u51E6\u7406\u306B\u306F\u6570\u5206\u304B\u304B\u308A\u307E\u3059\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...
MetadataPreferencePage.EnableBasic.name=\u57FA\u672C\u8A8D\u8A3C\u30D8\u30C3\u30C0\u30FC\u3092\u6709\u52B9\u306B\u3059\u308B
MetadataPreferencePage.EnableBasic.name=\u57FA\u672C\u8A8D\u8A3C\u30D8\u30C3\u30C0\u30FC\u3092\u6709\u52B9\u5316
MetadataPreferencePage.MessageDialog.Restart=\u3053\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3088\u3046\u3001Studio\u3092\u518D\u8D77\u52D5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B?
TalendTabbedPropertyTitle.componentHelpTooltip=\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u958B\u304F

View File

@@ -560,6 +560,7 @@ ContextNebulaComposite.ContextsUnAvailable=\u4E0A\u4E0B\u6587\u89C6\u56FE\u4E0D\
ContextNebulaComposite.ContextGroupLabel=\u9ED8\u8BA4\u4E0A\u4E0B\u6587\u73AF\u5883
ContextTreeTable.PromptToolTips=\u6FC0\u6D3B\u63D0\u793A\u53D8\u91CF
ContextValidator.ParameterNotValid=\u53C2\u6570\u540D\u65E0\u6548
ContextValidator.ParameterValueNotMatch=\u7C7B\u578B/\u503C\u4E0D\u5339\u914D\uFF1A\u53D8\u91CF\u7684\u503C\u4E0E\u5176\u7C7B\u578B\u4E0D\u5339\u914D
WorkspaceMnu.switch.text=\u5207\u6362\u5DE5\u4F5C\u533A(&W)
WorkspaceMnu.switch.tooltip=\u6253\u5F00\u5DE5\u4F5C\u533A
WorkspaceMnu.choose.text=\u9009\u62E9(&C)...

View File

@@ -59,6 +59,7 @@ import org.eclipse.nebula.widgets.nattable.hideshow.RowHideShowLayer;
import org.eclipse.nebula.widgets.nattable.hideshow.command.ColumnHideCommand;
import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
import org.eclipse.nebula.widgets.nattable.layer.cell.ColumnOverrideLabelAccumulator;
import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
import org.eclipse.nebula.widgets.nattable.layer.config.DefaultColumnHeaderStyleConfiguration;
import org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter;
import org.eclipse.nebula.widgets.nattable.painter.layer.NatGridLayerPainter;
@@ -111,6 +112,7 @@ import org.talend.core.ui.context.nattableTree.ContextNatTableStyleConfiguration
import org.talend.core.ui.context.nattableTree.ContextNatTableUtils;
import org.talend.core.ui.context.nattableTree.ContextParaModeChangeMenuConfiguration;
import org.talend.core.ui.context.nattableTree.ContextRowDataListFixture;
import org.talend.core.ui.context.nattableTree.ContextValueLabelAccumulator;
import org.talend.core.ui.context.nattableTree.ExtendedContextColumnPropertyAccessor;
import org.talend.core.ui.i18n.Messages;
import org.talend.repository.ProjectManager;
@@ -130,7 +132,7 @@ public class ContextTreeTable {
private NatTable natTable;
// for bug TDI-32821 use LinkedList to keep the original order of context parameter list.
// for bug TDI-32821<EFBFBD> use LinkedList to keep the original order of context parameter list.
private List<ContextTreeNode> treeNodes = new LinkedList<ContextTreeNode>();
private static Map<String, Boolean> expandMap = new HashMap<>();
@@ -272,7 +274,7 @@ public class ContextTreeTable {
final GridLayer gridLayer = new GridLayer(viewportLayer, sortHeaderLayer, rowHeaderLayer, cornerLayer);
// config the column edit configuration
ColumnOverrideLabelAccumulator labelAccumulator = new ColumnOverrideLabelAccumulator(bodyDataLayer);
ContextValueLabelAccumulator labelAccumulator = new ContextValueLabelAccumulator(bodyDataLayer, bodyDataProvider, manager.getContextManager(), columnGroupModel);
bodyDataLayer.setConfigLabelAccumulator(labelAccumulator);
registerColumnLabels(labelAccumulator, ContextRowDataListFixture.getContexts(manager.getContextManager()));
@@ -804,12 +806,32 @@ public class ContextTreeTable {
if (cellValue instanceof Boolean) {
return new Point(col, row);
}
ILayerCell cell = this.nt.getCellByPosition(col, row);
if (cell != null && cell.getConfigLabels() != null
&& cell.getConfigLabels().contains(ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE)
&& cell.getConfigLabels().contains(ContextTableConstants.COLUMN_CONTEXT_VALUE)) {
return new Point(col, row);
}
return null;
}
@Override
protected String getText(Event event) {
return Messages.getString("ContextTreeTable.PromptToolTips"); //$NON-NLS-1$
int col = this.nt.getColumnPositionByX(event.x);
int row = this.nt.getRowPositionByY(event.y);
Object cellValue = this.nt.getDataValueByPosition(col, row);
if (cellValue instanceof Boolean) {
return Messages.getString("ContextTreeTable.PromptToolTips");
}
ILayerCell cell = this.nt.getCellByPosition(col, row);
if (cell != null && cell.getConfigLabels() != null
&& cell.getConfigLabels().contains(ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE)
&& cell.getConfigLabels().contains(ContextTableConstants.COLUMN_CONTEXT_VALUE)) {
return Messages.getString("ContextValidator.ParameterValueNotMatch");
}
return null;
}
@Override

View File

@@ -28,6 +28,10 @@ public class ContextTableConstants {
public static final String COLUMN_PROMPT_PROPERTY = "Prompt label"; //$NON-NLS-1$
public static final String COLUMN_CONTEXT_VALUE = "Value"; //$NON-NLS-1$
public static final String LABEL_CHANGED_FORCEGROUND = "LABEL_CHANGED_FORCEGROUND";
public static final String LABEL_VALUE_NOT_MATCH_TYPE = "LABEL_VALUE_NOT_MATCH_TYPE";
public static final int DEFAULT_COLUMN_COUNT = 8;
}

View File

@@ -16,6 +16,7 @@ import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
import org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter;
import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
import org.eclipse.nebula.widgets.nattable.style.CellStyleProxy;
import org.eclipse.nebula.widgets.nattable.style.IStyle;
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
import org.eclipse.swt.graphics.GC;
@@ -43,12 +44,8 @@ public class ContextAutoResizeTextPainter extends TextPainter {
@Override
public void setupGCFromConfig(GC gc, IStyle cellStyle) {
super.setupGCFromConfig(gc, cellStyle);
if (cellStyle.getAttributeValue(CellStyleAttributes.FOREGROUND_COLOR).equals(GUIHelper.COLOR_RED)) {
gc.setForeground(GUIHelper.COLOR_BLACK);
} else if (containsRowName) {
if (containsRowName) {
gc.setForeground(GUIHelper.COLOR_RED);
} else if (changeBackgroundColor) {
gc.setForeground(GUIHelper.COLOR_WIDGET_DARK_SHADOW);
}
}

View File

@@ -23,12 +23,15 @@ import org.eclipse.nebula.widgets.nattable.extension.glazedlists.GlazedListsData
import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
import org.eclipse.nebula.widgets.nattable.painter.cell.BackgroundPainter;
import org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter;
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
import org.talend.core.ui.context.ContextTreeTable.ContextTreeNode;
import org.talend.core.ui.context.model.ContextTabChildModel;
import org.talend.core.ui.context.model.ContextTabParentModel;
import org.talend.core.ui.context.model.table.ContextTableConstants;
import org.talend.core.ui.context.model.table.ContextTableTabParentModel;
/**
@@ -49,18 +52,9 @@ public class ContextNatTableBackGroudPainter extends BackgroundPainter {
@Override
public void paintCell(ILayerCell cell, GC gc, Rectangle bounds, IConfigRegistry configRegistry) {
ContextTreeNode rowNode = ((GlazedListsDataProvider<ContextTreeNode>) dataProvider).getRowObject(cell.getRowIndex());
if (rowNode.getTreeData() instanceof ContextTableTabParentModel) {
ContextTableTabParentModel rowModel = (ContextTableTabParentModel) rowNode.getTreeData();
Boolean isRepositoryContext = rowModel.hasChildren();
if (isRepositoryContext) {
((ContextAutoResizeTextPainter) getWrappedPainter()).setChangeBackgroundColor(true);
} else {
((ContextAutoResizeTextPainter) getWrappedPainter()).setChangeBackgroundColor(false);
}
} else {
if (rowNode.getTreeData() instanceof ContextTabChildModel) {
ContextTabChildModel rowChildModel = (ContextTabChildModel) rowNode.getTreeData();
if (rowChildModel != null) {
((ContextAutoResizeTextPainter) getWrappedPainter()).setChangeBackgroundColor(true);
checkContainsRowName(rowNode, rowChildModel);
}
}

View File

@@ -137,7 +137,6 @@ public class ContextNatTableConfiguration extends AbstractRegistryConfiguration
Style cellStyleSelect = new Style();
cellStyleSelect.setAttributeValue(CellStyleAttributes.BACKGROUND_COLOR, GUIHelper.COLOR_TITLE_INACTIVE_BACKGROUND);
cellStyleSelect.setAttributeValue(CellStyleAttributes.FOREGROUND_COLOR, GUIHelper.COLOR_RED);
cellStyleSelect.setAttributeValue(CellStyleAttributes.FONT, GUIHelper.DEFAULT_FONT);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, cellStyleSelect, DisplayMode.SELECT,
ContextTableConstants.COLUMN_TYPE_PROPERTY);
@@ -161,11 +160,15 @@ public class ContextNatTableConfiguration extends AbstractRegistryConfiguration
private void registerValidateRules(IConfigRegistry configRegistry) {
configRegistry.registerConfigAttribute(EditConfigAttributes.DATA_VALIDATOR,
new EventDataValidator(dataProvider, manager), DisplayMode.EDIT, ContextTableConstants.COLUMN_NAME_PROPERTY);
configRegistry.registerConfigAttribute(EditConfigAttributes.DATA_VALIDATOR,
new EventDataValueValidator(dataProvider, manager, columnGroupModel), DisplayMode.EDIT, ContextTableConstants.COLUMN_CONTEXT_VALUE);
}
private void registerErrorHandlingStrategies(IConfigRegistry configRegistry) {
configRegistry.registerConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_HANDLER, new DialogErrorHandling(),
DisplayMode.EDIT, ContextTableConstants.COLUMN_NAME_PROPERTY);
configRegistry.registerConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_HANDLER, new DialogErrorHandling(),
DisplayMode.EDIT, ContextTableConstants.COLUMN_CONTEXT_VALUE);
}
private IEditableRule getEditRule() {

View File

@@ -21,6 +21,7 @@ import org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter;
import org.eclipse.nebula.widgets.nattable.painter.cell.decorator.LineBorderDecorator;
import org.eclipse.nebula.widgets.nattable.style.BorderStyle;
import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
import org.eclipse.nebula.widgets.nattable.style.HorizontalAlignmentEnum;
import org.eclipse.nebula.widgets.nattable.style.Style;
import org.eclipse.nebula.widgets.nattable.style.VerticalAlignmentEnum;
@@ -28,6 +29,7 @@ import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.talend.commons.ui.runtime.ColorConstants;
import org.talend.core.ui.context.model.table.ContextTableConstants;
/**
* created by ldong on Aug 26, 2014 Detailled comment
@@ -70,9 +72,17 @@ public class ContextNatTableStyleConfiguration extends AbstractRegistryConfigura
cellStyle.setAttributeValue(CellStyleAttributes.HORIZONTAL_ALIGNMENT, hAlign);
cellStyle.setAttributeValue(CellStyleAttributes.VERTICAL_ALIGNMENT, vAlign);
cellStyle.setAttributeValue(CellStyleAttributes.BORDER_STYLE, borderStyle);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, cellStyle);
Style cellStyleValueError = new Style();
cellStyleValueError.setAttributeValue(CellStyleAttributes.FOREGROUND_COLOR, ColorConstants.ERROR_FONT_COLOR);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, cellStyleValueError, DisplayMode.NORMAL, ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, cellStyleValueError, DisplayMode.SELECT, ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE);
Style cellStyleChangedForceGround = new Style();
cellStyleChangedForceGround.setAttributeValue(CellStyleAttributes.FOREGROUND_COLOR, ColorConstants.getTableReadOnlyForegroundColor());
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, cellStyleChangedForceGround, DisplayMode.NORMAL, ContextTableConstants.LABEL_CHANGED_FORCEGROUND);
configRegistry.registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER, new DefaultDisplayConverter());
}

View File

@@ -0,0 +1,81 @@
// ============================================================================
//
// 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.core.ui.context.nattableTree;
import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
import org.eclipse.nebula.widgets.nattable.extension.glazedlists.GlazedListsDataProvider;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
import org.eclipse.nebula.widgets.nattable.layer.ILayer;
import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
import org.eclipse.nebula.widgets.nattable.layer.cell.ColumnOverrideLabelAccumulator;
import org.talend.core.model.process.IContextManager;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.ui.context.ContextTreeTable.ContextTreeNode;
import org.talend.core.ui.context.model.ContextTabChildModel;
import org.talend.core.ui.context.model.table.ContextTableConstants;
import org.talend.core.ui.context.model.table.ContextTableTabParentModel;
import org.talend.core.ui.utils.ContextTypeValidator;
public class ContextValueLabelAccumulator extends ColumnOverrideLabelAccumulator {
private IDataProvider dataProvider;
private ColumnGroupModel columnGroupModel;
private IContextManager manager;
public ContextValueLabelAccumulator(ILayer layer, IDataProvider dataProvider, IContextManager manager, ColumnGroupModel columnGroupModel) {
super(layer);
this.dataProvider = dataProvider;
this.manager = manager;
this.columnGroupModel = columnGroupModel;
}
@Override
public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
super.accumulateConfigLabels(configLabels, columnPosition, rowPosition);
boolean isAddedValueNotMatchStyle = false;
ContextTreeNode rowNode = ((GlazedListsDataProvider<ContextTreeNode>) dataProvider).getList().get(rowPosition);
if (configLabels.contains(ContextTableConstants.COLUMN_CONTEXT_VALUE)) {
if (columnGroupModel != null && columnGroupModel.isPartOfAGroup(columnPosition)) {
String columnGroupName = columnGroupModel.getColumnGroupByIndex(columnPosition).getName();
IContextParameter realPara = ContextNatTableUtils.getRealParameter(manager, columnGroupName, rowNode.getTreeData());
if (realPara != null) {
boolean isValid = ContextTypeValidator.isMatchType(realPara.getType(), realPara.getValue());
if (isValid) {
configLabels.remove(ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE);
} else {
configLabels.addLabel(ContextTableConstants.LABEL_VALUE_NOT_MATCH_TYPE);
isAddedValueNotMatchStyle = true;
}
}
}
}
if (!isAddedValueNotMatchStyle) {
if (rowNode.getTreeData() instanceof ContextTableTabParentModel) {
ContextTableTabParentModel rowModel = (ContextTableTabParentModel) rowNode.getTreeData();
Boolean isRepositoryContext = rowModel.hasChildren();
if (isRepositoryContext) {
configLabels.addLabel(ContextTableConstants.LABEL_CHANGED_FORCEGROUND);
} else {
}
} else {
ContextTabChildModel rowChildModel = (ContextTabChildModel) rowNode.getTreeData();
if (rowChildModel != null) {
configLabels.addLabel(ContextTableConstants.LABEL_CHANGED_FORCEGROUND);
}
}
}
}
}

View File

@@ -26,6 +26,8 @@ import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -272,4 +274,28 @@ public class ContextValuesNatText extends Composite {
public Button getButton() {
return this.button;
}
@Override
public void setBackground(Color color) {
super.setBackground(color);
if (text != null && !text.isDisposed()) {
text.setBackground(color);
}
}
@Override
public void setFont(Font font) {
super.setFont(font);
if (text != null && !text.isDisposed()) {
text.setFont(font);
}
}
@Override
public void setForeground(Color color) {
super.setForeground(color);
if (text != null && !text.isDisposed()) {
text.setForeground(color);
}
}
}

View File

@@ -12,9 +12,17 @@
// ============================================================================
package org.talend.core.ui.context.nattableTree;
import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
import org.eclipse.nebula.widgets.nattable.edit.config.RenderErrorHandling;
import org.eclipse.nebula.widgets.nattable.edit.editor.AbstractCellEditor;
import org.eclipse.nebula.widgets.nattable.edit.editor.ControlDecorationProvider;
import org.eclipse.nebula.widgets.nattable.edit.editor.IEditErrorHandler;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum;
import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
import org.eclipse.nebula.widgets.nattable.style.IStyle;
import org.eclipse.nebula.widgets.nattable.style.Style;
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
import org.eclipse.nebula.widgets.nattable.widget.EditModeEnum;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
@@ -52,6 +60,18 @@ public class CustomTextCellEditor extends AbstractCellEditor {
* if password, the value will be * always. should find out the real value.
*/
private Object recordOriginalCanonicalValue;
protected final ControlDecorationProvider decorationProvider = new ControlDecorationProvider();
/**
* The {@link IEditErrorHandler} that is used for showing conversion errors
* on typing into this editor. By default this is the
* {@link RenderErrorHandling} which will render the content in the editor
* red to indicate a conversion error.
*/
private IEditErrorHandler inputConversionErrorHandler = new RenderErrorHandling(this.decorationProvider);
private IEditErrorHandler inputValidationErrorHandler = new RenderErrorHandling(this.decorationProvider);
public CustomTextCellEditor(IContextParameter realPara, IStyle cellStyle, boolean commitOnUpDown, boolean moveSelectionOnEnter) {
this.realPara = realPara;
@@ -106,9 +126,26 @@ public class CustomTextCellEditor extends AbstractCellEditor {
}
}
}
@Override
public void keyReleased(KeyEvent e) {
try {
// always do the conversion
Object canonicalValue = getCanonicalValue(CustomTextCellEditor.this.inputConversionErrorHandler);
// and always do the validation, even if for committing the
// validation should be skipped, on editing
// a validation failure should be made visible
// otherwise there would be no need for validation!
validateCanonicalValue(canonicalValue, CustomTextCellEditor.this.inputValidationErrorHandler);
} catch (Exception ex) {
// do nothing as exceptions caused by conversion or
// validation are handled already we just need this catch
// block for stopping the process if conversion failed with
// an exception
}
}
});
// text.addFocusListener(new FocusAdapter() {
//
// @Override
@@ -164,6 +201,30 @@ public class CustomTextCellEditor extends AbstractCellEditor {
}
this.buttonText = (ContextValuesNatText) createEditorControl(parentComp);
if (this.inputConversionErrorHandler instanceof RenderErrorHandling) {
IStyle conversionErrorStyle = this.configRegistry.getConfigAttribute(
EditConfigAttributes.CONVERSION_ERROR_STYLE,
DisplayMode.EDIT,
this.labelStack);
((RenderErrorHandling) this.inputConversionErrorHandler).setErrorStyle(conversionErrorStyle);
}
if (this.inputValidationErrorHandler instanceof RenderErrorHandling) {
IStyle validationErrorStyle = this.configRegistry.getConfigAttribute(
EditConfigAttributes.VALIDATION_ERROR_STYLE,
DisplayMode.EDIT,
this.labelStack);
if (validationErrorStyle == null) {
validationErrorStyle = new Style();
validationErrorStyle.setAttributeValue(
CellStyleAttributes.FOREGROUND_COLOR,
GUIHelper.COLOR_RED);
}
((RenderErrorHandling) this.inputValidationErrorHandler).setErrorStyle(validationErrorStyle);
}
// use the real value.
setCanonicalValue(this.recordOriginalCanonicalValue);
@@ -194,4 +255,24 @@ public class CustomTextCellEditor extends AbstractCellEditor {
this.freeEdit = freeEdit;
}
public IEditErrorHandler getInputConversionErrorHandler() {
return inputConversionErrorHandler;
}
public void setInputConversionErrorHandler(IEditErrorHandler inputConversionErrorHandler) {
this.inputConversionErrorHandler = inputConversionErrorHandler;
}
public IEditErrorHandler getInputValidationErrorHandler() {
return inputValidationErrorHandler;
}
public void setInputValidationErrorHandler(IEditErrorHandler inputValidationErrorHandler) {
this.inputValidationErrorHandler = inputValidationErrorHandler;
}
}

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.core.ui.context.nattableTree;
import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
import org.eclipse.nebula.widgets.nattable.data.validate.DataValidator;
import org.eclipse.nebula.widgets.nattable.data.validate.ValidationFailedException;
import org.eclipse.nebula.widgets.nattable.extension.glazedlists.GlazedListsDataProvider;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
import org.talend.core.model.process.IContextManager;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.ui.context.ContextTreeTable.ContextTreeNode;
import org.talend.core.ui.i18n.Messages;
import org.talend.core.ui.utils.ContextTypeValidator;
public class EventDataValueValidator extends DataValidator {
private ColumnGroupModel columnGroupModel;
private IDataProvider dataProvider;
private IContextManager manager;
EventDataValueValidator(IDataProvider bodyDataProvider, IContextManager manager, ColumnGroupModel columnGroupModel) {
this.dataProvider = bodyDataProvider;
this.manager = manager;
this.columnGroupModel = columnGroupModel;
}
@Override
public boolean validate(int columnIndex, int rowIndex, Object newValue) {
boolean isValid = true;
ContextTreeNode rowNode = ((GlazedListsDataProvider<ContextTreeNode>) dataProvider).getList().get(rowIndex);
if (columnGroupModel != null && columnGroupModel.isPartOfAGroup(columnIndex)) {
String columnGroupName = columnGroupModel.getColumnGroupByIndex(columnIndex).getName();
IContextParameter realPara = ContextNatTableUtils.getRealParameter(manager, columnGroupName, rowNode.getTreeData());
if (realPara != null) {
isValid = ContextTypeValidator.isMatchType(realPara.getType(), newValue);
if (!isValid) {
throw new ValidationFailedException(Messages.getString("ContextValidator.ParameterValueNotMatch")); //$NON-NLS-1$
}
}
}
return isValid;
}
}

View File

@@ -425,6 +425,7 @@ public class ExtendedContextColumnPropertyAccessor<R> implements IColumnProperty
&& jobContextManager.isOriginalParameter(param.getName())) {
jobContextManager.setModified(true);
manager.fireContextsChangedEvent();
modelManager.refresh();
}
}
}
@@ -507,6 +508,7 @@ public class ExtendedContextColumnPropertyAccessor<R> implements IColumnProperty
&& jobContextManager.isOriginalParameter(param.getName())) {
jobContextManager.setModified(true);
manager.fireContextsChangedEvent();
modelManager.refresh();
}
}
}
@@ -588,6 +590,7 @@ public class ExtendedContextColumnPropertyAccessor<R> implements IColumnProperty
&& jobContextManager.isOriginalParameter(param.getName())) {
jobContextManager.setModified(true);
manager.fireContextsChangedEvent();
modelManager.refresh();
}
}
}
@@ -684,6 +687,7 @@ public class ExtendedContextColumnPropertyAccessor<R> implements IColumnProperty
&& jobContextManager.isOriginalParameter(param.getName())) {
jobContextManager.setModified(true);
manager.fireContextsChangedEvent();
modelManager.refresh();
}
}
}

View File

@@ -78,6 +78,7 @@ public class RoutinesFunctionProposal implements IContentProposal {
message += Messages.getString("RoutinesFunctionProposal.CreatedBy.v1");
message += Messages.getString("RoutinesFunctionProposal.ReturnType.v1");
message += Messages.getString("RoutinesFunctionProposal.VariableName.v1");
message = message.replaceAll("\n", System.getProperty("line.separator", "\n")); // for display on Windows platform
MessageFormat format = new MessageFormat(message);
Object[] args = new Object[] { function.getDescription(),

View File

@@ -0,0 +1,89 @@
// ============================================================================
//
// 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.core.ui.utils;
import org.apache.commons.lang3.StringUtils;
import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
public class ContextTypeValidator {
public static boolean isMatchType(ContextParameterType contextParam) {
return isMatchType(contextParam.getType(), contextParam.getValue());
}
public static boolean isMatchType(String type, Object objValue) {
String strValue = null;
if (objValue == null) {
return true;
}
if (objValue instanceof String) {
strValue = (String) objValue;
}
if (StringUtils.isEmpty(strValue)) {
return true;
}
boolean isValid = true;
switch (type) {
case "id_Integer": {
try {
ParserUtils.parseTo_int(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
case "id_Double": {
try {
ParserUtils.parseTo_double(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
case "id_Float": {
try {
ParserUtils.parseTo_float(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
case "id_BigDecimal": {
try {
ParserUtils.parseTo_BigDecimal(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
case "id_Long": {
try {
ParserUtils.parseTo_long(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
case "id_Short": {
try {
ParserUtils.parseTo_short(strValue);
} catch (NumberFormatException ex) {
isValid = false;
}
break;
}
}
return isValid;
}
}

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.core.ui.utils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class ParserUtils {
public static List<String> parseTo_List(String s) {
return parseTo_List(s, null);
}
/**
* the source should be a string wrapped in chars[ ] which stands for it is a collection
*
* @param stSrc
* @param fieldSep
* @return
*/
public static List<String> parseTo_List(final String strSrc, String fieldSep) {
if (strSrc == null) {
return null;
}
List<String> list = new ArrayList<String>();
// the source string is wrap in [] which means it is a collection
if ((fieldSep == null || "".equals(fieldSep)) || !(strSrc.startsWith("[") && strSrc.endsWith("]"))) {
list.add(strSrc);
return list;
}
String strTemp = strSrc.substring(1, strSrc.length() - 1); // remove the [ ]
for (String str : strTemp.split(fieldSep, -1)) {
list.add(str);
}
return list;
}
public static Character parseTo_Character(String s) {
if (s == null) {
return null;
}
return s.charAt(0);
}
public static char parseTo_char(String s) {
return parseTo_Character(s);
}
public static Byte parseTo_Byte(String s) {
if (s == null) {
return null;
}
return Byte.decode(s).byteValue();
}
public static Byte parseTo_Byte(String s, boolean isDecode) {
if (s == null) {
return null;
}
if (isDecode) {
return Byte.decode(s).byteValue();
} else {
return Byte.parseByte(s);
}
}
public static byte parseTo_byte(String s) {
return parseTo_Byte(s);
}
public static byte parseTo_byte(String s, boolean isDecode) {
return parseTo_Byte(s, isDecode);
}
public static Double parseTo_Double(String s) {
if (s == null) {
return null;
}
return Double.parseDouble(s);
}
public static double parseTo_double(String s) {
return parseTo_Double(s);
}
public static float parseTo_float(String s) {
return Float.parseFloat(s);
}
public static Float parseTo_Float(String s) {
if (s == null) {
return null;
}
return parseTo_float(s);
}
public static int parseTo_int(String s) {
return Integer.parseInt(s);
}
public static int parseTo_int(String s, boolean isDecode) {
if (isDecode) {
return Integer.decode(s).intValue();
} else {
return Integer.parseInt(s);
}
}
public static Integer parseTo_Integer(String s) {
if (s == null) {
return null;
}
return parseTo_int(s);
}
public static Integer parseTo_Integer(String s, boolean isDecode) {
if (s == null) {
return null;
}
return parseTo_int(s, isDecode);
}
public static short parseTo_short(String s) {
return Short.parseShort(s);
}
public static short parseTo_short(String s, boolean isDecode) {
if (isDecode) {
return Short.decode(s).shortValue();
} else {
return Short.parseShort(s);
}
}
public static Short parseTo_Short(String s) {
if (s == null) {
return null;
}
return parseTo_short(s);
}
public static Short parseTo_Short(String s, boolean isDecode) {
if (s == null) {
return null;
}
return parseTo_short(s, isDecode);
}
public static long parseTo_long(String s) {
return Long.parseLong(s);
}
public static long parseTo_long(String s, boolean isDecode) {
if (isDecode) {
return Long.decode(s).longValue();
} else {
return Long.parseLong(s);
}
}
public static Long parseTo_Long(String s) {
if (s == null) {
return null;
}
return parseTo_long(s);
}
public static Long parseTo_Long(String s, boolean isDecode) {
if (s == null) {
return null;
}
return parseTo_long(s, isDecode);
}
public static Boolean parseTo_Boolean(String s) {
if (s == null) {
return null;
}
if (s.equals("1")) { //$NON-NLS-1$
return Boolean.parseBoolean("true"); //$NON-NLS-1$
}
return Boolean.parseBoolean(s);
}
public static boolean parseTo_boolean(String s) {
return parseTo_Boolean(s);
}
public static String parseTo_String(String s) {
return s;
}
public static String parseTo_String(final List<String> s, String fieldSep) {
if (s == null) {
return null;
}
StringBuffer result = new StringBuffer();
result.append("[");
for (int i = 0; i < s.size(); i++) {
if (i != 0) {
result.append(fieldSep);
}
result.append(s.get(i));
}
result.append("]");
return result.toString();
}
public static BigDecimal parseTo_BigDecimal(String s) {
if (s == null) {
return null;
}
try {
return new BigDecimal(s);
} catch (NumberFormatException nfe) {
if (nfe.getMessage() == null) {
throw new NumberFormatException("Incorrect input \"" + s + "\" for BigDecimal.");
} else {
throw nfe;
}
}
}
}

View File

@@ -63,6 +63,12 @@ public interface IGITProviderService extends IService {
*/
boolean isStandardMode();
/**
* Whether git storage mode is set in preference or not
* @return
*/
boolean isGitModeInPreference();
/**
* Set git mode
* @param standardMode

View File

@@ -16,14 +16,14 @@
<jcache.version>1.0.5</jcache.version>
<jcache_spec.version>1.0-alpha-1</jcache_spec.version>
<johnzon.version>1.2.19</johnzon.version>
<meecrowave.version>1.2.14</meecrowave.version>
<meecrowave.version>1.2.15</meecrowave.version>
<microprofile.version>1.2.1</microprofile.version>
<owb.version>2.0.27</owb.version>
<slf4j.version>1.7.34</slf4j.version>
<tomcat.version>9.0.68</tomcat.version>
<tomcat.version>9.0.73</tomcat.version>
<xbean.version>4.20</xbean.version>
<reload4j.version>1.2.22</reload4j.version>
<log4j2.version>2.18.0</log4j2.version>
<log4j2.version>2.20.0</log4j2.version>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
<repositories>

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.53.0</tcomp.version>
<tcomp.version>1.55.2</tcomp.version>
<slf4j.version>1.7.34</slf4j.version>
<reload4j.version>1.2.22</reload4j.version>
</properties>

View File

@@ -11,6 +11,10 @@ ProjectPomProjectSettingPage_FilterPomLabel=Filtrer pour utiliser la g\u00E9n\u0
ProjectPomProjectSettingPage_FilterErrorMessage=Le filtre n'est pas valide.
ProjectPomProjectSettingPage.syncAllPomsButtonText=Forcer la resynchronisation compl\u00E8te des POM
ProjectPomProjectSettingPage.syncBuildTypesButtonText=Forcer la resynchronisation compl\u00E8te des types de build
ProjectPomProjectSettingPage.validateTitle=R\u00E9sultat de la validation
ProjectPomProjectSettingPage.warningTip=La configuration par d\u00E9faut sera \u00E9cras\u00E9e.\n
ProjectPomProjectSettingPage.errorTip=Impossible d'\u00E9craser la configuration par d\u00E9faut.\n
ProjectPomProjectSettingPage.preview=Aper\u00E7u
AbstractPersistentProjectSettingPage.syncAllPoms=Mettre \u00E0 jour tous les POM ? \n Cette op\u00E9ration peut prendre un moment, selon la taille de votre projet.
MavenProjectSettingPage.filterExampleMessage=Exemples de filtres\u00A0:\nlibell\u00E9=monJob \t\t\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob"\n!(libell\u00E9=monJob) \t\t\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf celui nomm\u00E9 "monJob"\n(path=folder1/folder2) \t\t\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2"\n(chemin=dossier1/dossier2)ou(libell\u00E9=monJob)\t=> G\u00E9n\u00E9rer tous Jobs dans le dossier "dossier1/dossier2" ou nomm\u00E9 "monJob"\n(libell\u00E9=monJob)et(version=0.2)\t\t=> G\u00E9n\u00E9rer uniquement le Job nomm\u00E9 "monJob" avec une version 0.2\n!((libell\u00E9=monJob)et(version=0.1))\t\t=> G\u00E9n\u00E9rer tous les Jobs sauf "monJob" version 0.1
MavenProjectSettingPage.refModuleText=Configurer les modules du projet de r\u00E9f\u00E9rence dans le profil

View File

@@ -11,6 +11,10 @@ ProjectPomProjectSettingPage_FilterPomLabel=POM\u306E\u751F\u6210\u306B\u4F7F\u7
ProjectPomProjectSettingPage_FilterErrorMessage=\u30D5\u30A3\u30EB\u30BF\u30FC\u304C\u7121\u52B9\u3067\u3059\u3002
ProjectPomProjectSettingPage.syncAllPomsButtonText=\u5B8C\u5168\u306A\u518D\u540C\u671FPOM\u3092\u5F37\u5236
ProjectPomProjectSettingPage.syncBuildTypesButtonText=\u5B8C\u5168\u306A\u518D\u540C\u671F\u30D3\u30EB\u30C9\u30BF\u30A4\u30D7\u3092\u5F37\u5236
ProjectPomProjectSettingPage.validateTitle=\u691C\u8A3C\u7D50\u679C
ProjectPomProjectSettingPage.warningTip=\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8A2D\u5B9A\u306F\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\n
ProjectPomProjectSettingPage.errorTip=\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8A2D\u5B9A\u3092\u4E0A\u66F8\u304D\u3067\u304D\u307E\u305B\u3093\u3002\n
ProjectPomProjectSettingPage.preview=\u30D7\u30EC\u30D3\u30E5\u30FC
AbstractPersistentProjectSettingPage.syncAllPoms=POM\u3092\u3059\u3079\u3066\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u307E\u3059\u304B? \n \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B5\u30A4\u30BA\u306B\u3088\u3063\u3066\u306F\u3053\u306E\u64CD\u4F5C\u3067\u9577\u3044\u6642\u9593\u304C\u304B\u304B\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002
MavenProjectSettingPage.filterExampleMessage=\u30D5\u30A3\u30EB\u30BF\u30FC\u306E\u4F8B:\nlabel=myJob \t\t\t\t=> "myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u3060\u3051\u3092\u751F\u6210\n!(label=myJob) \t\t\t\t=> "myJob"\u3068\u3044\u3046\u540D\u524D\u4EE5\u5916\u306E\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210\n(path=folder1/folder2) \t\t\t=> "folder1/folder2"\u3068\u3044\u3046\u30D5\u30A3\u30EB\u30C0\u30FC\u306B\u3042\u308B\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210\n(path=folder1/folder2)or(label=myJob)\t=> "folder1/folder2"\u3068\u3044\u3046\u30D5\u30A9\u30EB\u30C0\u30FC\u306B\u3042\u308B\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u3001\u307E\u305F\u306F"myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u3092\u751F\u6210\n(label=myJob)and(version=0.2)\t\t=> \u30D0\u30FC\u30B8\u30E7\u30F30.2\u3067"myJob"\u3068\u3044\u3046\u540D\u524D\u306E\u30B8\u30E7\u30D6\u306E\u307F\u751F\u6210\n!((label=myJob)and(version=0.1))\t\t=> \u30D0\u30FC\u30B8\u30E7\u30F30.1\u3067"myJob"\u3068\u3044\u3046\u540D\u524D\u4EE5\u5916\u306E\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u751F\u6210
MavenProjectSettingPage.refModuleText=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3067\u53C2\u7167\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8A2D\u5B9A

View File

@@ -11,6 +11,10 @@ ProjectPomProjectSettingPage_FilterPomLabel=\u7528\u4E8E\u751F\u6210 pom \u7684\
ProjectPomProjectSettingPage_FilterErrorMessage=\u7B5B\u9009\u5668\u65E0\u6548\u3002
ProjectPomProjectSettingPage.syncAllPomsButtonText=\u5F3A\u5236\u5B8C\u5168\u91CD\u65B0\u540C\u6B65 POM
ProjectPomProjectSettingPage.syncBuildTypesButtonText=\u5F3A\u5236\u91CD\u65B0\u540C\u6B65\u6784\u5EFA\u7C7B\u578B
ProjectPomProjectSettingPage.validateTitle=\u9A8C\u8BC1\u7ED3\u679C
ProjectPomProjectSettingPage.warningTip=\u9ED8\u8BA4\u8BBE\u7F6E\u5C06\u88AB\u8986\u76D6\u3002\n
ProjectPomProjectSettingPage.errorTip=\u65E0\u6CD5\u8986\u76D6\u9ED8\u8BA4\u8BBE\u7F6E\u3002\n
ProjectPomProjectSettingPage.preview=\u9884\u89C8
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

View File

@@ -377,8 +377,8 @@ public class PomIdsHelper {
if (version == null) {
version = VersionUtils.getPublishVersion(property.getVersion());
}
if (useSnapshot && version != null && !version.contains(MavenConstants.SNAPSHOT)) {
version += MavenConstants.SNAPSHOT;
if (useSnapshot && version != null && !version.contains(MavenConstants.DOT_SNAPSHOT)) {
version += MavenConstants.DOT_SNAPSHOT;
}
}
return version;

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path="lib/apache-mime4j-0.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-1.0.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta-oro-2.0.8.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path="lib/apache-mime4j-core-0.8.9.jar" sourcepath="lib/apache-mime4j-core-0.8.9.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-1.0.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta-oro-2.0.8.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -4,7 +4,7 @@ Bundle-Name: Apache Plug-in
Bundle-SymbolicName: org.talend.libraries.apache
Bundle-Version: 8.0.1.qualifier
Bundle-ClassPath: .,
lib/apache-mime4j-0.6.jar,
lib/apache-mime4j-core-0.8.9.jar,
lib/castor-1.0.3.jar,
lib/jakarta-oro-2.0.8.jar
Bundle-Vendor: .Talend SA.
@@ -16,21 +16,8 @@ Require-Bundle: org.apache.log4j;resolution:=optional,
Export-Package:
org.apache.james.mime4j,
org.apache.james.mime4j.codec,
org.apache.james.mime4j.descriptor,
org.apache.james.mime4j.field,
org.apache.james.mime4j.field.address,
org.apache.james.mime4j.field.address.parser,
org.apache.james.mime4j.field.contentdisposition.parser,
org.apache.james.mime4j.field.contenttype.parser,
org.apache.james.mime4j.field.datetime,
org.apache.james.mime4j.field.datetime.parser,
org.apache.james.mime4j.field.language.parser,
org.apache.james.mime4j.field.mimeversion.parser,
org.apache.james.mime4j.field.structured.parser,
org.apache.james.mime4j.io,
org.apache.james.mime4j.message,
org.apache.james.mime4j.parser,
org.apache.james.mime4j.storage,
org.apache.james.mime4j.util,
org.apache.oro.io,
org.apache.oro.text,

View File

@@ -81,6 +81,11 @@
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
<artifactId>apache-mime4j-core</artifactId>
<version>0.8.9</version>
</dependency>
</dependencies>
<build>
<plugins>
@@ -109,7 +114,7 @@
<excludeTypes>pom</excludeTypes>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<includeGroupIds>ch.qos.reload4j,org.slf4j,org.apache.logging.log4j</includeGroupIds>
<includeGroupIds>ch.qos.reload4j,org.slf4j,org.apache.logging.log4j,org.apache.james</includeGroupIds>
</configuration>
</execution>
</executions>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/talendcsv-1.0.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/talendcsv-1.1.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/csv-1.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

View File

@@ -5,7 +5,8 @@ Bundle-SymbolicName: org.talend.libraries.csv
Bundle-Version: 8.0.1.qualifier
Bundle-ClassPath: .,
lib/csv-1.0.jar,
lib/talendcsv-1.0.0.jar
lib/talendcsv-1.1.0.jar
Require-Bundle: org.slf4j.api
Export-Package: com.talend.csv,
org.skife.csv
Bundle-ActivationPolicy: lazy

View File

@@ -2,4 +2,4 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
lib/csv-1.0.jar,\
lib/talendcsv-1.0.0.jar
lib/talendcsv-1.1.0.jar

View File

@@ -29,7 +29,7 @@
<artifactItem>
<groupId>org.talend.components</groupId>
<artifactId>talendcsv</artifactId>
<version>1.0.0</version>
<version>1.1.0</version>
</artifactItem>
</artifactItems>
</configuration>

View File

@@ -467,13 +467,13 @@ public class TalendDate {
*
* {Category} TalendDate
*
* {param} String("") string : date represent in string
* {param} String("2008/11/24 12:15:25") string : date represent in string
*
* {param} String("yyyy-MM-dd") pattern : date pattern
* {param} String("yyyy/MM/dd HH:mm:ss") pattern : date pattern
*
* {param} int(addValue) nb : the added value
* {param} int(5) nb : the added value
*
* {param} date("MM") dateType : the part to add
* {param} String("dd") dateType : the part to add
*
* {examples}
*
@@ -1153,8 +1153,8 @@ public class TalendDate {
maxDate = "2099-12-31";
}
if (!minDate.matches("\\d{4}-\\d{2}-\\d{2}") || !minDate.matches("\\d{4}-\\d{2}-\\d{2}")) {
throw new IllegalArgumentException("The parameter should be \"yyy-MM-dd\"");
if (!minDate.matches("\\d{4}-\\d{2}-\\d{2}") || !maxDate.matches("\\d{4}-\\d{2}-\\d{2}")) {
throw new IllegalArgumentException("The parameter should be \"yyyy-MM-dd\"");
}
int minYear = Integer.parseInt(minDate.substring(0, 4));
@@ -1216,8 +1216,19 @@ public class TalendDate {
}
/**
* format date to mssql 2008 type datetimeoffset ISO 8601 string with local time zone format string : yyyy-MM-dd
* HH:mm:ss.SSSXXX(JDK7 support it)
* Format date to mssql 2008 type datetimeoffset ISO 8601 string with local time zone format string : yyyy-MM-dd
* HH:mm:ss.SSSXXX (JDK7 support it)
*
* @param date the time value to be formatted into a time string.
* @return the formatted time string.
*
* {talendTypes} String
*
* {Category} TalendDate
*
* {param} date(new Date()) date : the time value to be formatted into a time string
*
* {example} formatDatetimeoffset(new Date()) #
*/
public static String formatDatetimeoffset(Date date) {
String dateString = formatDate("yyyy-MM-dd HH:mm:ss.SSSZ", date);// keep the max precision in java
@@ -1346,14 +1357,28 @@ public class TalendDate {
}
/**
*
* Convert a formatted string to date
*
* @param string Must be a string datatype. Passes the values that you want to convert.
* @param format Enter a valid TO_DATE format string. The format string must match the parts of the string argument
* default formate is "MM/DD/yyyy HH:mm:ss.sss" if not specified.
* default format is "MM/DD/yyyy HH:mm:ss.sss" if not specified.
*
* @return Date
* @throws ParseException
* {example} TO_DATE("1464576463231", "J") #Mon May 30 10:47:43 CST 2016
* {example} TO_DATE("2015-11-21 13:23:45","yyyy-MM-dd HH:mm:ss") #Sat Nov 21 13:23:45 CST 2015
*
* {talendTypes} Date
*
* {Category} TalendDate
*
* {param} String("2015-11-21 13:23:45") string : string Must be a string datatype. Passes the values that you want
* to convert.
*
* {param} String("yyyy-MM-dd HH:mm:ss") format : Enter a valid TO_DATE format string. The format string must match
* the parts of the string argument default format is "MM/DD/yyyy HH:mm:ss.sss" if not specified.
*
*
* {example} TO_DATE("1464576463231", "J") #Mon May 30 10:47:43 CST 2016 {example} TO_DATE("2015-11-21
* 13:23:45","yyyy-MM-dd HH:mm:ss") #Sat Nov 21 13:23:45 CST 2015
*
*/
public static Date TO_DATE(String string, String format) throws ParseException {
@@ -1374,6 +1399,24 @@ public class TalendDate {
}
/**
* Convert a formatted string to date with default format as ""MM/DD/yyyy HH:mm:ss.sss"
*
* @param string Must be a string datatype. Passes the values that you want to convert.
* @return Date
* @throws ParseException
*
* {talendTypes} Date
*
* {Category} TalendDate
*
* {param} String("11/21/2015 13:23:45.111") string : string Must be a string datatype. Passes the values that you
* want to convert.
*
* {example} TO_DATE("11/21/2015 13:23:45.111") #Sat Nov 21 13:23:45.111 CST 2015
*
*/
public static Date TO_DATE(String string) throws ParseException {
return TO_DATE(string, null);
}
@@ -1410,13 +1453,25 @@ public class TalendDate {
}
/**
*
* @param date Passes the values you want to change
* Add values to the specified portion of the date
*
* @param date Passes the values you want to change
* @param format A format string specifying the portion of the date value you want to change.For example, 'mm'.
* @param amount An integer value specifying the amount of years, months, days, hours,
* and so on by which you want to change the date value.
* @return Date NULL if a null value is passed as an argument to the function.
* @param amount An integer value specifying the amount of years, months, days, hours, and so on by which you want
* to change the date value.
* @return Date NULL if a null value is passed as an argument to the function.
* @throws ParseException
*
* {talendTypes} Date
*
* {Category} TalendDate
*
* {param} Date(new Date()) date :
*
* {param} String("HH") format :
*
* {param} int(2) amount :
*
* {example} ADD_TO_DATE(new Date(1464576463231l), "HH",2) #Mon May 30 12:47:43 CST 2016
*/
public static Date ADD_TO_DATE(Date date, String format, int amount) throws ParseException{
@@ -1485,10 +1540,21 @@ public class TalendDate {
}
/**
* Convert a Date to a formatted character string.
*
* @param date Date/Time datatype. Passes the date values you want to convert to character strings.
* @param format Enter a valid TO_CHAR format string. The format string defines the format of the return value,
* @return String. NULL if a value passed to the function is NULL.
* @param date the date value you want to convert to character strings.
* @param format the format of the return value,
* @return String. NULL if a value passed to the function is NULL.
*
* {talendTypes} String
*
* {Category} TalendDate
*
* {param} Date(new Date()) date : the date value you want to convert to character strings.
*
* {param} String("MM/DD/YYYY HH24:MI:SS") format : the format of the return value,
*
* {example} TO_CHAR(new Date(),"MM/DD/YYYY HH24:MI:SS") #
*/
public static String TO_CHAR(Date date, String format) {

View File

@@ -5,6 +5,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PushbackInputStream;
import java.io.Reader;
import java.nio.CharBuffer;
public class UnicodeReader extends Reader {
private static final int BOM_SIZE = 4;
@@ -71,4 +72,16 @@ public class UnicodeReader extends Reader {
public void close() throws IOException {
reader.close();
}
public boolean ready() throws IOException {
return reader.ready();
}
public int read() throws IOException {
return reader.read();
}
public int read(CharBuffer target) throws IOException {
return reader.read(target);
}
}

View File

@@ -250,7 +250,7 @@ FileStep2.fieldSeparatorNotFinishByComma=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5
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
FileStep2.firstRowsIsCaption=\u5217\u540D\u3068\u3057\u3066\u5148\u982D\u884C\u3092\u8A2D\u5B9A
FileStep2.firstRowsIsCaption=\u30AB\u30E9\u30E0\u540D\u3068\u3057\u3066\u5148\u982D\u884C\u3092\u8A2D\u5B9A
FileStep2.footer=\u30D5\u30C3\u30BF\u30FC
FileStep2.footerTip=\u30D5\u30C3\u30BF\u30FC
FileStep2.groupDelimitedFileSettings=\u30D5\u30A1\u30A4\u30EB\u8A2D\u5B9A
@@ -271,10 +271,10 @@ FileStep2.previewProgress=\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u51E6\u7406\u4E2D
FileStep2.refreshPreview=\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u66F4\u65B0
FileStep2.removeEmptyRow=\u7A7A\u306E\u884C\u3092\u30B9\u30AD\u30C3\u30D7
FileStep2.rowSeparator=\u884C\u533A\u5207\u308A
FileStep2.rowSeparatorAlert=\u6587\u5B57\u306E\u30ED\u30A6\u30BB\u30D1\u30EC\u30FC\u30BF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
FileStep2.rowSeparatorAlert=\u6587\u5B57\u306E\u884C\u30BB\u30D1\u30EC\u30FC\u30BF\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.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\u304C\u884C\u533A\u5207\u308A\u306E\u4E00\u90E8\u3067\u3042\u308B\u5834\u5408\u306B\u6709\u52B9\u3067\u3059\u3002
@@ -321,10 +321,10 @@ FileWizardPage.of=of
FileWizardPage.titleCreate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
FileWizardPage.titleUpdate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
GenericSchemaStep2Form.SelectDatabaseType=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30DE\u30C3\u30D4\u30F3\u30B0\u30BF\u30A4\u30D7\u3092\u9078\u629E
GenericSchemaWizard.CreateNewGenericSchema=\u65B0\u3057\u3044\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
GenericSchemaWizard.SaveAsGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
GenericSchemaWizard.UpdateGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
ImportSchemaFileWizard.WizardTitle=XML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
GenericSchemaWizard.CreateNewGenericSchema=\u65B0\u3057\u3044\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
GenericSchemaWizard.SaveAsGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
GenericSchemaWizard.UpdateGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
ImportSchemaFileWizard.WizardTitle=XML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
LDAPSchemaStep1Form.CheckConnection= \u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u305F\u3081\u306B\u4E0B\u8A18\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
LDAPSchemaStep1Form.CheckNetWorkParameter=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u30C1\u30A7\u30C3\u30AF
LDAPSchemaStep1Form.EncryptionMethod=\u6697\u53F7\u5316\u65B9\u5F0F\uFF1A
@@ -471,7 +471,7 @@ WSDLSchemaStep1Form.TimeOutTitle=\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8(\u79D2)
WSDLSchemaWizard.CreateNewWSDLSchema=\u65B0\u3057\u3044WSDL\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
WSDLSchemaWizard.SaveAsWSDLSchema=WSDL\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
WSDLSchemaWizard.UpdateWSDLSchema=WSDL\u30B9\u30AD\u30FC\u30DE\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>,
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>
XmlFileStep1.filepathXml=XML
XmlFileStep1.groupFileViewer=\u30B9\u30AD\u30FC\u30DE\u30D3\u30E5\u30FC\u30A2\u30FC
XmlFileStep1.groupSchemaTarget=\u30BF\u30FC\u30B2\u30C3\u30C8\u30B9\u30AD\u30FC\u30DE

View File

@@ -167,6 +167,32 @@ public class ExtendedNodeConnectionContextUtils {
DataBricksDriverNodeType,
DataBricksNodeType,
// Kubernetes
k8sSubmitMode,
k8sMaster,
k8sInstances,
k8sUseRegistrySecret,
k8sRegistrySecret,
k8sImage,
k8sNamespace,
k8sServiceAccount,
k8sDistUpload,
k8sS3Bucket,
k8sS3Folder,
k8sS3Credentials,
k8sS3AccessKey,
k8sS3SecretKey,
k8sBlobAccount,
k8sBlobContainer,
k8sBlobSecretKey,
k8sAzureAccount,
k8sAzureCredentials,
k8sAzureContainer,
k8sAzureSecretKey,
k8sAzureAADKey,
k8sAzureAADClientID,
k8sAzureAADDirectoryID,
//Knox
SparkMode,
UseKnox,

View File

@@ -18,7 +18,7 @@
</classloader>
<classloader
index="HIVE:AMAZON_EMR:MapR_EMR:STANDALONE"
libraries="hadoop-core-0.20.203.0.jar;reload4j-1.2.22.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.22.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
@@ -133,84 +133,11 @@
required="true">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.metadata.managment"
language="java"
message="Needed for plugin org.talend.metadata.managment"
mvn_uri="mvn:org.talend.libraries/wsdl4j-1.5.1/6.0.0"
name="wsdl4j-1.5.1.jar"
required="false"
uripath="platform:/plugin/org.talend.libraries.apache/lib/wsdl4j-1.5.1.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard for hive HDP 2.0 Embedded"
name="httpcore-4.1.2.jar" mvn_uri="mvn:org.talend.libraries/httpcore-4.1.2/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.apache.http/lib/httpcore-4.1.2.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard for hive HDP 2.0"
name="httpclient-4.5.13.jar" mvn_uri="mvn:org.apache.httpcomponents/httpclient/4.5.13"
required="true">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="hive-service-0.7.1.jar" mvn_uri="mvn:org.talend.libraries/hive-service-0.7.1/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/hive-service-0.7.1.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="hadoop-core-0.20.203.0.jar" mvn_uri="mvn:org.talend.libraries/hadoop-core-0.20.203.0/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/hadoop-core-0.20.203.0.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="hive-exec-0.7.1.jar" mvn_uri="mvn:org.talend.libraries/hive-exec-0.7.1/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/hive-exec-0.7.1.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="hive-metastore-0.7.1.jar" mvn_uri="mvn:org.talend.libraries/hive-metastore-0.7.1/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/hive-metastore-0.7.1.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="libfb303.jar" mvn_uri="mvn:org.talend.libraries/libfb303/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/libfb303.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="hive-jdbc-0.7.1.jar" mvn_uri="mvn:org.talend.libraries/hive-jdbc-0.7.1/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.hadoop.apache.0.20.203/lib/hive-jdbc-0.7.1.jar">
</libraryNeeded>
<libraryNeeded
context="Hive wizard"
language="java"
message="Wizard use for Hive"
name="commons-lang-2.4.jar" mvn_uri="mvn:org.talend.libraries/commons-lang-2.4/6.0.0"
required="true"
uripath="platform:/plugin/org.talend.libraries.apache.common/lib/commons-lang-2.4.jar">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.metadata.managment"

View File

@@ -19,8 +19,6 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import metadata.managment.i18n.Messages;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.talend.cwm.helper.ColumnSetHelper;
@@ -29,6 +27,7 @@ import org.talend.metadata.managment.utils.MetadataConnectionUtils;
import org.talend.utils.sql.metadata.constants.GetTable;
import org.talend.utils.sql.metadata.constants.TableType;
import metadata.managment.i18n.Messages;
import orgomg.cwm.resource.relational.NamedColumnSet;
/**
@@ -177,9 +176,9 @@ public abstract class AbstractTableBuilder<T extends NamedColumnSet> extends Cwm
String tableComment = tablesSet.getString(GetTable.REMARKS.name());
if (StringUtils.isBlank(tableComment)) {
String dbProductName = getConnectionMetadata(connection).getDatabaseProductName();
String selectRemarkOnTable = MetadataConnectionUtils.getCommonQueryStr(dbProductName, tableName);
String selectRemarkOnTable = MetadataConnectionUtils.getCommonQueryStr(dbProductName);
if (selectRemarkOnTable != null) {
tableComment = executeGetCommentStatement(selectRemarkOnTable);
tableComment = executeGetCommentStatement(selectRemarkOnTable, tableName);
}
}
return tableComment;

View File

@@ -14,14 +14,14 @@ package org.talend.core.model.metadata.builder.database;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import metadata.managment.i18n.Messages;
import org.apache.log4j.Logger;
import metadata.managment.i18n.Messages;
/**
* @author scorreia
*
@@ -73,11 +73,11 @@ abstract class CwmBuilder {
*/
protected String executeGetCommentStatement(String queryStmt) {
String comment = null;
Statement statement = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
statement = connection.createStatement();
statement.execute(queryStmt);
statement = connection.prepareStatement(queryStmt);
resultSet = statement.executeQuery();
// get the results
resultSet = statement.getResultSet();
@@ -108,4 +108,40 @@ abstract class CwmBuilder {
return comment;
}
protected String executeGetCommentStatement(String queryStmt, String tableName) {
String comment = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
statement = connection.prepareStatement(queryStmt);
statement.setString(1, tableName);
resultSet = statement.executeQuery();
if (resultSet != null) {
while (resultSet.next()) {
comment = (String) resultSet.getObject(1);
}
}
} catch (SQLException e) {
// do nothing here
} finally {
// -- release resources
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
log.error(e, e);
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
log.error(e, e);
}
}
}
return comment;
}
}

View File

@@ -819,6 +819,33 @@ public class MetadataConnectionUtils {
}
public static String getCommonQueryStr(String productName) {
if (productName == null) {
return null;
}
productName = productName.replaceAll(" ", "_"); //$NON-NLS-1$ //$NON-NLS-2$
EDataBaseType eDataBaseType = null;
try {
eDataBaseType = EDataBaseType.valueOf(productName);
} catch (Exception e) {
eDataBaseType = EDataBaseType.Microsoft_SQL_Server;
}
String sqlStr = ""; //$NON-NLS-1$
switch (eDataBaseType) {
case Oracle:
sqlStr = "SELECT COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME= ? "; //$NON-NLS-1$
break;
case MySQL:
sqlStr = "SELECT TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_NAME= ? "; //$NON-NLS-1$
break;
default:
sqlStr = null;
}
return sqlStr;
}
/**
* get Comment Query Str.
*

View File

@@ -23,6 +23,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -243,20 +244,14 @@ public class MigrationToolService implements IMigrationToolService {
sortMigrationTasks(toExecute);
final List<MigrationTask> done = new ArrayList<MigrationTask>(storedMigrations);
int nbMigrationsToDo = 0;
for (IProjectMigrationTask task : toExecute) {
MigrationTask mgTask = MigrationUtil.findMigrationTask(done, task);
if (mgTask == null && !task.isDeprecated()) {
nbMigrationsToDo++;
}
}
boolean hasTaskToExecute = toExecute.stream()
.anyMatch(task -> !task.isDeprecated() && MigrationUtil.findMigrationTask(done, task) == null);
// force to redo the migration task for the relations only if user ask for "clean" or if relations is empty
// or if there is at least another migration to do.
if (!beforeLogon
&& (!RelationshipItemBuilder.INDEX_VERSION.equals(project.getEmfProject().getItemsRelationVersion()) || nbMigrationsToDo > 0)) {
if (!beforeLogon && (!RelationshipItemBuilder.INDEX_VERSION.equals(project.getEmfProject().getItemsRelationVersion())
|| hasTaskToExecute)) {
// force to redo this migration task, to make sure the relationship is done correctly
// done.remove(RELATION_TASK);
MigrationUtil.removeMigrationTaskById(done, RELATION_TASK);
RelationshipItemBuilder.getInstance().unloadRelations();
@@ -267,39 +262,35 @@ public class MigrationToolService implements IMigrationToolService {
RelationshipItemBuilder.JOBLET_RELATION, true);
// reset
RelationshipItemBuilder.getInstance().unloadRelations();
nbMigrationsToDo++;
hasTaskToExecute = true;
}
if (nbMigrationsToDo == 0) {
boolean checkDupContext = !beforeLogon && Boolean.getBoolean("duplicate.context.reference.check");
if (!hasTaskToExecute && !checkDupContext) {
return;
}
// force execute migration in case user copy-past items with diffrent path on the file system and refresh
// the studio,it may cause bug TDI-19229
MigrationUtil.removeMigrationTaskById(done, "org.talend.repository.model.migration.FixProjectResourceLink");
if (beforeLogon) {
// for every migration, force reset to default maven template
MigrationUtil.removeMigrationTaskById(done, "org.talend.repository.model.migration.ResetMavenTemplateMigrationTask");
if (checkDupContext) {
MigrationUtil.removeMigrationTaskById(done,
"org.talend.repository.model.migration.RemoveDuplicateContextReferencesMigrationTask");
}
if (hasTaskToExecute) {
// force execute migration in case user copy-past items with diffrent path on the file system and refresh
// the studio,it may cause bug TDI-19229
MigrationUtil.removeMigrationTaskById(done, "org.talend.repository.model.migration.FixProjectResourceLink");
boolean haveAnyBinFolder = false; // to avoid some problems of migration, sometimes
for (ERepositoryObjectType type : (ERepositoryObjectType[]) ERepositoryObjectType.values()) {
if (!type.hasFolder()) {
continue;
if (beforeLogon) {
// for every migration, force reset to default maven template
MigrationUtil.removeMigrationTaskById(done,
"org.talend.repository.model.migration.ResetMavenTemplateMigrationTask");
}
String folderName = ERepositoryObjectType.getFolderName(type);
if (folderName == null || "".equals(folderName)) {
continue;
boolean hasBinFolder = Stream.of((ERepositoryObjectType[]) ERepositoryObjectType.values())
.filter(type -> type.hasFolder()).map(ERepositoryObjectType::getFolderName).filter(StringUtils::isNotBlank)
.map(folderName -> fsProject.getFolder(folderName))
.anyMatch(folder -> folder.exists() && folder.getFolder("bin").exists());
if (hasBinFolder) {
MigrationUtil.removeMigrationTaskById(done, "org.talend.repository.model.migration.RemoveBinFolderMigrationTask");
}
IFolder folder = fsProject.getFolder(folderName);
if (folder.exists() && folder.getFolder("bin").exists()) { //$NON-NLS-1$
haveAnyBinFolder = true;
break;
}
}
if (haveAnyBinFolder) {
MigrationUtil.removeMigrationTaskById(done, "org.talend.repository.model.migration.RemoveBinFolderMigrationTask");
}
final SubProgressMonitor subProgressMonitor = new SubProgressMonitor(monitorWrap, toExecute.size());

View File

@@ -95,7 +95,7 @@ _UI_BaseBusinessItemRelationship_target_feature=\u30BF\u30FC\u30B2\u30C3\u30C8
_UI_DirectionalBusinessItemRelationship_type=\u7247\u65B9\u5411\u30D3\u30B8\u30CD\u30B9\u30A2\u30A4\u30C6\u30E0\u95A2\u4FC2
_UI_BidirectionalBusinessItemRelationship_type=\u53CC\u65B9\u5411\u30D3\u30B8\u30CD\u30B9\u30A2\u30A4\u30C6\u30E0\u95A2\u4FC2
_UI_Context_type=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8
_UI_GenericSchemaMetadata_type=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_GenericSchemaMetadata_type=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_SapFunctionMetadata_type=SAP\u95A2\u6570\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_FileExcelMetadata_type=Excel\u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF
_UI_Query_type=\u30AF\u30A8\u30EA\u30FC
@@ -146,7 +146,7 @@ _UI_UserProjectAuthorization_type=\u30E6\u30FC\u30B6\u30FC\u30D7\u30ED\u30B8\u30
_UI_ContextItem_type=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30A2\u30A4\u30C6\u30E0
_UI_SpagoBiServer_type=Spago Bi\u30B5\u30FC\u30D0\u30FC
_UI_License_type=\u30E9\u30A4\u30BB\u30F3\u30B9
_UI_GenericSchemaConnectionItem_type=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_GenericSchemaConnectionItem_type=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_UserModuleAuthorization_type=\u30E6\u30FC\u30B6\u30FC\u30E2\u30B8\u30E5\u30FC\u30EB\u8A8D\u8A3C
_UI_LDAPSchemaConnectionItem_type=LDAP\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
_UI_SalesforceSchemaConnectionItem_type=Salesforce\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A\u30A2\u30A4\u30C6\u30E0
@@ -598,7 +598,7 @@ _UI_QueriesConnection_type=\u30AF\u30A8\u30EA\u30FC\u63A5\u7D9A
_UI_LdifFileConnection_type=LDIF\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_FileExcelConnection_type=Excel\u30D5\u30A1\u30A4\u30EB\u63A5\u7D9A
_UI_XmlXPathLoopDescriptor_type=XML XPath\u30EB\u30FC\u30D7\u8A18\u8FF0\u5B50
_UI_GenericSchemaConnection_type=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A
_UI_GenericSchemaConnection_type=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A
_UI_LDAPSchemaConnection_type=LDAP\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A
_UI_WSDLSchemaConnection_type=Web\u30B5\u30FC\u30D3\u30B9\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A
_UI_SalesforceSchemaConnection_type=Salesforce\u30B9\u30AD\u30FC\u30DE\u63A5\u7D9A

View File

@@ -45,6 +45,7 @@ LinksToolbarItem_exchange=Link to Talend Exchange
LinksToolbarItem_Learn=Talend Help Center - Online Doc and Knowledge Base
LinksToolbarItem_videos=Link to Talend Guided Tutorials
RegisterWizard.windowTitle={0} Registration
ResourceToolbarHandler.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-support-doc?version=cloud&lang=en&env=prd
tips.createJob=First, create a Job for your data flow using the <a>Job Designer</a>.
tips.clickChoose=Right-click and choose the
tips.optionMenu=option in the menu
@@ -58,6 +59,7 @@ tips.welcome=Welcome to
tips.title=is a powerful and flexible tool that can help you take control of your data.
tips.getStart=Before you get started, here are the basics:
tips.runJob=Run Job
TalendHelpDocAction.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-help-menu?version=cloud&lang=en&env=prd
starting.intro1=Welcome to
starting.intro2=This powerful and flexible tool helps you take control of your data
starting.intro3=Before you get started, here are the basics

View File

@@ -45,6 +45,7 @@ LinksToolbarItem_exchange=Lien vers Talend Exchange
LinksToolbarItem_Learn=Talend Help Center - Doc et base de connaissances en ligne
LinksToolbarItem_videos=Lien vers les tutoriels guid\u00E9s Talend
RegisterWizard.windowTitle=Enregistrement de {0}
ResourceToolbarHandler.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-support-doc?version=cloud&lang=fr&env=prd
tips.createJob=D'abord, cr\u00E9ez un Job pour votre flux de donn\u00E9es \u00E0 l'aide du <a>Job Designer</a>.
tips.clickChoose=Cliquez-droit et s\u00E9lectionnez l'option
tips.optionMenu=dans le menu
@@ -58,6 +59,7 @@ tips.welcome=Bienvenue dans
tips.title=est un outil puissant et flexible qui vous permet de contr\u00F4ler vos donn\u00E9es.
tips.getStart=Avant de commencer, voici les bases :
tips.runJob=Ex\u00E9cuter le Job
TalendHelpDocAction.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-help-menu?version=cloud&lang=fr&env=prd
starting.intro1=Bienvenue dans
starting.intro2=Cet outil puissant et flexible vous permet de contr\u00F4ler vos donn\u00E9es
starting.intro3=Avant de commencer, voici les bases

View File

@@ -45,6 +45,7 @@ LinksToolbarItem_exchange=Talend Exchange\u3078\u306E\u30EA\u30F3\u30AF
LinksToolbarItem_Learn=Talend Help Center - \u30AA\u30F3\u30E9\u30A4\u30F3\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9
LinksToolbarItem_videos=Talend\u30C1\u30E5\u30FC\u30C8\u30EA\u30A2\u30EB\u3078\u306E\u30EA\u30F3\u30AF
RegisterWizard.windowTitle={0}\u767B\u9332
ResourceToolbarHandler.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-support-doc?version=cloud&lang=ja&env=prd
tips.createJob=\u307E\u305A\u3001<a>Job Designer</a>\u4F7F\u3063\u3066\u30C7\u30FC\u30BF\u30D5\u30ED\u30FC\u306E\u30B8\u30E7\u30D6\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002
tips.clickChoose=\u53F3\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9078\u629E:
tips.optionMenu=\u30E1\u30CB\u30E5\u30FC\u306E\u30AA\u30D7\u30B7\u30E7\u30F3
@@ -58,6 +59,7 @@ tips.welcome=\u3088\u3046\u3053\u305D
tips.title=\u306F\u3001\u30C7\u30FC\u30BF\u7BA1\u7406\u306B\u5F79\u7ACB\u3064\u5F37\u529B\u3067\u67D4\u8EDF\u306A\u30C4\u30FC\u30EB\u3067\u3059\u3002
tips.getStart=\u4F5C\u696D\u3092\u59CB\u3081\u308B\u524D\u306B\u4EE5\u4E0B\u306E\u57FA\u672C\u4E8B\u9805\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044:
tips.runJob=\u30B8\u30E7\u30D6\u3092\u5B9F\u884C
TalendHelpDocAction.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-help-menu?version=cloud&lang=ja&env=prd
starting.intro1=\u3088\u3046\u3053\u305D
starting.intro2=\u30D1\u30EF\u30D5\u30EB\u3067\u67D4\u8EDF\u306A\u3053\u306E\u30C4\u30FC\u30EB\u306F\u3001\u30C7\u30FC\u30BF\u306E\u7BA1\u7406\u306B\u5F79\u7ACB\u3061\u307E\u3059
starting.intro3=\u958B\u59CB\u3059\u308B\u524D\u306B\u4EE5\u4E0B\u306E\u57FA\u672C\u4E8B\u9805\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002

View File

@@ -45,6 +45,7 @@ LinksToolbarItem_exchange=\u8FDE\u63A5\u5230 Talend Exchange
LinksToolbarItem_Learn=Talend \u5E2E\u52A9\u4E2D\u5FC3 - \u5728\u7EBF\u6587\u6863\u548C\u77E5\u8BC6\u5E93
LinksToolbarItem_videos=\u8FDE\u63A5\u5230 Talend \u6307\u5BFC\u6559\u7A0B
RegisterWizard.windowTitle={0} \u6CE8\u518C
ResourceToolbarHandler.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-support-doc?version=cloud&lang=zh&env=prd
tips.createJob=\u9996\u5148\uFF0C\u4F7F\u7528 <a>Job Designer</a> \u4E3A\u60A8\u7684\u6570\u636E\u6D41\u521B\u5EFA\u4F5C\u4E1A\u3002
tips.clickChoose=\u53F3\u952E\u5355\u51FB\u5E76\u9009\u62E9
tips.optionMenu=\u9009\u9879 (\u83DC\u5355\u4E2D)
@@ -58,6 +59,7 @@ tips.welcome=\u6B22\u8FCE\u4F7F\u7528
tips.title=\u662F\u4E00\u79CD\u5F3A\u5927\u800C\u7075\u6D3B\u7684\u5DE5\u5177\uFF0C\u53EF\u4EE5\u5E2E\u52A9\u60A8\u638C\u63A7\u60A8\u7684\u6570\u636E\u3002
tips.getStart=\u5728\u5F00\u59CB\u4E4B\u524D\uFF0C\u8BF7\u4E86\u89E3\u4EE5\u4E0B\u57FA\u7840\u77E5\u8BC6:
tips.runJob=\u8FD0\u884C\u4F5C\u4E1A
TalendHelpDocAction.documentationLink=https://document-link.us.cloud.talend.com/thc_studio-help-menu?version=cloud&lang=zh&env=prd
starting.intro1=\u6B22\u8FCE\u4F7F\u7528
starting.intro2=\u8FD9\u4E2A\u5F3A\u5927\u800C\u7075\u6D3B\u7684\u5DE5\u5177\u65E8\u5728\u5E2E\u52A9\u60A8\u7BA1\u63A7\u6570\u636E
starting.intro3=\u5728\u5F00\u59CB\u4E4B\u524D\uFF0C\u8BF7\u4E86\u89E3\u4EE5\u4E0B\u57FA\u7840\u77E5\u8BC6

View File

@@ -4,18 +4,14 @@ import org.apache.commons.codec.binary.StringUtils;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.ui.IWorkbenchWindow;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.service.IExchangeService;
import org.talend.core.service.ITutorialsService;
import org.talend.rcp.i18n.Messages;
public class ResourceToolbarHandler extends AbstractHandler {
@@ -25,7 +21,7 @@ public class ResourceToolbarHandler extends AbstractHandler {
public static final String DOCUMENTATION = "Documentation";//$NON-NLS-1$
public static final String DOCUMENTATION_ORIG_URL = "https://help.talend.com";//$NON-NLS-1$
public static final String DOCUMENTATION_ORIG_URL = Messages.getString("ResourceToolbarHandler.documentationLink"); //$NON-NLS-1$
public static final String ASK = "Ask"; //$NON-NLS-1$

View File

@@ -31,9 +31,7 @@ import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.preference.IPreferenceNode;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.application.IActionBarConfigurer;
@@ -52,7 +50,6 @@ import org.talend.core.ui.branding.IBrandingService;
import org.talend.core.ui.perspective.PerspectiveMenuManager;
import org.talend.core.ui.services.IOpenJobScriptActionService;
import org.talend.rcp.i18n.Messages;
import org.talend.rcp.intro.linksbar.LinksToolbarItem;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.ui.actions.toolbar.ProjectSettingsAction;
@@ -241,7 +238,7 @@ public class ActionBarBuildHelper implements IActionBarHelper {
menuBar.add(helpMenu);
// Help
helpMenu.add(ActionFactory.HELP_CONTENTS.create(window));
helpMenu.add(new TalendHelpDocAction());
helpMenu.add(new Separator());
menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));

View File

@@ -38,7 +38,9 @@ import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainer;
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.model.application.ui.basic.MWindowElement;
import org.eclipse.jface.dialogs.TrayDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveRegistry;
import org.eclipse.ui.IWorkbench;
@@ -53,6 +55,8 @@ import org.eclipse.ui.views.IViewRegistry;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.LoginException;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.ui.runtime.CommonUIPlugin;
import org.talend.commons.ui.swt.colorstyledtext.ColorManager;
import org.talend.commons.utils.system.EclipseCommandLine;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.repository.model.ProxyRepositoryFactory;
@@ -63,6 +67,8 @@ import org.talend.core.ui.branding.IBrandingConfiguration;
import org.talend.core.ui.branding.IBrandingService;
import org.talend.core.ui.services.IGitUIProviderService;
import org.talend.designer.codegen.CodeGeneratorActivator;
import org.talend.designer.core.DesignerPlugin;
import org.talend.designer.core.utils.DesignerColorUtils;
import org.talend.designer.runprocess.RunProcessPlugin;
import org.talend.login.ILoginTask;
import org.talend.rcp.TalendSplashHandler;
@@ -90,7 +96,7 @@ public class ApplicationWorkbenchAdvisor extends IDEWorkbenchAdvisor {
private void injectVariables() {
IWorkbench workbench = PlatformUI.getWorkbench();
IEclipseContext activeContext = ((IEclipseContext) workbench.getService(IEclipseContext.class)).getActiveLeaf();
IEclipseContext activeContext = workbench.getService(IEclipseContext.class).getActiveLeaf();
ContextInjectionFactory.inject(this, activeContext);
}
@@ -227,7 +233,7 @@ public class ApplicationWorkbenchAdvisor extends IDEWorkbenchAdvisor {
@Override
public String getInitialWindowPerspectiveId() {
IBrandingService brandingService = (IBrandingService) GlobalServiceRegister.getDefault().getService(
IBrandingService brandingService = GlobalServiceRegister.getDefault().getService(
IBrandingService.class);
if (brandingService != null) {
IBrandingConfiguration brandingConfiguration = brandingService.getBrandingConfiguration();
@@ -285,22 +291,36 @@ public class ApplicationWorkbenchAdvisor extends IDEWorkbenchAdvisor {
@Override
public void postStartup() {
super.postStartup();
try {
if (ICloudSignOnService.get() != null && ICloudSignOnService.get().isSignViaCloud()) {
ICloudSignOnService.get().startHeartBeat();
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
if (!ArrayUtils.contains(Platform.getApplicationArgs(), EclipseCommandLine.TALEND_DISABLE_LOGINDIALOG_COMMAND)) {
RegisterManagement.getInstance().validateRegistration();
}
PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
// not git project, do not show git settings preference page
if (IGITProviderService.get() == null || !IGITProviderService.get().isProjectInGitMode()) {
PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
pm.remove("org.talend.core.prefs" + WorkbenchPlugin.PREFERENCE_PAGE_CATEGORY_SEPARATOR + "org.talend.repository.gitprovider.settings.GitPreferencePage");
}
pm.remove("org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage"); //$NON-NLS-1$
// Re-set
if (!CommonUIPlugin.isFullyHeadless()) {
Display display = Display.getDefault();
if (display == null) {
display = Display.getCurrent();
}
if (display != null) {
display.syncExec(new Runnable() {
@Override
public void run() {
IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
// designer color
DesignerColorUtils.initPreferenceDefault(store);
// default colors for the ColorStyledText.
ColorManager.initDefaultColors(store);
}
});
}
}
}
@Override
@@ -313,9 +333,6 @@ public class ApplicationWorkbenchAdvisor extends IDEWorkbenchAdvisor {
if (commitChanges && IGitUIProviderService.get() != null && IGitUIProviderService.get().checkPendingChanges()) {
preShutwond = false;
}
if (preShutwond && ICloudSignOnService.get() != null) {
ICloudSignOnService.get().stopHeartBeat();
}
return preShutwond;
}

View File

@@ -0,0 +1,40 @@
// ============================================================================
//
// 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.rcp.intro;
import org.eclipse.jface.action.Action;
import org.eclipse.swt.program.Program;
import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
import org.eclipse.ui.internal.WorkbenchImages;
import org.eclipse.ui.internal.WorkbenchMessages;
import org.talend.rcp.i18n.Messages;
/**
* DOC jding class global comment. Detailled comment
*/
public class TalendHelpDocAction extends Action {
private static final String TALEND_DOC_LINK = Messages.getString("TalendHelpDocAction.documentationLink"); //$NON-NLS-1$
public TalendHelpDocAction() {
setText(WorkbenchMessages.HelpContentsAction_text);
setToolTipText(WorkbenchMessages.HelpContentsAction_toolTip);
setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_HELP_CONTENTS));
}
@Override
public void run() {
Program.launch(TALEND_DOC_LINK);
}
}

View File

@@ -48,6 +48,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -63,7 +64,6 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.TreeItem;
@@ -151,7 +151,7 @@ public class ImportItemsWizardPage extends WizardPage {
private final List<String> errors = new ArrayList<String>();
protected Button overwriteButton;
/*
*
*/
@@ -191,16 +191,26 @@ public class ImportItemsWizardPage extends WizardPage {
@Override
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
setControl(composite);
ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL);
setControl(scrolledComposite);
scrolledComposite.setLayout(new GridLayout());
scrolledComposite.setLayoutData( new GridData(GridData.FILL_BOTH));
Composite composite = new Composite(scrolledComposite, SWT.NONE);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
scrolledComposite.setContent(composite);
createSelectionArea(composite);
createImportDependenciesArea(composite);
createItemListArea(composite);
createErrorsListArea(composite);
createAdditionArea(composite);
scrolledComposite.setContent(composite);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
Dialog.applyDialogFont(composite);
}
@@ -658,21 +668,41 @@ public class ImportItemsWizardPage extends WizardPage {
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
optionsArea.setLayoutData(gridData);
Group internalIdGroup = new Group(optionsArea, SWT.NONE);
internalIdGroup.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup"));
internalIdGroup.setLayout(new GridLayout(1, true));
FormData internalIdGroupLayoutData = new FormData();
internalIdGroupLayoutData.top = new FormAttachment(0);
internalIdGroupLayoutData.left = new FormAttachment(0);
internalIdGroup.setLayoutData(internalIdGroupLayoutData);
regenIdBtn = new Button(internalIdGroup, SWT.RADIO);
regenIdBtn.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup_alwaysRegenId"));
Button keepOrigIdBtn = new Button(internalIdGroup, SWT.RADIO);
keepOrigIdBtn.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup_keepOrigId"));
keepOrigIdBtn.setSelection(true);
// Group internalIdGroup = new Group(optionsArea, SWT.NONE);
// internalIdGroup.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup"));
// internalIdGroup.setLayout(new GridLayout(1, true));
// FormData internalIdGroupLayoutData = new FormData();
// internalIdGroupLayoutData.top = new FormAttachment(0);
// internalIdGroupLayoutData.left = new FormAttachment(0);
// internalIdGroup.setLayoutData(internalIdGroupLayoutData);
//
// regenIdBtn = new Button(internalIdGroup, SWT.RADIO);
// regenIdBtn.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup_alwaysRegenId"));
//
// Button keepOrigIdBtn = new Button(internalIdGroup, SWT.RADIO);
// keepOrigIdBtn.setText(Messages.getString("ImportItemsWizardPage_internalIdGroup_keepOrigId"));
// keepOrigIdBtn.setSelection(true);
//
// // see feature 3949
// this.overwriteButton = new Button(optionsArea, SWT.CHECK);
// this.overwriteButton.setText(Messages.getString("ImportItemsWizardPage_overwriteItemsTxt")); //$NON-NLS-1$
// this.overwriteButton.addSelectionListener(new SelectionAdapter() {
//
// @Override
// public void widgetSelected(SelectionEvent e) {
// if (StringUtils.isNotEmpty(directoryPathField.getText()) || StringUtils.isNotEmpty(archivePathField.getText())) {
// populateItems(overwriteButton.getSelection(), true);
// }
// }
//
// });
// FormData overwriteLayoutData = new FormData();
// overwriteLayoutData.top = new FormAttachment(internalIdGroup, 5, SWT.BOTTOM);
// overwriteLayoutData.left = new FormAttachment(internalIdGroup, 0, SWT.LEFT);
// this.overwriteButton.setLayoutData(overwriteLayoutData);
//
// internalIdGroup.setVisible(false);
// see feature 3949
this.overwriteButton = new Button(optionsArea, SWT.CHECK);
this.overwriteButton.setText(Messages.getString("ImportItemsWizardPage_overwriteItemsTxt")); //$NON-NLS-1$
@@ -687,11 +717,9 @@ public class ImportItemsWizardPage extends WizardPage {
});
FormData overwriteLayoutData = new FormData();
overwriteLayoutData.top = new FormAttachment(internalIdGroup, 5, SWT.BOTTOM);
overwriteLayoutData.left = new FormAttachment(internalIdGroup, 0, SWT.LEFT);
overwriteLayoutData.top = new FormAttachment(optionsArea, 5, SWT.BOTTOM);
overwriteLayoutData.left = new FormAttachment(optionsArea, 0, SWT.LEFT);
this.overwriteButton.setLayoutData(overwriteLayoutData);
internalIdGroup.setVisible(false);
}
protected boolean isEnableForExchange() {

View File

@@ -71,7 +71,7 @@ ExtractionFieldsWithXPathEditorView.columnTitle.xPath=\u76F8\u5BFE\u307E\u305F\u
ExtractionFieldsWithXPathEditorView.columnTitle.columnName=\u30AB\u30E9\u30E0\u540D
ExtractionFieldsWithXPathEditorView.columnName=\u30AB\u30E9\u30E0\u540D
ExtractionFieldsWithXPathEditorView.exist=\u304C\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>,
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>
XmlToXPathLinker.Loop=\u30EB\u30FC\u30D7\u30EA\u30F3\u30AF\u3092\u4F5C\u6210...
XmlToXPathLinker.beginTask.fieldLinksCreation=\u30D5\u30A3\u30FC\u30EB\u30C9\u30EA\u30F3\u30AF\u306E\u4F5C\u6210...
XmlToXPathLinker.illegalArgumentException=currentControl\u306E\u3053\u306E\u30BF\u30A4\u30D7\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093

View File

@@ -36,7 +36,8 @@ Require-Bundle: org.apache.commons.lang,
org.talend.libraries.jackson,
org.apache.xerces,
org.talend.hadoop.distribution,
org.talend.repository
org.talend.repository,
org.talend.designer.mapper
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Export-Package: org.talend.repository.metadata,

View File

@@ -13,7 +13,7 @@ repository.metadataLDAPSchema=LDAP
repository.metadataLDAPSchema.alias=LDAP
repository.metadataWSDLSchema=Web\u30B5\u30FC\u30D3\u30B9
repository.metadataWSDLSchema.alias=WSDL
repository.metadataGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE
repository.metadataGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE
repository.metadataGenericSchema.alias=GENERIC
repository.metadataDbConnection=DB\u63A5\u7D9A
repository.metadataConnections.alias=DB

View File

@@ -159,7 +159,7 @@ DocumentationUpdateWizard.windowTitle=Mettre \u00E0 jour la documentation
EbcdicForm.noDir=Le r\u00E9pertoire du fichier xc2j n'existe pas.
EbcdicForm.genarateFailure=\u00C9chec lors de la g\u00E9n\u00E9ration du fichier xc2j.
EbcdicForm.dataFile=Fichier de donn\u00E9es
EbcdicForm.dataNotExist=Ficher de donn\u00E9es inexistant
EbcdicForm.dataNotExist=Fichier de donn\u00E9es inexistant
EbcdicForm.dataNull=Le chemin d'acc\u00E8s au fichier de donn\u00E9es doit \u00EAtre sp\u00E9cifi\u00E9
EDemoProjectFileType.unknowType=Type de fichier inconnu
EditContextAction.editContext=Modifier le groupe de contextes

View File

@@ -65,9 +65,9 @@ CreateFileXmlAction.action.editTitle=XML\u30D5\u30A1\u30A4\u30EB\u3092\u7DE8\u96
CreateFileXmlAction.action.openTitle=XML\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F
CreateFolderAction.action.title=\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C\u6210
CreateFolderAction.action.toolTipText=\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u4F5C\u6210
CreateGenericSchemaAction.createGeneric=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
CreateGenericSchemaAction.editGeneric=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u7DE8\u96C6
CreateGenericSchemaAction.openGeneric=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u958B\u304F
CreateGenericSchemaAction.createGeneric=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
CreateGenericSchemaAction.editGeneric=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u7DE8\u96C6
CreateGenericSchemaAction.openGeneric=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u958B\u304F
CreateLDAPSchemaAction.createLDAP=LDAP\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
CreateLDAPSchemaAction.editLDAP=LDAP\u30B9\u30AD\u30FC\u30DE\u3092\u7DE8\u96C6
CreateLDAPSchemaAction.openLDAP=LDAP\u30B9\u30AD\u30FC\u30DE\u3092\u958B\u304F
@@ -239,7 +239,7 @@ FileStep2.fieldSeparatorNotFinishByComma=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5
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
FileStep2.firstRowsIsCaption=\u5217\u540D\u3068\u3057\u3066\u5148\u982D\u884C\u3092\u8A2D\u5B9A
FileStep2.firstRowsIsCaption=\u30AB\u30E9\u30E0\u540D\u3068\u3057\u3066\u5148\u982D\u884C\u3092\u8A2D\u5B9A
FileStep2.footer=\u30D5\u30C3\u30BF\u30FC
FileStep2.footerTip=\u30D5\u30C3\u30BF\u30FC
FileStep2.groupDelimitedFileSettings=\u30D5\u30A1\u30A4\u30EB\u8A2D\u5B9A
@@ -262,10 +262,10 @@ FileStep2.quoteDelimitedTip=\u30A8\u30B9\u30B1\u30FC\u30D7\u6587\u5B57\u306A\u30
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.rowSeparatorAlert=\u6587\u5B57\u306E\u884C\u30BB\u30D1\u30EC\u30FC\u30BF\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.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\u304C\u884C\u533A\u5207\u308A\u306E\u4E00\u90E8\u3067\u3042\u308B\u5834\u5408\u306B\u6709\u52B9\u3067\u3059\u3002
@@ -337,8 +337,8 @@ ImportProjectsAction.actionTooltip=\u65E2\u5B58\u306E{0}\u4EF6\u306E\u30D7\u30ED
ImportProjectsUtilities.fileFormatError=\u30D5\u30A1\u30A4\u30EB{0}\u306Fzip\u3067\u3082tar\u30D5\u30A1\u30A4\u30EB\u3067\u3082\u3042\u308A\u307E\u305B\u3093
ImportProjectsUtilities.task.checkingFolder=\u30C1\u30A7\u30C3\u30AF\u4E2D: {0}
ImportProjectsUtilities.task.importingProject=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u4E2D...
ImportSchemaFileAction.Label=XML\u304B\u3089\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
ImportSchemaFileWizard.WizardTitle=XML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
ImportSchemaFileAction.Label=XML\u304B\u3089\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
ImportSchemaFileWizard.WizardTitle=XML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
ItemsVersionChangedDialog.OriginalVersion=\u30AA\u30EA\u30B8\u30CA\u30EB\u30D0\u30FC\u30B8\u30E7\u30F3
ItemsVersionChangedDialog.Title=\u9805\u76EE\u306E\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u78BA\u8A8D
JavaJobScriptsExportWSWizardPage.actionRequest={0}_action_Request
@@ -459,7 +459,7 @@ LoginComposite.projectTitle=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8
LoginComposite.errorTitle=\u30A8\u30E9\u30FC
LoginComposite.errorMessages1=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093
LoginComposite.RESTART=\u518D\u8D77\u52D5
LoginComposite.sharedRepositoryMessage=\u5171\u6709\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304C\u5FC5\u8981\u3067\u3059\u304B\uFF1F
LoginComposite.sharedRepositoryMessage=\u5171\u6709\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304C\u5FC5\u8981\u3067\u3059\u304B?
LoginComposite.Workspace_inuse=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306F\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002\u5225\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
LoginComposite.TisWorkspace_welcome={0}\u3078\u3088\u3046\u3053\u305D!
LoginComposite.welcomeTitle=Talend Open Studio\u3078\u3088\u3046\u3053\u305D
@@ -558,7 +558,7 @@ OpenDocumentationAction.openDocAcitonTipText.openDoc=\u30C9\u30AD\u30E5\u30E1\u3
OpenDocumentationAction.openDocAction.openDoc=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u958B\u304F
OpenJobSelectionDialog.findJob=\u30B8\u30E7\u30D6\u3092\u691C\u7D22
PaletteSettingPage.paletteSettings=\u30D1\u30EC\u30C3\u30C8\u8A2D\u5B9A
PaletteSettingPage.selection1=\u975E\u8868\u793A\u9078\u629E\u3057\u305F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u4F7F\u7528\u3059\u308B\u5834\u5408\u3001\u305D\u308C\u3089\u3092\u8868\u793A\u3055\u305B\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059,,
PaletteSettingPage.selection1=\u975E\u8868\u793A\u9078\u629E\u3057\u305F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u4F7F\u7528\u3059\u308B\u5834\u5408\u3001\u305D\u308C\u3089\u3092\u8868\u793A\u3055\u305B\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
PaletteSettingPage.selection2=\u3042\u308C\u3089\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306F\u81EA\u52D5\u7684\u306B\u8868\u793A\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
PositionalTextTest.println.fieldValue=\u30D5\u30A3\u30FC\u30EB\u30C9\u5024
ProjectSettingDialog.Title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A
@@ -659,7 +659,7 @@ VersionManagementDialog.AllDependencies=\u4F9D\u5B58\u9805\u76EE\u3092\u3059\u30
VersionManagementDialog.Subjob=\u30B5\u30D6\u30B8\u30E7\u30D6\u3092\u3059\u3079\u3066\u9078\u629E
VersionManagementDialog.FixVersion=\u6700\u65B0\u306E\u5834\u5408\u306FtRunJob\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u540C\u4E00\u306B\u3059\u308B
VersionManagementDialog.FixLastVersion=\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3059\u308B\u6642\u306BtRunJob\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u3059\u3079\u3066\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u3053\u306E\u51E6\u7406\u3092\u884C\u3046\u3068\u524D\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u5FA9\u5143\u3055\u308C\u307E\u3059\u3002\n\u305F\u3068\u3048\u3070\u7236\u89AA\u304C1.0 (tRunJob<child, Latest>)\u3067\u3042\u308B\u3068\u3057\u307E\u3059\u3002\n\u30D0\u30FC\u30B8\u30E7\u30F31.1\u306B\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5834\u5408: \n - \u89AA\u306E\u30D0\u30FC\u30B8\u30E7\u30F31.0\u306F(tRunJob<child, 1.0>)\u3092\u542B\u307F\u307E\u3059\u3002\u5B50\u3082\u30D0\u30FC\u30B8\u30E7\u30F31.0\u3067\u5B9F\u884C\u3059\u308B\u305F\u3081\u3067\u3059\u3002\n - \u6700\u65B0\u7248\u3092\u4F7F\u3044\u7D9A\u3051\u308B\u305F\u3081\u3001\u7236\u89AA\u30D0\u30FC\u30B8\u30E7\u30F31.1\u306B\u306F(tRunJob<child, Latest>)\u304C\u542B\u307E\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\n\n\u6CE8\u610F: \u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u65E2\u306B\u56FA\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u304A\u3088\u3073\u6700\u65B0\u7248\u3092\u4F7F\u7528\u3057\u306A\u3044\u5834\u5408\u306F\u4F55\u3082\u3057\u307E\u305B\u3093\u3002
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>,
XPathProposalProvider.contentProposal=<< \u3042\u307E\u308A\u306B\u3082\u591A\u304F\u306E\u30CE\u30FC\u30C9\u3001\u5024\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093 ... >>
XmlFileStep1.groupSchemaTarget=\u30BF\u30FC\u30B2\u30C3\u30C8\u30B9\u30AD\u30FC\u30DE
XmlFileStep1.sourceSchema=\u30BD\u30FC\u30B9\u30B9\u30AD\u30FC\u30DE
XmlFileStep2Form.previewNotAvailable=XSD\u30D5\u30A1\u30A4\u30EB\u306B\u5229\u7528\u53EF\u80FD\u306A\u30D7\u30EC\u30D3\u30E5\u30FC\u306F\u3042\u308A\u307E\u305B\u3093
@@ -1077,9 +1077,9 @@ FileWizardPage.of=of
FileWizardPage.titleCreate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
FileWizardPage.titleUpdate=\u30D5\u30A1\u30A4\u30EB - \u30B9\u30C6\u30C3\u30D7
GenericSchemaStep2Form.SelectDatabaseType=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30DE\u30C3\u30D4\u30F3\u30B0\u30BF\u30A4\u30D7\u3092\u9078\u629E
GenericSchemaWizard.CreateNewGenericSchema=\u65B0\u3057\u3044\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
GenericSchemaWizard.SaveAsGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
GenericSchemaWizard.UpdateGenericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
GenericSchemaWizard.CreateNewGenericSchema=\u65B0\u3057\u3044\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u4F5C\u6210
GenericSchemaWizard.SaveAsGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
GenericSchemaWizard.UpdateGenericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
LDAPSchemaStep1Form.CheckConnection= \u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u305F\u3081\u306B\u4E0B\u8A18\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
LDAPSchemaStep1Form.CheckNetWorkParameter=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u30C1\u30A7\u30C3\u30AF
LDAPSchemaStep1Form.EncryptionMethod=\u6697\u53F7\u5316\u65B9\u5F0F\uFF1A

View File

@@ -77,6 +77,7 @@ import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.cwm.helper.ConnectionHelper;
import org.talend.datatools.xml.utils.ATreeNode;
import org.talend.designer.mapper.ui.color.ColorInfo;
import org.talend.metadata.managment.ui.wizard.metadata.xml.FoxNodeComboViewProvider;
import org.talend.metadata.managment.ui.wizard.metadata.xml.node.Attribute;
import org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element;
@@ -262,7 +263,7 @@ public class XmlFileOutputStep2Form extends AbstractXmlFileStepForm {
tree.setEnabled(false);
}
tree.setLinesVisible(true);
tree.setBackground(tree.getDisplay().getSystemColor(SWT.COLOR_WHITE));
tree.setBackground(ColorInfo.EDITABLE_WIDGET_BACKGROUND());
TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);
column1.setText("XML Tree");
column1.setWidth(120);
@@ -1162,7 +1163,7 @@ public class XmlFileOutputStep2Form extends AbstractXmlFileStepForm {
}
if (errorMessage == null) {
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_WHITE));
text.setBackground(ColorInfo.EDITABLE_WIDGET_BACKGROUND());
} else {
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_RED));
if (showAlertIfError) {

View File

@@ -84,6 +84,7 @@ import org.talend.core.utils.TalendQuoteUtils;
import org.talend.datatools.xml.utils.ATreeNode;
import org.talend.datatools.xml.utils.XPathPopulationUtil;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
import org.talend.designer.mapper.ui.color.ColorInfo;
import org.talend.metadata.managment.ui.preview.AsynchronousPreviewHandler;
import org.talend.metadata.managment.ui.preview.IPreviewHandlerListener;
import org.talend.metadata.managment.ui.preview.ProcessDescription;
@@ -779,7 +780,7 @@ public class XmlFileStep2Form extends AbstractXmlFileStepForm implements IRefres
StyledText text = new StyledText(outputComposite, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.READ_ONLY);
GridData gridData = new GridData(GridData.FILL_BOTH);
text.setLayoutData(gridData);
outputComposite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
outputComposite.setBackground(ColorInfo.EDITABLE_WIDGET_BACKGROUND());
String errorInfo = Messages.getString("FileStep2.noresult") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
errorInfo = errorInfo + Messages.getString("FileStep2.noresultDetailMessage") + "\n"; //$NON-NLS-1$ //$NON-NLS-2$

View File

@@ -42,6 +42,7 @@ import org.talend.commons.utils.data.list.UniqueStringGenerator;
import org.talend.core.model.metadata.builder.connection.SchemaTarget;
import org.talend.core.model.update.ConnectionColumnUpdateManager;
import org.talend.core.ui.metadata.editor.XmlExtractorFieldModel;
import org.talend.designer.mapper.ui.color.ColorInfo;
import org.talend.repository.metadata.i18n.Messages;
/**
@@ -345,7 +346,7 @@ public class ExtractionFieldsWithXPathEditorView extends AbstractDataTableEditor
if (conflictNames.contains(name)) {
getTable().getItem(i).setBackground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
} else {
getTable().getItem(i).setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
getTable().getItem(i).setBackground(ColorInfo.EDITABLE_WIDGET_BACKGROUND());
}
}

View File

@@ -201,8 +201,8 @@ SHOW_IF="USE_FILE_AMBIGUOUS=='true'">
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.1.jar"
MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" REQUIRED="true" />
MODULE="talend_file_enhanced-1.3.jar"
MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.3" REQUIRED="true" />
<IMPORT NAME="Talend_CSV" MODULE="talendcsv.jar"
MVN="mvn:org.talend.libraries/talendcsv/6.0.0"
REQUIRED="true" />

View File

@@ -14,7 +14,7 @@ RepositoryFilterSettingDialog.Item=\u672A\u8A2D\u5B9A\u306E\u30B9\u30C6\u30FC\u3
RepositoryFilterSettingDialog.Label=\u30E9\u30D9\u30EB
RepositoryFilterSettingDialog.LastName=LastName
RepositoryFilterSettingDialog.Login=\u30ED\u30B0\u30A4\u30F3
RepositoryFilterSettingDialog.PatternInfo=\u30D1\u30BF\u30FC\u30F3\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3089\u308C\u3066\u304A\u308A\u3001\n* \u306F\u3042\u3089\u3086\u308B\u6587\u5B57\u5217\u3092\u3001? \u306F\u3042\u3089\u3086\u308B\u6587\u5B57(,, = ,)\u3092\u305D\u308C\u305E\u308C\u8868\u3057\u307E\u3059
RepositoryFilterSettingDialog.PatternInfo=\u30D1\u30BF\u30FC\u30F3\u306F\u30B3\u30F3\u30DE\u3067\u533A\u5207\u3089\u308C\u3066\u304A\u308A\u3001\n* \u306F\u3042\u3089\u3086\u308B\u6587\u5B57\u5217\u3092\u3001? \u306F\u3042\u3089\u3086\u308B\u6587\u5B57(,, = ,)\u3092\u305D\u308C\u305E\u308C\u8868\u3057\u307E\u3059
RepoViewCommonNavigator.Content={1}\u3067{0}\u306B\u3088\u3063\u3066\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059
RepoViewCommonNavigator.Desc= \u8AAC\u660E:
RepoViewCommonNavigator.refresh=\u66F4\u65B0\u4E2D...

View File

@@ -106,6 +106,11 @@ public class TalendThemeService implements ITalendThemeService {
}
}
@Override
public IPreferenceStore getThemePreferenceStore() {
return getPreferenceStore(ITalendThemeService.THEME_PREFERENCE_ID);
}
private IPreferenceStore getPreferenceStore(String bundleId) {
IPreferenceStore prefStore = storeMap.get(bundleId);
if (prefStore == null) {

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