Compare commits
1 Commits
master
...
cmeng/back
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a4cf0424dc |
@@ -284,8 +284,9 @@ public class ComponentModel extends AbstractBasicComponent implements IAdditiona
|
||||
*/
|
||||
@Override // TODO This is dummy implementation. Correct impl should be added soon
|
||||
public List<? extends IElementParameter> createElementParameters(final INode node) {
|
||||
aslkdf
|
||||
ElementParameterCreator creator =
|
||||
new ElementParameterCreator(this, detail, node, reportPath, isCatcherAvailable);
|
||||
new ElementParameterCreator(this, detail, node, reportPath, isCatcherAvailable, null);
|
||||
List<IElementParameter> parameters = (List<IElementParameter>) creator.createParameters();
|
||||
return parameters;
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.talend.sdk.component.studio.service.ComponentService;
|
||||
import org.talend.sdk.component.studio.service.Configuration;
|
||||
import org.talend.sdk.component.studio.service.UiActionsThreadPool;
|
||||
import org.talend.sdk.component.studio.ui.composite.TaCoKitComposite;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.ComponentViewProblemManager;
|
||||
import org.talend.sdk.component.studio.util.TaCoKitConst;
|
||||
import org.talend.sdk.component.studio.websocket.WebSocketClient;
|
||||
|
||||
@@ -212,7 +213,8 @@ public final class Lookups {
|
||||
|
||||
private Composite creatComposite(final Composite parent, final Element element, final EComponentCategory category,
|
||||
final boolean isCompactView) {
|
||||
return new TaCoKitComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS, category, element, isCompactView);
|
||||
return new TaCoKitComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS, category, element, isCompactView,
|
||||
new ComponentViewProblemManager());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.talend.repository.model.RepositoryNode;
|
||||
import org.talend.sdk.component.server.front.model.ConfigTypeNode;
|
||||
import org.talend.sdk.component.studio.metadata.model.TaCoKitConfigurationModel;
|
||||
import org.talend.sdk.component.studio.metadata.node.ITaCoKitRepositoryNode;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.WizardProblemManager;
|
||||
import org.talend.sdk.component.studio.ui.wizard.TaCoKitConfigurationRuntimeData;
|
||||
import org.talend.sdk.component.studio.ui.wizard.TaCoKitCreateWizard;
|
||||
|
||||
@@ -101,6 +102,7 @@ public class CreateTaCoKitConfigurationAction extends TaCoKitMetadataContextualA
|
||||
runtimeData.setCreation(true);
|
||||
runtimeData.setReadonly(false);
|
||||
runtimeData.setConnectionItem(createConnectionItem());
|
||||
runtimeData.setProblemManager(new WizardProblemManager());
|
||||
return runtimeData;
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.talend.sdk.component.studio.metadata.migration.TaCoKitMigrationManage
|
||||
import org.talend.sdk.component.studio.metadata.model.TaCoKitConfigurationItemModel;
|
||||
import org.talend.sdk.component.studio.metadata.model.TaCoKitConfigurationModel;
|
||||
import org.talend.sdk.component.studio.metadata.node.ITaCoKitRepositoryNode;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.WizardProblemManager;
|
||||
import org.talend.sdk.component.studio.ui.wizard.TaCoKitConfigurationRuntimeData;
|
||||
import org.talend.sdk.component.studio.ui.wizard.TaCoKitEditWizard;
|
||||
|
||||
@@ -162,6 +163,7 @@ public class EditTaCoKitConfigurationAction extends TaCoKitMetadataContextualAct
|
||||
runtimeData.setConnectionItem((ConnectionItem) repositoryNode.getObject().getProperty().getItem());
|
||||
runtimeData.setCreation(false);
|
||||
runtimeData.setReadonly(isReadonly());
|
||||
runtimeData.setProblemManager(new WizardProblemManager());
|
||||
return runtimeData;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ public class UpdateResolver extends AbstractParameterResolver {
|
||||
actionOwner.getProperty().getUpdatable().orElseThrow(IllegalStateException::new).getActionName(),
|
||||
Action.Type.UPDATE));
|
||||
|
||||
this.button = new ButtonParameter(element) {
|
||||
this.button = new ButtonParameter(element, actionOwner.getProblemManager()) {
|
||||
@Override
|
||||
public boolean isShow(final List<? extends IElementParameter> listParam) {
|
||||
return isShown.getAsBoolean();
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.talend.sdk.component.studio.model.parameter;
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.model.parameter.command.TacokitCommand;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* ElementParameter which represents button and stores button command, which is executed on button pushed
|
||||
@@ -26,8 +27,8 @@ public class ButtonParameter extends TaCoKitElementParameter {
|
||||
|
||||
private TacokitCommand command;
|
||||
|
||||
public ButtonParameter(final IElement element) {
|
||||
super(element);
|
||||
public ButtonParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
setFieldType(EParameterFieldType.TACOKIT_BUTTON);
|
||||
}
|
||||
|
||||
@@ -41,17 +42,21 @@ public class ButtonParameter extends TaCoKitElementParameter {
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
if (o == this)
|
||||
if (o == this) {
|
||||
return true;
|
||||
if (!(o instanceof ButtonParameter))
|
||||
}
|
||||
if (!(o instanceof ButtonParameter)) {
|
||||
return false;
|
||||
}
|
||||
final ButtonParameter other = (ButtonParameter) o;
|
||||
if (!other.canEqual(this))
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$command = this.getCommand();
|
||||
final Object other$command = other.getCommand();
|
||||
if (this$command == null ? other$command != null : !this$command.equals(other$command))
|
||||
if (this$command == null ? other$command != null : !this$command.equals(other$command)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.talend.sdk.component.studio.model.parameter;
|
||||
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Represents Check parameter. Check parameter is ElementParameter, which EParameterFieldType is CHECK.
|
||||
@@ -24,8 +25,8 @@ import org.talend.core.model.process.IElement;
|
||||
*/
|
||||
public class CheckElementParameter extends TaCoKitElementParameter {
|
||||
|
||||
public CheckElementParameter(final IElement element) {
|
||||
super(element);
|
||||
public CheckElementParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.talend.sdk.component.studio.model.parameter;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.Lookups;
|
||||
import org.talend.sdk.component.studio.debounce.DebouncedAction;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Fires parameter change events only if {@code TIMEOUT} passed from last value changed event
|
||||
@@ -28,8 +29,8 @@ public class DebouncedParameter extends TaCoKitElementParameter {
|
||||
|
||||
private final DebouncedAction debounced = Lookups.debouncer().createAction();
|
||||
|
||||
public DebouncedParameter(final IElement element) {
|
||||
super(element);
|
||||
public DebouncedParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -44,6 +44,7 @@ import org.talend.sdk.component.server.front.model.ConfigTypeNodes;
|
||||
import org.talend.sdk.component.studio.ComponentModel;
|
||||
import org.talend.sdk.component.studio.Lookups;
|
||||
import org.talend.sdk.component.studio.model.connector.ConnectorCreatorFactory;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
import org.talend.sdk.component.studio.util.TaCoKitUtil;
|
||||
import org.talend.sdk.studio.process.TaCoKitNode;
|
||||
|
||||
@@ -76,8 +77,10 @@ public class ElementParameterCreator {
|
||||
*/
|
||||
private ElementParameter updateComponentsParameter;
|
||||
|
||||
private IProblemManager problemManager;
|
||||
|
||||
public ElementParameterCreator(final ComponentModel component, final ComponentDetail detail, final INode node,
|
||||
final String reportPath, final boolean isCatcherAvailable) {
|
||||
final String reportPath, final boolean isCatcherAvailable, final IProblemManager problemManager) {
|
||||
this.component = component;
|
||||
this.detail = detail;
|
||||
this.node = node;
|
||||
@@ -88,6 +91,7 @@ public class ElementParameterCreator {
|
||||
} else {
|
||||
this.properties = emptyList();
|
||||
}
|
||||
this.problemManager = problemManager;
|
||||
}
|
||||
|
||||
public List<? extends IElementParameter> createParameters() {
|
||||
@@ -101,7 +105,8 @@ public class ElementParameterCreator {
|
||||
*/
|
||||
private void addSettings() {
|
||||
if (!properties.isEmpty()) {
|
||||
final PropertyNode root = new PropertyTreeCreator(new WidgetTypeMapper()).createPropertyTree(properties);
|
||||
final PropertyNode root = new PropertyTreeCreator(new WidgetTypeMapper(), problemManager)
|
||||
.createPropertyTree(properties);
|
||||
final SettingVisitor settingVisitor = new SettingVisitor(node, updateComponentsParameter, detail);
|
||||
root.accept(settingVisitor.withCategory(BASIC), Metadatas.MAIN_FORM);
|
||||
root.accept(settingVisitor.withCategory(ADVANCED), Metadatas.ADVANCED_FORM);
|
||||
@@ -111,7 +116,9 @@ public class ElementParameterCreator {
|
||||
// create config type version param
|
||||
properties.stream().filter(p -> p.getConfigurationType() != null && p.getConfigurationTypeName() != null)
|
||||
.forEach(p -> parameters.add(new VersionParameter(node, p.getPath(),
|
||||
String.valueOf(getConfigTypeVersion(p, component.getConfigTypeNodes(), component.getId().getFamilyId())))));
|
||||
String.valueOf(
|
||||
getConfigTypeVersion(p, component.getConfigTypeNodes(), component.getId().getFamilyId())),
|
||||
problemManager)));
|
||||
}
|
||||
|
||||
checkSchemaProperties(new SettingVisitor(node, updateComponentsParameter, detail).withCategory(BASIC));
|
||||
@@ -198,7 +205,7 @@ public class ElementParameterCreator {
|
||||
parameters.add(mainSettingsCreator.createSchemaParameter(connectorWithoutSchema.getName(),
|
||||
"SCHEMA_" + connectorWithoutSchema.getName(),
|
||||
"default",
|
||||
showSchema(connectorWithoutSchema)));
|
||||
showSchema(connectorWithoutSchema), problemManager));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.talend.core.model.process.IConnection;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.core.model.utils.NodeUtil;
|
||||
import org.talend.designer.core.ui.editor.nodes.Node;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* SchemaElementParameter for Component input schema.
|
||||
@@ -32,12 +33,14 @@ public class InputSchemaParameter extends SchemaElementParameter {
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param element IElement to which this parameter belongs
|
||||
* @param name parameter name - unique identifier
|
||||
* @param element IElement to which this parameter belongs
|
||||
* @param name parameter name - unique identifier
|
||||
* @param connectionName a name of connections with which this schema associated
|
||||
* @param IProblemManager manage parameter problems
|
||||
*/
|
||||
public InputSchemaParameter(final IElement element, final String name, final String connectionName) {
|
||||
super(element);
|
||||
public InputSchemaParameter(final IElement element, final String name, final String connectionName,
|
||||
final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
setName(name);
|
||||
setDisplayName(DISPLAY_NAME);
|
||||
setFieldType(EParameterFieldType.TACOKIT_INPUT_SCHEMA);
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Property node, which contains nested properties. This node is used for Tables and Schema
|
||||
@@ -37,8 +38,8 @@ public class ListPropertyNode extends PropertyNode {
|
||||
* @param root specifies whether this node is root node
|
||||
*/
|
||||
public ListPropertyNode(final PropertyDefinitionDecorator property, final EParameterFieldType fieldType,
|
||||
final boolean root) {
|
||||
super(property, fieldType, root);
|
||||
final boolean root, IProblemManager problemManager) {
|
||||
super(property, fieldType, root, problemManager);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,8 +26,7 @@ import org.talend.designer.core.model.components.EParameterName;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
import org.talend.designer.core.ui.editor.nodes.Node;
|
||||
import org.talend.sdk.component.studio.i18n.Messages;
|
||||
import org.talend.sdk.component.studio.util.TaCoKitConst;
|
||||
import org.talend.sdk.component.studio.util.TaCoKitUtil;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* SchemaElementParameter for Component output schema.
|
||||
@@ -38,8 +37,8 @@ public class OutputSchemaParameter extends SchemaElementParameter {
|
||||
public static final String ADDITIONAL_PARAM_METADATA_ELEMENT = "TACOKIT_ADDITIONAL_PARAM_METADATA_ELEMENT";
|
||||
|
||||
public OutputSchemaParameter(final IElement element, final String name, final String connectionName,
|
||||
final String discoverSchema, final boolean show) {
|
||||
super(element);
|
||||
final String discoverSchema, final boolean show, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
|
||||
setName(name);
|
||||
setDisplayName(DISPLAY_NAME);
|
||||
@@ -95,7 +94,7 @@ public class OutputSchemaParameter extends SchemaElementParameter {
|
||||
private void createGuessSchema(final String name, final String connectionName, final String discoverSchemaAction,
|
||||
final boolean show) {
|
||||
if (canAddGuessSchema(connectionName)) {
|
||||
final TaCoKitElementParameter guessSchemaParameter = new TaCoKitElementParameter(getElement());
|
||||
final TaCoKitElementParameter guessSchemaParameter = new TaCoKitElementParameter(getElement(), getProblemManager());
|
||||
guessSchemaParameter.setCategory(EComponentCategory.BASIC);
|
||||
guessSchemaParameter.setContext(connectionName);
|
||||
guessSchemaParameter.updateValueOnly(discoverSchemaAction);
|
||||
@@ -153,6 +152,7 @@ public class OutputSchemaParameter extends SchemaElementParameter {
|
||||
*
|
||||
* @return metedata
|
||||
*/
|
||||
@Override
|
||||
protected Optional<IMetadataTable> getMetadata() {
|
||||
IElement elem = getElement();
|
||||
if (elem == null || !(elem instanceof Node)) {
|
||||
|
||||
@@ -32,6 +32,7 @@ import javax.json.bind.annotation.JsonbCreator;
|
||||
import javax.json.bind.annotation.JsonbProperty;
|
||||
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
public class PropertyNode {
|
||||
|
||||
@@ -56,12 +57,14 @@ public class PropertyNode {
|
||||
*/
|
||||
private final boolean root;
|
||||
|
||||
public PropertyNode(final PropertyDefinitionDecorator property,
|
||||
final EParameterFieldType fieldType,
|
||||
final boolean root) {
|
||||
private IProblemManager problemManager;
|
||||
|
||||
public PropertyNode(final PropertyDefinitionDecorator property, final EParameterFieldType fieldType, final boolean root,
|
||||
IProblemManager problemManager) {
|
||||
this.property = property;
|
||||
this.fieldType = fieldType;
|
||||
this.root = root;
|
||||
this.problemManager = problemManager;
|
||||
this.children = new ArrayList<>();
|
||||
}
|
||||
|
||||
@@ -444,37 +447,54 @@ public class PropertyNode {
|
||||
return this.root;
|
||||
}
|
||||
|
||||
public IProblemManager getProblemManager() {
|
||||
return problemManager;
|
||||
}
|
||||
|
||||
public void setProblemManager(IProblemManager problemManager) {
|
||||
this.problemManager = problemManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
if (o == this)
|
||||
if (o == this) {
|
||||
return true;
|
||||
if (!(o instanceof PropertyNode))
|
||||
}
|
||||
if (!(o instanceof PropertyNode)) {
|
||||
return false;
|
||||
}
|
||||
final PropertyNode other = (PropertyNode) o;
|
||||
if (!other.canEqual(this))
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$parent = this.getParent();
|
||||
final Object other$parent = other.getParent();
|
||||
if (this$parent == null ? other$parent != null : !this$parent.equals(other$parent))
|
||||
if (this$parent == null ? other$parent != null : !this$parent.equals(other$parent)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$children = this.getChildren();
|
||||
final Object other$children = other.getChildren();
|
||||
if (this$children == null ? other$children != null : !this$children.equals(other$children))
|
||||
if (this$children == null ? other$children != null : !this$children.equals(other$children)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$layouts = this.getLayouts();
|
||||
final Object other$layouts = other.getLayouts();
|
||||
if (this$layouts == null ? other$layouts != null : !this$layouts.equals(other$layouts))
|
||||
if (this$layouts == null ? other$layouts != null : !this$layouts.equals(other$layouts)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$property = this.getProperty();
|
||||
final Object other$property = other.getProperty();
|
||||
if (this$property == null ? other$property != null : !this$property.equals(other$property))
|
||||
if (this$property == null ? other$property != null : !this$property.equals(other$property)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$fieldType = this.getFieldType();
|
||||
final Object other$fieldType = other.getFieldType();
|
||||
if (this$fieldType == null ? other$fieldType != null : !this$fieldType.equals(other$fieldType))
|
||||
if (this$fieldType == null ? other$fieldType != null : !this$fieldType.equals(other$fieldType)) {
|
||||
return false;
|
||||
if (this.isRoot() != other.isRoot())
|
||||
}
|
||||
if (this.isRoot() != other.isRoot()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.sdk.component.server.front.model.ConfigTypeNode;
|
||||
import org.talend.sdk.component.server.front.model.SimplePropertyDefinition;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Provides methods for handling {@link PropertyNode} tree
|
||||
@@ -39,8 +40,11 @@ public class PropertyTreeCreator {
|
||||
*/
|
||||
private final WidgetTypeMapper typeMapper;
|
||||
|
||||
public PropertyTreeCreator(final WidgetTypeMapper typeMapper) {
|
||||
private final IProblemManager problemManager;
|
||||
|
||||
public PropertyTreeCreator(final WidgetTypeMapper typeMapper, final IProblemManager problemManager) {
|
||||
this.typeMapper = typeMapper;
|
||||
this.problemManager = problemManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -138,11 +142,11 @@ public class PropertyTreeCreator {
|
||||
case TACOKIT_SUGGESTABLE_TABLE:
|
||||
case TACOKIT_INPUT_SCHEMA:
|
||||
case SCHEMA_TYPE:
|
||||
node = new ListPropertyNode(property, fieldType, isRoot);
|
||||
node = new ListPropertyNode(property, fieldType, isRoot, problemManager);
|
||||
break;
|
||||
|
||||
default:
|
||||
node = new PropertyNode(property, fieldType, isRoot);
|
||||
node = new PropertyNode(property, fieldType, isRoot, problemManager);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.talend.core.model.metadata.IMetadataTable;
|
||||
import org.talend.core.model.metadata.MetadataColumn;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.model.action.IActionParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* TacokitElementParameter, which provides a view for Component metadata (schema) if the form of {@code List<String>}
|
||||
@@ -36,8 +37,8 @@ public abstract class SchemaElementParameter extends TaCoKitElementParameter {
|
||||
*/
|
||||
private static final String STRING = "id_String";
|
||||
|
||||
public SchemaElementParameter(final IElement element) {
|
||||
super(element);
|
||||
public SchemaElementParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,6 +15,25 @@
|
||||
*/
|
||||
package org.talend.sdk.component.studio.model.parameter;
|
||||
|
||||
import static java.util.Collections.emptyMap;
|
||||
import static java.util.Collections.unmodifiableList;
|
||||
import static java.util.Optional.ofNullable;
|
||||
import static java.util.function.Function.identity;
|
||||
import static java.util.stream.Collectors.toList;
|
||||
import static java.util.stream.Collectors.toMap;
|
||||
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.talend.core.model.process.EComponentCategory;
|
||||
@@ -40,25 +59,7 @@ import org.talend.sdk.component.studio.model.parameter.resolver.HealthCheckResol
|
||||
import org.talend.sdk.component.studio.model.parameter.resolver.ParameterResolver;
|
||||
import org.talend.sdk.component.studio.model.parameter.resolver.SuggestionsResolver;
|
||||
import org.talend.sdk.component.studio.model.parameter.resolver.ValidationResolver;
|
||||
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import static java.util.Collections.emptyMap;
|
||||
import static java.util.Collections.unmodifiableList;
|
||||
import static java.util.Optional.ofNullable;
|
||||
import static java.util.function.Function.identity;
|
||||
import static java.util.stream.Collectors.toList;
|
||||
import static java.util.stream.Collectors.toMap;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Creates properties from leafs
|
||||
@@ -115,19 +116,18 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
|
||||
private final List<ParameterResolver> parameterResolvers = new ArrayList<>();
|
||||
|
||||
public SettingVisitor(final IElement iNode,
|
||||
final ElementParameter redrawParameter, final ConfigTypeNode config) {
|
||||
|
||||
public SettingVisitor(final IElement iNode, final ElementParameter redrawParameter, final ConfigTypeNode config) {
|
||||
this(iNode, redrawParameter, config.getActions());
|
||||
this.rootConfigNode = config;
|
||||
}
|
||||
|
||||
public SettingVisitor(final IElement iNode,
|
||||
final ElementParameter redrawParameter, final ComponentDetail detail) {
|
||||
public SettingVisitor(final IElement iNode, final ElementParameter redrawParameter, final ComponentDetail detail) {
|
||||
this(iNode, redrawParameter, detail.getActions());
|
||||
}
|
||||
|
||||
public SettingVisitor(final IElement iNode,
|
||||
final ElementParameter redrawParameter, final Collection<ActionReference> actions) {
|
||||
public SettingVisitor(final IElement iNode, final ElementParameter redrawParameter,
|
||||
final Collection<ActionReference> actions) {
|
||||
this.element = iNode;
|
||||
this.redrawParameter = redrawParameter;
|
||||
this.actions = ofNullable(actions).orElseGet(Collections::emptyList);
|
||||
@@ -240,9 +240,9 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
default:
|
||||
final IElementParameter text;
|
||||
if (node.getProperty().getPlaceholder() == null) {
|
||||
text = new TaCoKitElementParameter(element);
|
||||
text = new TaCoKitElementParameter(element, node.getProblemManager());
|
||||
} else {
|
||||
final TextElementParameter advancedText = new TextElementParameter(element);
|
||||
final TextElementParameter advancedText = new TextElementParameter(element, node.getProblemManager());
|
||||
advancedText.setMessage(node.getProperty().getPlaceholder());
|
||||
text = advancedText;
|
||||
}
|
||||
@@ -342,7 +342,7 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
* Converts default value from String to Boolean and sets it
|
||||
*/
|
||||
private CheckElementParameter visitCheck(final PropertyNode node) {
|
||||
final CheckElementParameter parameter = new CheckElementParameter(element);
|
||||
final CheckElementParameter parameter = new CheckElementParameter(element, node.getProblemManager());
|
||||
commonSetup(parameter, node);
|
||||
return parameter;
|
||||
}
|
||||
@@ -352,7 +352,7 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
* Sets Closed List possible values and sets 1st element as default
|
||||
*/
|
||||
private TaCoKitElementParameter visitClosedList(final PropertyNode node) {
|
||||
final TaCoKitElementParameter parameter = new TaCoKitElementParameter(element);
|
||||
final TaCoKitElementParameter parameter = new TaCoKitElementParameter(element, node.getProblemManager());
|
||||
commonSetup(parameter, node);
|
||||
final PropertyValidation validation = node.getProperty().getValidation();
|
||||
|
||||
@@ -412,7 +412,7 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
}
|
||||
|
||||
private TaCoKitElementParameter visitPrevColumnList(final PropertyNode node) {
|
||||
final TaCoKitElementParameter parameter = new TaCoKitElementParameter(element);
|
||||
final TaCoKitElementParameter parameter = new TaCoKitElementParameter(element, node.getProblemManager());
|
||||
commonSetup(parameter, node);
|
||||
return parameter;
|
||||
}
|
||||
@@ -424,7 +424,8 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
* If parameter is based on schema, then toolbox is not shown
|
||||
*/
|
||||
private TaCoKitElementParameter visitTable(final ListPropertyNode tableNode) {
|
||||
final TaCoKitElementParameter parameter = new TableElementParameter(element, createTableParameters(tableNode));
|
||||
final TaCoKitElementParameter parameter = new TableElementParameter(element, createTableParameters(tableNode),
|
||||
tableNode.getProblemManager());
|
||||
commonSetup(parameter, tableNode);
|
||||
return parameter;
|
||||
}
|
||||
@@ -436,7 +437,8 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
* If parameter is based on schema, then toolbox is not shown
|
||||
*/
|
||||
private TaCoKitElementParameter visitSuggestableTable(final ListPropertyNode tableNode) {
|
||||
final TaCoKitElementParameter parameter = new SuggestableTableParameter(element, createTableParameters(tableNode));
|
||||
final TaCoKitElementParameter parameter = new SuggestableTableParameter(element, createTableParameters(tableNode),
|
||||
tableNode.getProblemManager());
|
||||
commonSetup(parameter, tableNode);
|
||||
return parameter;
|
||||
}
|
||||
@@ -445,11 +447,11 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
final String connectionName = getConnectionName(node);
|
||||
final String discoverSchemaAction = node.getProperty().getConnection().getDiscoverSchema();
|
||||
return new OutputSchemaParameter(getNode(), node.getProperty().getPath(), connectionName, discoverSchemaAction,
|
||||
true);
|
||||
true, node.getProblemManager());
|
||||
}
|
||||
|
||||
private TaCoKitElementParameter visitInSchema(final PropertyNode node) {
|
||||
return new InputSchemaParameter(getNode(), node.getProperty().getPath(), getConnectionName(node));
|
||||
return new InputSchemaParameter(getNode(), node.getProperty().getPath(), getConnectionName(node), node.getProblemManager());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -469,7 +471,7 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
|
||||
private ValueSelectionParameter visitValueSelection(final PropertyNode node) {
|
||||
final SuggestionsAction action = createSuggestionsAction(node);
|
||||
final ValueSelectionParameter parameter = new ValueSelectionParameter(element, action);
|
||||
final ValueSelectionParameter parameter = new ValueSelectionParameter(element, action, node.getProblemManager());
|
||||
commonSetup(parameter, node);
|
||||
return parameter;
|
||||
}
|
||||
@@ -482,9 +484,8 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
}
|
||||
|
||||
protected TaCoKitElementParameter createSchemaParameter(final String connectionName, final String schemaName,
|
||||
final String discoverSchemaAction,
|
||||
final boolean show) {
|
||||
return new OutputSchemaParameter(getNode(), schemaName, connectionName, discoverSchemaAction, show);
|
||||
final String discoverSchemaAction, final boolean show, final IProblemManager problemManager) {
|
||||
return new OutputSchemaParameter(getNode(), schemaName, connectionName, discoverSchemaAction, show, problemManager);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -536,8 +537,8 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
layout.setPosition(tableNode.getLayout(form).getPosition());
|
||||
c.addLayout(form, layout);
|
||||
});
|
||||
final SettingVisitor creator =
|
||||
new SettingVisitor(new FakeElement("table"), redrawParameter, actions).withCategory(category);
|
||||
final SettingVisitor creator = new SettingVisitor(new FakeElement("table"), redrawParameter, actions)
|
||||
.withCategory(category);
|
||||
columns.forEach(creator::visit);
|
||||
return unmodifiableList(new ArrayList<>(creator.settings.values()));
|
||||
}
|
||||
@@ -547,13 +548,7 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
* It is shown on the next row, but may be shown in the next
|
||||
*/
|
||||
private void createValidationLabel(final PropertyNode node, final TaCoKitElementParameter target) {
|
||||
final ValidationLabel label = new ValidationLabel(element);
|
||||
label.setCategory(category);
|
||||
label.setName(node.getProperty().getPath() + PropertyNode.VALIDATION);
|
||||
label.setRedrawParameter(redrawParameter);
|
||||
// it is shown on the next row by default, but may be changed
|
||||
label.setNumRow(node.getLayout(form).getPosition() + 1);
|
||||
settings.put(label.getName(), label);
|
||||
final ValidationLabel label = new ValidationLabel(target, node.getProblemManager());
|
||||
|
||||
processConstraints(node, target, label);
|
||||
processValidations(node, target, label);
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.talend.core.model.process.IConnection;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.designer.core.ui.editor.nodes.Node;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Table Element Parameter with single column, which rows can be chosen from multiple provided suggestions.
|
||||
@@ -43,12 +44,14 @@ public class SuggestableTableParameter extends TableElementParameter {
|
||||
/**
|
||||
* Constructor setups Table columns and sets empty list as initial value
|
||||
*
|
||||
* @param element represents persisted element, to which this parameter belongs (it can be component Node
|
||||
* or Connection instance)
|
||||
* @param element represents persisted element, to which this parameter belongs (it can be component Node or
|
||||
* Connection instance)
|
||||
* @param columns a list of parameters, which represents Table columns
|
||||
* @param problemManager manage parameter problems
|
||||
*/
|
||||
public SuggestableTableParameter(final IElement element, final List<IElementParameter> columns) {
|
||||
super(element, columns);
|
||||
public SuggestableTableParameter(final IElement element, final List<IElementParameter> columns,
|
||||
final IProblemManager problemManager) {
|
||||
super(element, columns, problemManager);
|
||||
final String[] columnNames = getListItemsDisplayCodeName();
|
||||
if (columnNames.length != 1) {
|
||||
throw new IllegalArgumentException("SuggestableTableParameter can have only 1 column");
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.talend.core.runtime.IAdditionalInfo;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
import org.talend.sdk.component.studio.model.action.IActionParameter;
|
||||
import org.talend.sdk.component.studio.model.action.SettingsActionParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
@@ -43,8 +44,10 @@ public class TaCoKitElementParameter extends ElementParameter implements IAdditi
|
||||
|
||||
private Map<String, Object> additionalInfoMap = new HashMap<>();
|
||||
|
||||
private IProblemManager problemManager;
|
||||
|
||||
public TaCoKitElementParameter() {
|
||||
this(null);
|
||||
this(null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,8 +55,9 @@ public class TaCoKitElementParameter extends ElementParameter implements IAdditi
|
||||
*
|
||||
* @param element {@link IElement} to which this parameter belongs to
|
||||
*/
|
||||
public TaCoKitElementParameter(final IElement element) {
|
||||
public TaCoKitElementParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element);
|
||||
this.problemManager = problemManager;
|
||||
setTaggedValue("org.talend.sdk.component.source", "tacokit");
|
||||
}
|
||||
|
||||
@@ -69,6 +73,10 @@ public class TaCoKitElementParameter extends ElementParameter implements IAdditi
|
||||
return (String) getValue();
|
||||
}
|
||||
|
||||
public IProblemManager getProblemManager() {
|
||||
return this.getProblemManager();
|
||||
}
|
||||
|
||||
public void registerListener(final String propertyName, final PropertyChangeListener listener) {
|
||||
pcs.addPropertyChangeListener(propertyName, listener);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.talend.core.model.process.IElement;
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
import org.talend.sdk.component.studio.model.action.IActionParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Represents Table parameter. Table parameter is ElementParameter, which EParameterFieldType is TABLE
|
||||
@@ -49,8 +50,9 @@ public class TableElementParameter extends TaCoKitElementParameter {
|
||||
* or Connection instance)
|
||||
* @param columns a list of parameters, which represents Table columns
|
||||
*/
|
||||
public TableElementParameter(final IElement element, final List<IElementParameter> columns) {
|
||||
super(element);
|
||||
public TableElementParameter(final IElement element, final List<IElementParameter> columns,
|
||||
final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
final List<String> columnNames = new ArrayList<>(columns.size());
|
||||
final List<String> displayNames = new ArrayList<>(columns.size());
|
||||
for (final IElementParameter param : columns) {
|
||||
|
||||
@@ -14,8 +14,9 @@ package org.talend.sdk.component.studio.model.parameter;
|
||||
|
||||
import org.talend.core.model.process.IAdvancedElementParameter;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
public class TextElementParameter extends DebouncedParameter implements IAdvancedElementParameter {
|
||||
public class TextElementParameter extends TaCoKitElementParameter implements IAdvancedElementParameter {
|
||||
|
||||
private String placeholder;
|
||||
|
||||
@@ -24,8 +25,8 @@ public class TextElementParameter extends DebouncedParameter implements IAdvance
|
||||
*
|
||||
* @param element {@link IElement} to which this parameter belongs to
|
||||
*/
|
||||
public TextElementParameter(final IElement element) {
|
||||
super(element);
|
||||
public TextElementParameter(final IElement element, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,18 +19,18 @@ import static java.util.stream.Stream.of;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Synthetic Element Parameter which shows validation message
|
||||
*/
|
||||
public class ValidationLabel extends TaCoKitElementParameter {
|
||||
public class ValidationLabel {
|
||||
|
||||
/**
|
||||
* Delimiter between messages in resulting validation message
|
||||
@@ -46,39 +46,33 @@ public class ValidationLabel extends TaCoKitElementParameter {
|
||||
*/
|
||||
private String validationMessage;
|
||||
|
||||
public ValidationLabel(final IElement element) {
|
||||
super(element);
|
||||
setColor(RED);
|
||||
setFieldType(EParameterFieldType.LABEL);
|
||||
setDisplayName("");
|
||||
setShow(false);
|
||||
setSerialized(false);
|
||||
setReadOnly(true);
|
||||
setValue("");
|
||||
private TaCoKitElementParameter elementParameter;
|
||||
|
||||
private Optional<IProblemManager> problemManager;
|
||||
|
||||
public ValidationLabel(final TaCoKitElementParameter elementParameter, final IProblemManager problemManager) {
|
||||
this.elementParameter = elementParameter;
|
||||
this.problemManager = Optional.ofNullable(problemManager);
|
||||
}
|
||||
|
||||
public void showValidation(final String message) {
|
||||
validationMessage = message;
|
||||
setShow(true);
|
||||
setValue(buildValue());
|
||||
problemManager.ifPresent(p -> p.setError(elementParameter, buildValue()));
|
||||
}
|
||||
|
||||
public void hideValidation() {
|
||||
validationMessage = null;
|
||||
setShow(false);
|
||||
setValue("");
|
||||
problemManager.ifPresent(p -> p.setError(elementParameter, null));
|
||||
}
|
||||
|
||||
public void showConstraint(final String message) {
|
||||
constraintMessages.add(message);
|
||||
setShow(true);
|
||||
setValue(buildValue());
|
||||
problemManager.ifPresent(p -> p.setError(elementParameter, buildValue()));
|
||||
}
|
||||
|
||||
public void hideConstraint(final String message) {
|
||||
constraintMessages.remove(message);
|
||||
setShow(false);
|
||||
setValue(buildValue());
|
||||
problemManager.ifPresent(p -> p.setError(elementParameter, null));
|
||||
}
|
||||
|
||||
private String buildValue() {
|
||||
@@ -87,15 +81,4 @@ public class ValidationLabel extends TaCoKitElementParameter {
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.joining(DELIMITER));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return false
|
||||
*/
|
||||
@Override
|
||||
public boolean isPersisted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.Map;
|
||||
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.sdk.component.studio.model.action.SuggestionsAction;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* TacokitElementParameter which provides possible values list
|
||||
@@ -27,8 +28,8 @@ public class ValueSelectionParameter extends TaCoKitElementParameter {
|
||||
|
||||
private final SuggestionsAction action;
|
||||
|
||||
public ValueSelectionParameter(IElement element, final SuggestionsAction action) {
|
||||
super(element);
|
||||
public ValueSelectionParameter(IElement element, final SuggestionsAction action, final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@ package org.talend.sdk.component.studio.model.parameter;
|
||||
import org.talend.core.model.process.EComponentCategory;
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
public class VersionParameter extends TaCoKitElementParameter {
|
||||
|
||||
public static final String VERSION_SUFFIX = ".__version";
|
||||
|
||||
public VersionParameter(final IElement element, final String path, final String version) {
|
||||
super(element);
|
||||
public VersionParameter(final IElement element, final String path, final String version,
|
||||
final IProblemManager problemManager) {
|
||||
super(element, problemManager);
|
||||
setTaggedValue("org.talend.sdk.component.source", "tacokit");
|
||||
setName(path + VERSION_SUFFIX);
|
||||
updateValueOnly(version);
|
||||
|
||||
@@ -19,7 +19,6 @@ import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.talend.core.model.process.EParameterFieldType;
|
||||
import org.talend.sdk.component.studio.model.parameter.ValidationLabel;
|
||||
|
||||
/**
|
||||
@@ -35,9 +34,6 @@ public abstract class PropertyValidator implements PropertyChangeListener {
|
||||
private final String validationMessage;
|
||||
|
||||
PropertyValidator(final ValidationLabel label, final String validationMessage) {
|
||||
if (label.getFieldType() != EParameterFieldType.LABEL) {
|
||||
throw new IllegalArgumentException("parameter should be a LABEL");
|
||||
}
|
||||
this.label = label;
|
||||
this.validationMessage = validationMessage;
|
||||
}
|
||||
@@ -55,13 +51,10 @@ public abstract class PropertyValidator implements PropertyChangeListener {
|
||||
|
||||
if (isContextualValue(event.getNewValue())) {
|
||||
label.hideConstraint(validationMessage);
|
||||
label.firePropertyChange("show", null, false);
|
||||
} else if (!validate(event.getNewValue())) {
|
||||
label.showConstraint(validationMessage);
|
||||
label.firePropertyChange("show", null, true);
|
||||
} else {
|
||||
label.hideConstraint(validationMessage);
|
||||
label.firePropertyChange("show", null, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@
|
||||
*/
|
||||
package org.talend.sdk.component.studio.model.parameter.listener;
|
||||
|
||||
import org.talend.sdk.component.studio.Lookups;
|
||||
import org.talend.sdk.component.studio.model.action.Action;
|
||||
import org.talend.sdk.component.studio.model.parameter.ValidationLabel;
|
||||
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import org.talend.sdk.component.studio.Lookups;
|
||||
import org.talend.sdk.component.studio.model.action.Action;
|
||||
import org.talend.sdk.component.studio.model.parameter.ValidationLabel;
|
||||
|
||||
public class ValidationListener extends Action<String> implements PropertyChangeListener {
|
||||
|
||||
private final ValidationLabel label;
|
||||
@@ -49,10 +49,8 @@ public class ValidationListener extends Action<String> implements PropertyChange
|
||||
private void notify(final Map<String, String> validation) {
|
||||
if (OK.equals(validation.get(STATUS))) {
|
||||
label.hideValidation();
|
||||
label.firePropertyChange("show", null, false);
|
||||
} else {
|
||||
label.showValidation(validation.get(MESSAGE));
|
||||
label.firePropertyChange("show", null, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import org.talend.sdk.component.server.front.model.ActionReference;
|
||||
import org.talend.sdk.component.studio.i18n.Messages;
|
||||
import org.talend.sdk.component.studio.model.action.Action;
|
||||
import org.talend.sdk.component.studio.model.action.IActionParameter;
|
||||
import org.talend.sdk.component.studio.model.action.SettingsActionParameter;
|
||||
import org.talend.sdk.component.studio.model.parameter.ButtonParameter;
|
||||
import org.talend.sdk.component.studio.model.parameter.PathCollector;
|
||||
import org.talend.sdk.component.studio.model.parameter.PropertyDefinitionDecorator;
|
||||
@@ -66,7 +65,7 @@ public class HealthCheckResolver {
|
||||
}
|
||||
|
||||
public void resolveParameters(final Map<String, IElementParameter> settings) {
|
||||
final ButtonParameter button = new ButtonParameter(element);
|
||||
final ButtonParameter button = new ButtonParameter(element, node.getProblemManager());
|
||||
button.setCategory(category);
|
||||
button.setDisplayName(ofNullable(action.getDisplayName())
|
||||
.filter(it -> !action.getName().equals(it))
|
||||
@@ -100,7 +99,8 @@ public class HealthCheckResolver {
|
||||
*/
|
||||
private String getParameterAlias() {
|
||||
final Collection<PropertyDefinitionDecorator> properties = PropertyDefinitionDecorator.wrap(action.getProperties());
|
||||
final PropertyNode root = new PropertyTreeCreator(new WidgetTypeMapper()).createPropertyTree(properties);
|
||||
final PropertyNode root = new PropertyTreeCreator(new WidgetTypeMapper(), node.getProblemManager())
|
||||
.createPropertyTree(properties);
|
||||
return root.getProperty().getPath();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import org.talend.sdk.component.studio.model.parameter.Layout;
|
||||
import org.talend.sdk.component.studio.model.parameter.LayoutParameter;
|
||||
import org.talend.sdk.component.studio.model.parameter.Level;
|
||||
import org.talend.sdk.component.studio.model.parameter.TaCoKitElementParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Registers PropertyChangeListener for each IElementParameter during instantiation
|
||||
@@ -60,6 +61,8 @@ public class TaCoKitComposite extends MissingSettingsMultiThreadDynamicComposite
|
||||
|
||||
private List<? extends IElementParameter> parameters;
|
||||
|
||||
private final IProblemManager problemManager;
|
||||
|
||||
private PropertyChangeListener redrawListener = evt -> {
|
||||
if (!"show".equals(evt.getPropertyName())) {
|
||||
return;
|
||||
@@ -68,14 +71,22 @@ public class TaCoKitComposite extends MissingSettingsMultiThreadDynamicComposite
|
||||
};
|
||||
|
||||
public TaCoKitComposite(final Composite parentComposite, final int styles, final EComponentCategory section,
|
||||
final Element element, final boolean isCompactView) {
|
||||
final Element element, final boolean isCompactView, final IProblemManager problemManager) {
|
||||
super(parentComposite, styles, section, element, isCompactView);
|
||||
this.problemManager = problemManager;
|
||||
if (this.problemManager != null) {
|
||||
this.problemManager.setTckComposite(this);
|
||||
}
|
||||
postInit();
|
||||
}
|
||||
|
||||
TaCoKitComposite(final Composite parentComposite, final int styles, final EComponentCategory section,
|
||||
final Element element, final boolean isCompactView, final Color backgroundColor) {
|
||||
TaCoKitComposite(final Composite parentComposite, final int styles, final EComponentCategory section, final Element element,
|
||||
final boolean isCompactView, final Color backgroundColor, final IProblemManager problemManager) {
|
||||
super(parentComposite, styles, section, element, isCompactView, backgroundColor);
|
||||
this.problemManager = problemManager;
|
||||
if (this.problemManager != null) {
|
||||
this.problemManager.setTckComposite(this);
|
||||
}
|
||||
postInit();
|
||||
}
|
||||
|
||||
@@ -99,6 +110,7 @@ public class TaCoKitComposite extends MissingSettingsMultiThreadDynamicComposite
|
||||
|
||||
@Override
|
||||
public synchronized void dispose() {
|
||||
this.problemManager.setTckComposite(null);
|
||||
preDispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.talend.sdk.component.studio.metadata.model.TaCoKitConfigurationModel;
|
||||
import org.talend.sdk.component.studio.metadata.model.TaCoKitConfigurationModel.ValueModel;
|
||||
import org.talend.sdk.component.studio.model.parameter.TaCoKitElementParameter;
|
||||
import org.talend.sdk.component.studio.model.parameter.TaCoKitElementParameter.IValueChangedListener;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.IProblemManager;
|
||||
|
||||
/**
|
||||
* Stores {@link TaCoKitConfigurationModel} and sets Configuration Model Updater listener for each
|
||||
@@ -41,8 +42,8 @@ public class TaCoKitWizardComposite extends TaCoKitComposite {
|
||||
|
||||
public TaCoKitWizardComposite(final Composite parentComposite, final int styles, final EComponentCategory section,
|
||||
final Element element, final TaCoKitConfigurationModel model, final boolean isCompactView,
|
||||
final Color backgroundColor, final boolean isNew) {
|
||||
super(parentComposite, styles, section, element, isCompactView, backgroundColor);
|
||||
final Color backgroundColor, final boolean isNew, final IProblemManager problemManager) {
|
||||
super(parentComposite, styles, section, element, isCompactView, backgroundColor, problemManager);
|
||||
this.configurationModel = model;
|
||||
this.isNew = isNew;
|
||||
configurationUpdater = new ConfigurationModelUpdater();
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2019 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.sdk.component.studio.ui.composite.problemmanager;
|
||||
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
*/
|
||||
public class ColorfulProblemManager extends ProblemManager {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2019 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.sdk.component.studio.ui.composite.problemmanager;
|
||||
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
*/
|
||||
public class ComponentViewProblemManager extends ProblemManager {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2019 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.sdk.component.studio.ui.composite.problemmanager;
|
||||
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.TaCoKitComposite;
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
*/
|
||||
public interface IProblemManager {
|
||||
|
||||
TaCoKitComposite getTckComposite();
|
||||
|
||||
void setTckComposite(TaCoKitComposite tckComposite);
|
||||
|
||||
void setError(IElementParameter ep, String errMsg);
|
||||
|
||||
void setWarn(IElementParameter ep, String warnMsg);
|
||||
|
||||
void setInfo(IElementParameter ep, String infoMsg);
|
||||
|
||||
void addUnresolvedRequriedElem(IElementParameter ep);
|
||||
|
||||
void removeUnresolvedRequriedElem(IElementParameter ep);
|
||||
|
||||
boolean hasUnresolvedRequiredElem();
|
||||
|
||||
boolean hasInfo();
|
||||
|
||||
boolean hasWarn();
|
||||
|
||||
boolean hasError();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2019 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.sdk.component.studio.ui.composite.problemmanager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.TaCoKitComposite;
|
||||
import org.talend.sdk.component.studio.util.TaCoKitUtil;
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
*/
|
||||
public class ProblemManager implements IProblemManager {
|
||||
|
||||
private TaCoKitComposite tckComposite;
|
||||
|
||||
private Map<IElementParameter, String> errMap = new HashMap<>();
|
||||
|
||||
private Map<IElementParameter, String> warnMap = new HashMap<>();
|
||||
|
||||
private Map<IElementParameter, String> infoMap = new HashMap<>();
|
||||
|
||||
private Set<IElementParameter> unresolvedRequriedElems = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public TaCoKitComposite getTckComposite() {
|
||||
return tckComposite;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTckComposite(TaCoKitComposite tckComposite) {
|
||||
this.tckComposite = tckComposite;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setError(IElementParameter ep, String errMsg) {
|
||||
if (TaCoKitUtil.isBlank(errMsg)) {
|
||||
errMap.remove(ep);
|
||||
} else {
|
||||
errMap.put(ep, errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasError() {
|
||||
return !errMap.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWarn(IElementParameter ep, String warnMsg) {
|
||||
if (TaCoKitUtil.isBlank(warnMsg)) {
|
||||
warnMap.remove(ep);
|
||||
} else {
|
||||
warnMap.put(ep, warnMsg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasWarn() {
|
||||
return !warnMap.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInfo(IElementParameter ep, String infoMsg) {
|
||||
if (TaCoKitUtil.isBlank(infoMsg)) {
|
||||
infoMap.remove(ep);
|
||||
} else {
|
||||
infoMap.put(ep, infoMsg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInfo() {
|
||||
return !infoMap.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addUnresolvedRequriedElem(IElementParameter ep) {
|
||||
unresolvedRequriedElems.add(ep);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUnresolvedRequriedElem(IElementParameter ep) {
|
||||
unresolvedRequriedElems.remove(ep);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnresolvedRequiredElem() {
|
||||
return !unresolvedRequriedElems.isEmpty();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// Copyright (C) 2006-2019 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.sdk.component.studio.ui.composite.problemmanager;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
|
||||
/**
|
||||
* DOC cmeng class global comment. Detailled comment
|
||||
*/
|
||||
public class WizardProblemManager extends ColorfulProblemManager {
|
||||
|
||||
private Optional<IWizardHandler> wizardHandler = Optional.ofNullable(null);
|
||||
|
||||
public void setWizardHandler(IWizardHandler wizardHandler) {
|
||||
this.wizardHandler = Optional.ofNullable(wizardHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setError(IElementParameter ep, String errMsg) {
|
||||
super.setError(ep, errMsg);
|
||||
this.wizardHandler.ifPresent(c -> Display.getDefault().asyncExec(() -> c.showError(errMsg)));
|
||||
}
|
||||
|
||||
public interface IWizardHandler {
|
||||
|
||||
public void showError(String error);
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ package org.talend.sdk.component.studio.ui.wizard;
|
||||
import org.talend.core.model.properties.ConnectionItem;
|
||||
import org.talend.sdk.component.server.front.model.ConfigTypeNode;
|
||||
import org.talend.sdk.component.studio.metadata.node.ITaCoKitRepositoryNode;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.WizardProblemManager;
|
||||
|
||||
public class TaCoKitConfigurationRuntimeData {
|
||||
|
||||
@@ -24,6 +25,8 @@ public class TaCoKitConfigurationRuntimeData {
|
||||
|
||||
private ConfigTypeNode configTypeNode;
|
||||
|
||||
private WizardProblemManager problemManager;
|
||||
|
||||
private boolean isCreation = true;
|
||||
|
||||
private boolean isReadonly = false;
|
||||
@@ -91,36 +94,54 @@ public class TaCoKitConfigurationRuntimeData {
|
||||
this.existingNames = existingNames;
|
||||
}
|
||||
|
||||
public WizardProblemManager getProblemManager() {
|
||||
return problemManager;
|
||||
}
|
||||
|
||||
public void setProblemManager(WizardProblemManager problemManager) {
|
||||
this.problemManager = problemManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
if (o == this)
|
||||
if (o == this) {
|
||||
return true;
|
||||
if (!(o instanceof TaCoKitConfigurationRuntimeData))
|
||||
}
|
||||
if (!(o instanceof TaCoKitConfigurationRuntimeData)) {
|
||||
return false;
|
||||
}
|
||||
final TaCoKitConfigurationRuntimeData other = (TaCoKitConfigurationRuntimeData) o;
|
||||
if (!other.canEqual(this))
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$taCoKitRepositoryNode = this.getTaCoKitRepositoryNode();
|
||||
final Object other$taCoKitRepositoryNode = other.getTaCoKitRepositoryNode();
|
||||
if (this$taCoKitRepositoryNode == null ? other$taCoKitRepositoryNode != null
|
||||
: !this$taCoKitRepositoryNode.equals(other$taCoKitRepositoryNode))
|
||||
: !this$taCoKitRepositoryNode.equals(other$taCoKitRepositoryNode)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$connectionItem = this.getConnectionItem();
|
||||
final Object other$connectionItem = other.getConnectionItem();
|
||||
if (this$connectionItem == null ? other$connectionItem != null : !this$connectionItem.equals(other$connectionItem))
|
||||
if (this$connectionItem == null ? other$connectionItem != null : !this$connectionItem.equals(other$connectionItem)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$configTypeNode = this.getConfigTypeNode();
|
||||
final Object other$configTypeNode = other.getConfigTypeNode();
|
||||
if (this$configTypeNode == null ? other$configTypeNode != null : !this$configTypeNode.equals(other$configTypeNode))
|
||||
if (this$configTypeNode == null ? other$configTypeNode != null : !this$configTypeNode.equals(other$configTypeNode)) {
|
||||
return false;
|
||||
if (this.isCreation() != other.isCreation())
|
||||
}
|
||||
if (this.isCreation() != other.isCreation()) {
|
||||
return false;
|
||||
if (this.isReadonly() != other.isReadonly())
|
||||
}
|
||||
if (this.isReadonly() != other.isReadonly()) {
|
||||
return false;
|
||||
if (this.isAddContextFields() != other.isAddContextFields())
|
||||
}
|
||||
if (this.isAddContextFields() != other.isAddContextFields()) {
|
||||
return false;
|
||||
if (!java.util.Arrays.deepEquals(this.getExistingNames(), other.getExistingNames()))
|
||||
}
|
||||
if (!java.util.Arrays.deepEquals(this.getExistingNames(), other.getExistingNames())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -145,7 +145,8 @@ public abstract class TaCoKitConfigurationWizard extends CheckLastVersionReposit
|
||||
configTypeNode.getDisplayName(), configTypeNode.getConfigurationType()));
|
||||
wizardPropertiesPage.setDescription(""); //$NON-NLS-1$
|
||||
addPage(wizardPropertiesPage);
|
||||
final PropertyNode root = new PropertyTreeCreator(new WizardTypeMapper()).createPropertyTree(configTypeNode);
|
||||
final PropertyNode root = new PropertyTreeCreator(new WizardTypeMapper(), runtimeData.getProblemManager())
|
||||
.createPropertyTree(configTypeNode);
|
||||
if (root.hasLeaves(Metadatas.MAIN_FORM)) {
|
||||
mainPage = new TaCoKitConfigurationWizardPage(runtimeData, Metadatas.MAIN_FORM, isNew());
|
||||
addPage(mainPage);
|
||||
|
||||
@@ -18,6 +18,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.jface.wizard.WizardPage;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.layout.FormAttachment;
|
||||
import org.eclipse.swt.layout.FormData;
|
||||
@@ -45,7 +46,10 @@ import org.talend.sdk.component.studio.model.parameter.PropertyNode;
|
||||
import org.talend.sdk.component.studio.model.parameter.PropertyTreeCreator;
|
||||
import org.talend.sdk.component.studio.model.parameter.SettingVisitor;
|
||||
import org.talend.sdk.component.studio.model.parameter.VersionParameter;
|
||||
import org.talend.sdk.component.studio.ui.composite.TaCoKitComposite;
|
||||
import org.talend.sdk.component.studio.ui.composite.TaCoKitWizardComposite;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.WizardProblemManager;
|
||||
import org.talend.sdk.component.studio.ui.composite.problemmanager.WizardProblemManager.IWizardHandler;
|
||||
import org.talend.sdk.component.studio.ui.wizard.TaCoKitConfigurationRuntimeData;
|
||||
|
||||
/**
|
||||
@@ -57,7 +61,7 @@ public class TaCoKitConfigurationWizardPage extends AbsTaCoKitWizardPage {
|
||||
|
||||
private Element element;
|
||||
|
||||
private TaCoKitWizardComposite tacokitComposite;
|
||||
private TaCoKitComposite tacokitComposite;
|
||||
|
||||
private TaCoKitConfigurationModel configurationModel;
|
||||
|
||||
@@ -102,8 +106,10 @@ public class TaCoKitConfigurationWizardPage extends AbsTaCoKitWizardPage {
|
||||
final ConfigTypeNode configTypeNode = runtimeData.getConfigTypeNode();
|
||||
final DummyComponent component = new DummyComponent(configTypeNode.getDisplayName());
|
||||
final DataNode node = new DataNode(component, component.getName());
|
||||
final WizardProblemManager problemManager = runtimeData.getProblemManager();
|
||||
final PropertyNode root =
|
||||
new PropertyTreeCreator(new WizardTypeMapper()).createPropertyTree(configTypeNode);
|
||||
new PropertyTreeCreator(new WizardTypeMapper(), problemManager)
|
||||
.createPropertyTree(configTypeNode);
|
||||
element = new FakeElement(runtimeData.getTaCoKitRepositoryNode().getConfigTypeNode().getDisplayName());
|
||||
element.setReadOnly(runtimeData.isReadonly());
|
||||
final ElementParameter updateParameter = createUpdateComponentsParameter(element);
|
||||
@@ -126,18 +132,36 @@ public class TaCoKitConfigurationWizardPage extends AbsTaCoKitWizardPage {
|
||||
.filter(n -> p.getMetadata().get("configurationtype::type").equals(n.getConfigurationType()))
|
||||
.filter(n -> n.getName().equals(p.getMetadata().get("configurationtype::name")))
|
||||
.findFirst()
|
||||
.map(n -> String.valueOf(n.getVersion())).orElse("-1")))
|
||||
.map(n -> String.valueOf(n.getVersion())).orElse("-1"),
|
||||
runtimeData.getProblemManager()))
|
||||
.forEach(p -> configurationModel.setValue(p));
|
||||
element.setElementParameters(parameters);
|
||||
tacokitComposite = new TaCoKitWizardComposite(container, SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS, category,
|
||||
element, configurationModel, true, container.getBackground(), isNew);
|
||||
element, configurationModel, true, container.getBackground(), isNew, null);
|
||||
tacokitComposite.setLayoutData(createMainFormData(runtimeData.isAddContextFields()));
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void setWizardErrorMessage(String error) {
|
||||
setMessage(error, WizardPage.ERROR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
super.setVisible(visible);
|
||||
if (visible) {
|
||||
getTaCoKitConfigurationRuntimeData().getProblemManager().setWizardHandler(new IWizardHandler() {
|
||||
|
||||
@Override
|
||||
public void showError(String error) {
|
||||
setWizardErrorMessage(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private TaCoKitConfigurationModel getConfigurationItemModel() {
|
||||
if (this.configurationModel == null) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user