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 0a33f3f HOP-1491 (#624)
0a33f3f is described below
commit 0a33f3f3cbad930ae9a8fae42fc56a1cdc1312de
Author: Hiromu Hota <[email protected]>
AuthorDate: Sun Feb 14 09:47:51 2021 -0800
HOP-1491 (#624)
* HOP-1491: RAP does not support MenuItem.setToolTipText()
* Incorporate Hop Web's static resources
* Incorporate assemblies/web that builds hop.war
* Incorporate Dockerfile for Hop Web
* RAP does not support ScrollBar.setIncrement()
* Incorporate integration tests for Hop Web
* Fixed relativePath
---
assemblies/pom.xml | 1 +
.../static/src/main/resources/WEB-INF/web.xml | 62 ++++++++++
assemblies/static/src/main/resources/index.jsp | 20 ++++
assemblies/web/pom.xml | 130 +++++++++++++++++++++
assemblies/web/src/assembly/assembly.xml | 73 ++++++++++++
docker/Dockerfile.web | 31 +++++
{assemblies => integration-tests/hopweb}/pom.xml | 33 +++---
.../java/org/apache/hop/ui/hopgui/HopWebTest.java | 109 +++++++++++++++++
.../org/apache/hop/ui/core/gui/GuiMenuWidgets.java | 5 +-
.../hopgui/file/pipeline/HopGuiPipelineGraph.java | 7 +-
.../hopgui/file/workflow/HopGuiWorkflowGraph.java | 7 +-
.../perspective/dataorch/HopGuiAbstractGraph.java | 9 +-
12 files changed, 465 insertions(+), 22 deletions(-)
diff --git a/assemblies/pom.xml b/assemblies/pom.xml
index 8bd2c95..7b3b247 100644
--- a/assemblies/pom.xml
+++ b/assemblies/pom.xml
@@ -43,6 +43,7 @@
<module>static</module>
<module>lib</module>
<module>client</module>
+ <module>web</module>
<module>core</module>
<module>debug</module>
<module>samples</module>
diff --git a/assemblies/static/src/main/resources/WEB-INF/web.xml
b/assemblies/static/src/main/resources/WEB-INF/web.xml
new file mode 100644
index 0000000..541115c
--- /dev/null
+++ b/assemblies/static/src/main/resources/WEB-INF/web.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~
+ -->
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+
+ <context-param>
+ <param-name>org.eclipse.rap.applicationConfiguration</param-name>
+ <param-value>org.apache.hop.ui.hopgui.HopWeb</param-value>
+ </context-param>
+
+ <listener>
+
<listener-class>org.apache.hop.ui.hopgui.HopWebServletContextListener</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>HopGui</servlet-name>
+ <servlet-class>org.eclipse.rap.rwt.engine.RWTServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>HopGui</servlet-name>
+ <url-pattern>/ui</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>welcome</servlet-name>
+ <jsp-file>/docs/English/welcome/index.html</jsp-file>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>welcome</servlet-name>
+ <url-pattern>/docs/English/welcome/index.html</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>Server</servlet-name>
+ <servlet-class>org.apache.hop.www.HopServerServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Server</servlet-name>
+ <url-pattern>/hop/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
diff --git a/assemblies/static/src/main/resources/index.jsp
b/assemblies/static/src/main/resources/index.jsp
new file mode 100644
index 0000000..630dc8b
--- /dev/null
+++ b/assemblies/static/src/main/resources/index.jsp
@@ -0,0 +1,20 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+--%>
+
+<% response.sendRedirect("ui"); %>
diff --git a/assemblies/web/pom.xml b/assemblies/web/pom.xml
new file mode 100644
index 0000000..d5085ae
--- /dev/null
+++ b/assemblies/web/pom.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>hop-assemblies-web</artifactId>
+ <packaging>pom</packaging>
+
+ <name>Hop Assemblies Web</name>
+
+ <parent>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies</artifactId>
+ <version>0.70-SNAPSHOT</version>
+ </parent>
+
+ <properties>
+ <rap.version>3.13.0</rap.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies-libs</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies-plugins-dist</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies-static</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies-samples</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- RAP fragment -->
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-ui-rap</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- RAP -->
+ <dependency>
+ <groupId>org.eclipse.rap</groupId>
+ <artifactId>org.eclipse.rap.rwt</artifactId>
+ <version>${rap.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.rap</groupId>
+ <artifactId>org.eclipse.rap.filedialog</artifactId>
+ <version>${rap.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.rap</groupId>
+ <artifactId>org.eclipse.rap.jface</artifactId>
+ <version>${rap.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.rap</groupId>
+ <artifactId>org.eclipse.rap.fileupload</artifactId>
+ <version>${rap.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <finalName>hop</finalName>
+ <appendAssemblyId>false</appendAssemblyId>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/assemblies/web/src/assembly/assembly.xml
b/assemblies/web/src/assembly/assembly.xml
new file mode 100644
index 0000000..0cad12e
--- /dev/null
+++ b/assemblies/web/src/assembly/assembly.xml
@@ -0,0 +1,73 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~
+ -->
+
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0
http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+ <id>web</id>
+ <formats>
+ <format>war</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <!-- the staging dir -->
+ <fileSet>
+ <directory>${assembly.dir}</directory>
+ <outputDirectory>.</outputDirectory>
+ </fileSet>
+ </fileSets>
+ <dependencySets>
+ <!-- hop components -->
+ <dependencySet>
+ <includes>
+ <!--<include>org.hop:hop-assemblies-demo:zip</include>-->
+ <include>org.apache.hop:hop-assemblies-libs:zip</include>
+ </includes>
+ <unpack>true</unpack>
+ <outputDirectory>WEB-INF</outputDirectory>
+ <useTransitiveDependencies>false</useTransitiveDependencies>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+ <dependencySet>
+ <includes>
+ <include>org.apache.hop:hop-assemblies-static:zip</include>
+ </includes>
+ <unpack>true</unpack>
+ <outputDirectory>.</outputDirectory>
+ <useTransitiveDependencies>false</useTransitiveDependencies>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+ <!-- RAP -->
+ <dependencySet>
+ <includes>
+ <include>org.eclipse.rap:org.eclipse.rap.*</include>
+ </includes>
+ <outputDirectory>WEB-INF/lib</outputDirectory>
+ <useTransitiveDependencies>false</useTransitiveDependencies>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+ <dependencySet>
+ <includes>
+ <include>org.apache.hop:hop-ui-rap:jar</include>
+ </includes>
+ <outputDirectory>WEB-INF/lib</outputDirectory>
+ <useTransitiveDependencies>false</useTransitiveDependencies>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+
+ </dependencySets>
+</assembly>
diff --git a/docker/Dockerfile.web b/docker/Dockerfile.web
new file mode 100644
index 0000000..4615896
--- /dev/null
+++ b/docker/Dockerfile.web
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+FROM tomcat:jdk8
+LABEL maintainer="Apache Hop Team"
+ENV JAVA_OPTS="-Xms1024m -Xmx2048m -DHOP_CONFIG_FOLDER=webapps/ROOT/config"
+
+RUN rm -rf webapps/* \
+ && wget -q
https://github.com/HiromuHota/incubator-hop/releases/download/hopweb%2Fnightly/hop.war
\
+ && mkdir ${CATALINA_HOME}/webapps/ROOT \
+ && unzip -q hop.war -d ${CATALINA_HOME}/webapps/ROOT \
+ && rm hop.war \
+ && wget -q
https://github.com/HiromuHota/incubator-hop/releases/download/hopweb%2Fnightly/hop-assemblies-plugins-dist-0.70-SNAPSHOT.zip
-O hop-assemblies-plugins-dist.zip \
+ && unzip -q hop-assemblies-plugins-dist.zip \
+ && rm hop-assemblies-plugins-dist.zip \
+ && sed -i 's/config\/projects/${HOP_CONFIG_FOLDER}\/projects/g'
webapps/ROOT/config/hop-config.json
diff --git a/assemblies/pom.xml b/integration-tests/hopweb/pom.xml
similarity index 66%
copy from assemblies/pom.xml
copy to integration-tests/hopweb/pom.xml
index 8bd2c95..7ab2697 100644
--- a/assemblies/pom.xml
+++ b/integration-tests/hopweb/pom.xml
@@ -17,34 +17,39 @@
~
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hop</groupId>
- <artifactId>hop-assemblies</artifactId>
+ <artifactId>hop-web-integration-tests</artifactId>
<version>0.70-SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>Hop Assemblies</name>
+ <name>Hop Web Integration Tests</name>
<parent>
<groupId>org.apache.hop</groupId>
<artifactId>hop</artifactId>
<version>0.70-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
</parent>
<properties>
- <assembly.dir>${project.build.directory}/assembly</assembly.dir>
+ <selenium.version>3.141.59</selenium.version>
</properties>
- <modules>
- <module>plugins</module>
- <module>static</module>
- <module>lib</module>
- <module>client</module>
- <module>core</module>
- <module>debug</module>
- <module>samples</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.seleniumhq.selenium</groupId>
+ <artifactId>selenium-java</artifactId>
+ <version>${selenium.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.1</version>
+ </dependency>
+ </dependencies>
+
</project>
diff --git
a/integration-tests/hopweb/src/test/java/org/apache/hop/ui/hopgui/HopWebTest.java
b/integration-tests/hopweb/src/test/java/org/apache/hop/ui/hopgui/HopWebTest.java
new file mode 100644
index 0000000..c819dd6
--- /dev/null
+++
b/integration-tests/hopweb/src/test/java/org/apache/hop/ui/hopgui/HopWebTest.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hop.ui.hopgui;
+
+import static org.junit.Assert.*;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+public class HopWebTest {
+ private WebDriver driver;
+ private Actions actions;
+ private String baseUrl;
+ private WebElement element;
+ private WebDriverWait wait;
+
+ @Before
+ public void setUp() throws Exception {
+ boolean isHeadless = Boolean.parseBoolean( System.getProperty(
"headless.unittest", "true" ) );
+ ChromeOptions options = new ChromeOptions();
+ if ( isHeadless ) {
+ options.addArguments( "headless" );
+ }
+ options.addArguments( "--window-size=1280,800" );
+ driver = new ChromeDriver( options );
+ actions = new Actions( driver );
+ wait = new WebDriverWait( driver, 5 );
+ baseUrl = System.getProperty( "test.baseurl", "http://localhost:8080" );
+ driver.get( baseUrl );
+ driver.manage().timeouts().implicitlyWait( 5, TimeUnit.SECONDS );
+ }
+
+ @Test
+ public void testAppLoading() {
+ assertEquals( driver.getTitle(), "Hop" );
+ }
+
+ @Test
+ public void testContextDialog() {
+ By xpath = By.xpath(
+ "//div[starts-with(text(), 'Search') and not(contains(text(),
'string'))]"
+ );
+ assertEquals(0, driver.findElements(xpath).size());
+
+ clickElement("//div[text() = 'File']");
+ clickElement("//div[text() = 'New']");
+ // TODO: driver.findElements(xpath).size() is now 2 for some reason, but
should be 1.
+ assertTrue( 1 <= driver.findElements(xpath).size());
+ }
+
+ @Test
+ public void testNewPipeline() {
+ // Create a new pipeline
+ createNewPipeline();
+
+ assertEquals(1, driver.findElements(
+ By.xpath(
+ "//div[text()='New pipeline']"
+ )
+ ).size());
+ }
+
+ private void createNewPipeline() {
+ // Create a new Pipeline
+ clickElement("//div[text() = 'File']");
+ clickElement("//div[text() = 'New']");
+ element = driver.findElement(By.xpath("//div[starts-with(text(), 'Search')
and not(contains(text(), 'string'))]"));
+ element = element.findElement(By.xpath("./../..//input"));
+ element.sendKeys(Keys.UP);
+ element.sendKeys(Keys.LEFT);
+ element.sendKeys(Keys.RETURN);
+ }
+
+ private void clickElement( String xpath ) {
+ element = wait.until( ExpectedConditions.elementToBeClickable( By.xpath(
xpath ) ) );
+ element.click();
+ }
+
+ @After
+ public void tearDown() {
+ driver.quit();
+ }
+}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/gui/GuiMenuWidgets.java
b/ui/src/main/java/org/apache/hop/ui/core/gui/GuiMenuWidgets.java
index eff267e..2abdc60 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/gui/GuiMenuWidgets.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/gui/GuiMenuWidgets.java
@@ -26,6 +26,7 @@ import org.apache.hop.core.gui.plugin.menu.GuiMenuItem;
import org.apache.hop.ui.core.ConstUi;
import org.apache.hop.ui.core.PropsUi;
import org.apache.hop.ui.hopgui.file.IHopFileType;
+import org.apache.hop.ui.util.EnvironmentUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
@@ -103,7 +104,7 @@ public class GuiMenuWidgets extends BaseGuiWidgets {
}
setMenuItemKeyboardShortcut(menuItem, guiMenuItem);
- if (StringUtils.isNotEmpty(guiMenuItem.getToolTip())) {
+ if (StringUtils.isNotEmpty(guiMenuItem.getToolTip()) &&
!EnvironmentUtils.getInstance().isWeb()) {
menuItem.setToolTipText(guiMenuItem.getToolTip());
}
@@ -149,7 +150,7 @@ public class GuiMenuWidgets extends BaseGuiWidgets {
menuItem = new MenuItem(parentMenu, SWT.CASCADE);
menuItem.setText(Const.NVL(guiMenuItem.getLabel(), ""));
setMenuItemKeyboardShortcut(menuItem, guiMenuItem);
- if (StringUtils.isNotEmpty(guiMenuItem.getToolTip())) {
+ if (StringUtils.isNotEmpty(guiMenuItem.getToolTip()) &&
!EnvironmentUtils.getInstance().isWeb()) {
menuItem.setToolTipText(guiMenuItem.getToolTip());
}
menu = new Menu(shell, SWT.DROP_DOWN);
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
index 3f98a6a..00c719c 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
@@ -138,6 +138,7 @@ import
org.apache.hop.ui.hopgui.perspective.dataorch.HopGuiAbstractGraph;
import org.apache.hop.ui.hopgui.shared.SwtGc;
import org.apache.hop.ui.hopgui.shared.SwtScrollBar;
import org.apache.hop.ui.pipeline.dialog.PipelineDialog;
+import org.apache.hop.ui.util.EnvironmentUtils;
import org.apache.hop.workflow.action.ActionMeta;
import org.apache.hop.workflow.actions.pipeline.ActionPipeline;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -532,12 +533,14 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
horizontalBar.setMinimum(1);
horizontalBar.setMaximum(100);
- horizontalBar.setIncrement(5);
horizontalBar.setVisible(true);
verticalBar.setMinimum(1);
verticalBar.setMaximum(100);
- verticalBar.setIncrement(5);
verticalBar.setVisible(true);
+ if ( !EnvironmentUtils.getInstance().isWeb() ) {
+ horizontalBar.setIncrement(5);
+ verticalBar.setIncrement(5);
+ }
if (OsHelper.isWindows()) {
horizontalBar.addListener(SWT.Selection, e -> canvas.redraw());
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
index 45b8f4b..0e41e54 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
@@ -95,6 +95,7 @@ import
org.apache.hop.ui.hopgui.perspective.dataorch.HopDataOrchestrationPerspec
import org.apache.hop.ui.hopgui.perspective.dataorch.HopGuiAbstractGraph;
import org.apache.hop.ui.hopgui.shared.SwtGc;
import org.apache.hop.ui.hopgui.shared.SwtScrollBar;
+import org.apache.hop.ui.util.EnvironmentUtils;
import org.apache.hop.ui.workflow.dialog.WorkflowDialog;
import org.apache.hop.workflow.ActionResult;
import org.apache.hop.workflow.IActionListener;
@@ -414,12 +415,14 @@ public class HopGuiWorkflowGraph extends
HopGuiAbstractGraph
horizontalBar.setMinimum(1);
horizontalBar.setMaximum(100);
- horizontalBar.setIncrement(5);
horizontalBar.setVisible(true);
verticalBar.setMinimum(1);
verticalBar.setMaximum(100);
- verticalBar.setIncrement(5);
verticalBar.setVisible(true);
+ if (!EnvironmentUtils.getInstance().isWeb()) {
+ horizontalBar.setIncrement(5);
+ verticalBar.setIncrement(5);
+ }
if (OsHelper.isWindows()) {
horizontalBar.addListener(
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/dataorch/HopGuiAbstractGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/dataorch/HopGuiAbstractGraph.java
index 009805e..49416cc 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/dataorch/HopGuiAbstractGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/dataorch/HopGuiAbstractGraph.java
@@ -24,6 +24,7 @@ import org.apache.hop.core.variables.Variables;
import org.apache.hop.ui.core.PropsUi;
import org.apache.hop.ui.core.gui.GuiResource;
import org.apache.hop.ui.hopgui.HopGui;
+import org.apache.hop.ui.util.EnvironmentUtils;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.graphics.Font;
@@ -346,13 +347,17 @@ public abstract class HopGuiAbstractGraph extends
Composite {
h.setMinimum( 1 );
h.setMaximum( 100 );
h.setThumb(hThumb);
- h.setPageIncrement(10);
+ if ( !EnvironmentUtils.getInstance().isWeb() ){
+ h.setPageIncrement( 10 );
+ }
}
if (v != null) {
v.setMinimum( 1 );
v.setMaximum( 100 );
v.setThumb(vThumb);
- v.setPageIncrement(10);
+ if ( !EnvironmentUtils.getInstance().isWeb() ) {
+ v.setPageIncrement( 10 );
+ }
}
canvas.setFocus();
}