You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2021/06/04 08:05:22 UTC
[incubator-hop] branch master updated: HOP-2936 Add help button on
metadata dialog
This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git
The following commit(s) were added to refs/heads/master by this push:
new 495d8e4 HOP-2936 Add help button on metadata dialog
new c3020fe Merge pull request #851 from nadment/HOP-2936
495d8e4 is described below
commit 495d8e4786958b137db289585f8005613f4b017e
Author: nadment <na...@gmail.com>
AuthorDate: Thu Jun 3 22:57:08 2021 +0200
HOP-2936 Add help button on metadata dialog
---
.../main/java/org/apache/hop/core/database/DatabaseMeta.java | 4 +++-
.../main/java/org/apache/hop/metadata/api/HopMetadata.java | 2 ++
.../org/apache/hop/metadata/plugin/MetadataPluginType.java | 2 +-
.../main/java/org/apache/hop/partition/PartitionSchema.java | 3 ++-
.../apache/hop/pipeline/config/PipelineRunConfiguration.java | 3 ++-
engine/src/main/java/org/apache/hop/server/HopServer.java | 3 ++-
.../apache/hop/workflow/config/WorkflowRunConfiguration.java | 3 ++-
.../src/main/java/org/apache/hop/www/service/WebService.java | 4 +++-
.../java/org/apache/hop/beam/metadata/FileDefinition.java | 3 ++-
.../org/apache/hop/reflection/pipeline/meta/PipelineLog.java | 4 +++-
.../org/apache/hop/reflection/probe/meta/PipelineProbe.java | 3 ++-
.../org/apache/hop/reflection/workflow/meta/WorkflowLog.java | 3 ++-
.../src/main/java/org/apache/hop/testing/DataSet.java | 3 ++-
.../databases/cassandra/metadata/CassandraConnection.java | 3 ++-
.../src/main/java/org/apache/hop/neo4j/model/GraphModel.java | 3 ++-
.../main/java/org/apache/hop/neo4j/shared/NeoConnection.java | 3 ++-
.../org/apache/hop/mongo/metadata/MongoDbConnection.java | 3 ++-
.../main/java/org/apache/hop/splunk/SplunkConnection.java | 3 ++-
.../java/org/apache/hop/ui/core/metadata/MetadataEditor.java | 10 ++++++++++
.../apache/hop/ui/core/metadata/MetadataEditorDialog.java | 12 +++++++++---
20 files changed, 57 insertions(+), 20 deletions(-)
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java b/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
index 6b0f437..6d752e2 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
@@ -64,7 +64,9 @@ import java.util.concurrent.Future;
key = "rdbms",
name = "Relational Database Connection",
description = "This contains all the metadata needed to connect to a relational database",
- image = "ui/images/database.svg")
+ image = "ui/images/database.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/pipeline-run-config.html"
+)
public class DatabaseMeta extends HopMetadataBase implements Cloneable, IHopMetadata {
private static final Class<?> PKG = Database.class; // For Translator
diff --git a/core/src/main/java/org/apache/hop/metadata/api/HopMetadata.java b/core/src/main/java/org/apache/hop/metadata/api/HopMetadata.java
index 62dfc1d..23e1323 100644
--- a/core/src/main/java/org/apache/hop/metadata/api/HopMetadata.java
+++ b/core/src/main/java/org/apache/hop/metadata/api/HopMetadata.java
@@ -39,4 +39,6 @@ public @interface HopMetadata {
String description() default "";
String image() default "ui/images/folder.svg";
+
+ String documentationUrl() default "";
}
diff --git a/core/src/main/java/org/apache/hop/metadata/plugin/MetadataPluginType.java b/core/src/main/java/org/apache/hop/metadata/plugin/MetadataPluginType.java
index dbbfd7a..4fb8980 100644
--- a/core/src/main/java/org/apache/hop/metadata/plugin/MetadataPluginType.java
+++ b/core/src/main/java/org/apache/hop/metadata/plugin/MetadataPluginType.java
@@ -90,7 +90,7 @@ public class MetadataPluginType extends BasePluginType<HopMetadata> {
@Override
protected String extractDocumentationUrl( HopMetadata annotation ) {
- return null;
+ return annotation.documentationUrl();
}
@Override
diff --git a/engine/src/main/java/org/apache/hop/partition/PartitionSchema.java b/engine/src/main/java/org/apache/hop/partition/PartitionSchema.java
index 6ee32ec..5eb3f82 100644
--- a/engine/src/main/java/org/apache/hop/partition/PartitionSchema.java
+++ b/engine/src/main/java/org/apache/hop/partition/PartitionSchema.java
@@ -37,7 +37,8 @@ import java.util.List;
key = "partition",
name = "Partition Schema",
description = "Describes a partition schema",
- image = "ui/images/partition_schema.svg"
+ image = "ui/images/partition_schema.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/partition-schema.html"
)
public class PartitionSchema extends HopMetadataBase implements Cloneable, IHopMetadata {
diff --git a/engine/src/main/java/org/apache/hop/pipeline/config/PipelineRunConfiguration.java b/engine/src/main/java/org/apache/hop/pipeline/config/PipelineRunConfiguration.java
index 876395c..52f0acc 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/config/PipelineRunConfiguration.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/config/PipelineRunConfiguration.java
@@ -32,7 +32,8 @@ import java.util.List;
key = "pipeline-run-configuration",
name = "Pipeline Run Configuration",
description = "Describes how and with which engine a pipeline is to be executed",
- image = "ui/images/pipeline_run_config.svg"
+ image = "ui/images/pipeline_run_config.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/pipeline-run-config.html"
)
public class PipelineRunConfiguration extends HopMetadataBase implements Cloneable, IHopMetadata {
diff --git a/engine/src/main/java/org/apache/hop/server/HopServer.java b/engine/src/main/java/org/apache/hop/server/HopServer.java
index 88f5572..3ea1fbe 100644
--- a/engine/src/main/java/org/apache/hop/server/HopServer.java
+++ b/engine/src/main/java/org/apache/hop/server/HopServer.java
@@ -96,7 +96,8 @@ import java.util.Random;
key = "server",
name = "Hop Server",
description = "Defines a Hop Hop Server",
- image = "ui/images/server.svg"
+ image = "ui/images/server.svg",
+ documentationUrl = "https://hop.apache.org/manual/latest/metadata-types/hop-server.html"
)
public class HopServer extends HopMetadataBase implements Cloneable, IXml, IHopMetadata {
private static final Class<?> PKG = HopServer.class; // For Translator
diff --git a/engine/src/main/java/org/apache/hop/workflow/config/WorkflowRunConfiguration.java b/engine/src/main/java/org/apache/hop/workflow/config/WorkflowRunConfiguration.java
index 7eccbe8..d58a4c8 100644
--- a/engine/src/main/java/org/apache/hop/workflow/config/WorkflowRunConfiguration.java
+++ b/engine/src/main/java/org/apache/hop/workflow/config/WorkflowRunConfiguration.java
@@ -27,7 +27,8 @@ import org.apache.hop.metadata.api.IHopMetadata;
key = "workflow-run-configuration",
name = "Workflow Run Configuration",
description = "Describes how to execute a workflow",
- image = "ui/images/workflow_run_config.svg"
+ image = "ui/images/workflow_run_config.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/workflow-run-config.html"
)
public class WorkflowRunConfiguration extends HopMetadataBase implements Cloneable, IHopMetadata {
diff --git a/engine/src/main/java/org/apache/hop/www/service/WebService.java b/engine/src/main/java/org/apache/hop/www/service/WebService.java
index 7987953..a155c7e 100644
--- a/engine/src/main/java/org/apache/hop/www/service/WebService.java
+++ b/engine/src/main/java/org/apache/hop/www/service/WebService.java
@@ -27,7 +27,9 @@ import org.apache.hop.metadata.api.IHopMetadata;
key = "web-service",
name = "Web Service",
description = "Allows you to run a pipeline to generate output for a servlet on Hop Server",
- image = "ui/images/server.svg")
+ image = "ui/images/server.svg",
+ documentationUrl = "https://hop.apache.org/manual/latest/metadata-types/web-service.html"
+)
public class WebService extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty private boolean enabled;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/metadata/FileDefinition.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/metadata/FileDefinition.java
index a761887..7742fef 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/metadata/FileDefinition.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/metadata/FileDefinition.java
@@ -36,7 +36,8 @@ import java.util.List;
key = "file-definition",
name = "Beam File Definition",
description = "Describes a file layout in a Beam pipeline",
- image = "ui/images/folder.svg"
+ image = "ui/images/folder.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/beam-file-definition.html"
)
public class FileDefinition extends HopMetadataBase implements Serializable, IHopMetadata {
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/meta/PipelineLog.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/meta/PipelineLog.java
index b2f6282..8a96654 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/meta/PipelineLog.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/meta/PipelineLog.java
@@ -27,7 +27,9 @@ import org.apache.hop.metadata.api.IHopMetadata;
key = "pipeline-log",
name = "Pipeline Log",
description = "This metadata object type allows you to log activity of a pipeline with another pipeline",
- image = "pipeline-log.svg")
+ image = "pipeline-log.svg",
+ documentationUrl = "https://hop.apache.org/manual/latest/metadata-types/pipeline-log.html"
+)
public class PipelineLog extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty private boolean enabled;
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/meta/PipelineProbe.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/meta/PipelineProbe.java
index 8854060..7f105de 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/meta/PipelineProbe.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/meta/PipelineProbe.java
@@ -30,7 +30,8 @@ import java.util.List;
key = "pipeline-probe",
name = "Pipeline Probe",
description = "This allows you to stream output rows of a transform to another pipeline",
- image = "probe.svg")
+ image = "probe.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/pipeline-probe.html")
public class PipelineProbe extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty private boolean enabled;
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/meta/WorkflowLog.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/meta/WorkflowLog.java
index 697aaf7..2582b64 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/meta/WorkflowLog.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/meta/WorkflowLog.java
@@ -27,7 +27,8 @@ import org.apache.hop.metadata.api.IHopMetadata;
key = "workflow-log",
name = "Workflow Log",
description = "This metadata object type allows you to log activity of a workflow with a pipeline",
- image = "workflow-log.svg")
+ image = "workflow-log.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/workflow-log.html")
public class WorkflowLog extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty private boolean enabled;
diff --git a/plugins/misc/testing/src/main/java/org/apache/hop/testing/DataSet.java b/plugins/misc/testing/src/main/java/org/apache/hop/testing/DataSet.java
index 88f8887..36641d7 100644
--- a/plugins/misc/testing/src/main/java/org/apache/hop/testing/DataSet.java
+++ b/plugins/misc/testing/src/main/java/org/apache/hop/testing/DataSet.java
@@ -41,7 +41,8 @@ import java.util.List;
key = "dataset",
name = "Data Set",
description = "This defines a data set, a static pre-defined collection of rows",
- image = "dataset.svg"
+ image = "dataset.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/data-set.html"
)
public class DataSet extends HopMetadataBase implements Cloneable, IHopMetadata {
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/databases/cassandra/metadata/CassandraConnection.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/databases/cassandra/metadata/CassandraConnection.java
index 4ffea29..dd86693 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/databases/cassandra/metadata/CassandraConnection.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/databases/cassandra/metadata/CassandraConnection.java
@@ -43,7 +43,8 @@ import java.util.Map;
key = "cassandra-connection",
name = "Cassandra Connection",
description = "Describes a connection to a Cassandra cluster",
- image = "Cassandra_logo.svg")
+ image = "Cassandra_logo.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/cassandra/cassandra-connection.html")
public class CassandraConnection extends HopMetadataBase implements IHopMetadata {
public static final String WIDGET_ID_HOSTNAME = "10000-hostname";
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/GraphModel.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/GraphModel.java
index 3c45ba2..2d1175b 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/GraphModel.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/GraphModel.java
@@ -40,7 +40,8 @@ import java.util.List;
key = "neo4j-graph-model",
name = "Neo4j Graph Model",
description = "Description of the nodes, relationships, indexes... of a Neo4j graph",
- image = "neo4j_logo.svg")
+ image = "neo4j_logo.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/neo4j/neo4j-graphmodel.html")
public class GraphModel extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty protected String description;
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
index 442f909..6f10412 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/shared/NeoConnection.java
@@ -53,7 +53,8 @@ import java.util.logging.Level;
key = "neo4j-connection",
name = "Neo4j Connection",
description = "A shared connection to a Neo4j server",
- image = "neo4j_logo.svg")
+ image = "neo4j_logo.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/neo4j/neo4j-connection.html")
public class NeoConnection extends HopMetadataBase implements IHopMetadata {
@HopMetadataProperty private String server;
diff --git a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/metadata/MongoDbConnection.java b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/metadata/MongoDbConnection.java
index d7a3369..8eb5c28 100644
--- a/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/metadata/MongoDbConnection.java
+++ b/plugins/transforms/mongodb/src/main/java/org/apache/hop/mongo/metadata/MongoDbConnection.java
@@ -42,7 +42,8 @@ import org.apache.hop.mongo.wrapper.MongoWrapperClientFactory;
key = "mongodb-connection",
name = "MongoDB Connection",
description = "Describes a MongoDB connection",
- image = "MongoDB_Leaf_FullColor_RGB.svg")
+ image = "MongoDB_Leaf_FullColor_RGB.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/mongodb-connection.html")
public class MongoDbConnection extends HopMetadataBase implements IHopMetadata {
public static final String WIDGET_ID_HOSTNAME = "10000-hostname";
diff --git a/plugins/transforms/splunk/src/main/java/org/apache/hop/splunk/SplunkConnection.java b/plugins/transforms/splunk/src/main/java/org/apache/hop/splunk/SplunkConnection.java
index c33098f..e49a3f3 100644
--- a/plugins/transforms/splunk/src/main/java/org/apache/hop/splunk/SplunkConnection.java
+++ b/plugins/transforms/splunk/src/main/java/org/apache/hop/splunk/SplunkConnection.java
@@ -33,7 +33,8 @@ import org.apache.hop.metadata.api.IHopMetadata;
key = "splunk",
name = "Splunk Connection",
description = "This metadata type describes how you can connect to Splunk",
- image = "splunk.svg")
+ image = "splunk.svg",
+ documentationUrl="https://hop.apache.org/manual/latest/metadata-types/splunk-connection.html")
public class SplunkConnection extends HopMetadataBase implements Cloneable, IHopMetadata {
@HopMetadataProperty private String hostname;
diff --git a/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditor.java b/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditor.java
index 88d84f0..2b3ddd3 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditor.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditor.java
@@ -25,15 +25,19 @@ import org.apache.hop.core.Const;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.extension.ExtensionPointHandler;
import org.apache.hop.core.extension.HopExtensionPoint;
+import org.apache.hop.core.plugins.IPlugin;
+import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.metadata.api.HopMetadata;
import org.apache.hop.metadata.api.IHopMetadata;
import org.apache.hop.metadata.api.IHopMetadataSerializer;
+import org.apache.hop.metadata.plugin.MetadataPluginType;
import org.apache.hop.ui.core.ConstUi;
import org.apache.hop.ui.core.dialog.ErrorDialog;
import org.apache.hop.ui.core.gui.GuiResource;
import org.apache.hop.ui.hopgui.HopGui;
import org.apache.hop.ui.hopgui.perspective.metadata.MetadataPerspective;
+import org.apache.hop.ui.util.HelpUtils;
import org.apache.hop.ui.util.SwtSvgImageUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
@@ -102,6 +106,12 @@ public abstract class MetadataEditor<T extends IHopMetadata> extends MetadataFil
return null;
}
+ protected Button createHelpButton(final Shell shell) {
+ HopMetadata annotation = manager.getManagedClass().getAnnotation(HopMetadata.class);
+ IPlugin plugin = PluginRegistry.getInstance().getPlugin(MetadataPluginType.class, annotation.key());
+ return HelpUtils.createHelpButton(shell, HelpUtils.getHelpDialogTitle(plugin), plugin);
+ }
+
public HopGui getHopGui() {
return hopGui;
}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditorDialog.java b/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditorDialog.java
index da3d212..107c498 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditorDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/metadata/MetadataEditorDialog.java
@@ -29,8 +29,6 @@ import org.apache.hop.ui.core.dialog.ErrorDialog;
import org.apache.hop.ui.core.gui.WindowProperty;
import org.apache.hop.ui.pipeline.transform.BaseTransformDialog;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
@@ -72,7 +70,7 @@ public class MetadataEditorDialog extends Dialog implements IMetadataDialog {
Button wCancel = new Button(shell, SWT.PUSH);
wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
wCancel.addListener(SWT.Selection, e -> cancel());
-
+
List<Button> buttons = new ArrayList<>();
buttons.add(wOk);
Button[] extras = editor.createButtonsForButtonBar(shell);
@@ -85,6 +83,14 @@ public class MetadataEditorDialog extends Dialog implements IMetadataDialog {
BaseTransformDialog.positionBottomButtons(
shell, buttons.toArray(new Button[0]), props.getMargin(), null);
+
+ Button wHelp = editor.createHelpButton(shell);
+ FormData fdHelp = new FormData();
+ fdHelp.bottom = new FormAttachment(100, 0);
+ fdHelp.left = new FormAttachment(0, 0);
+ wHelp.setLayoutData(fdHelp);
+
+
// Create editor content area
Composite area = new Composite(shell, SWT.NONE);
FormLayout layout = new FormLayout();