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/03/29 06:02:01 UTC
[incubator-hop] branch master updated: [HOP-2715] Client-side
canvas drawing on Hop Web
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 4b0c8cb [HOP-2715] Client-side canvas drawing on Hop Web
new 501c148 Merge pull request #716 from HiromuHota/HOP-2715
4b0c8cb is described below
commit 4b0c8cb15d6090922a9ad093de1a65eabdc84c74
Author: Hiromu Hota <hi...@gmail.com>
AuthorDate: Sun Mar 28 18:06:52 2021 -0700
[HOP-2715] Client-side canvas drawing on Hop Web
---
.../hopgui/file/pipeline/HopGuiPipelineGraph.java | 26 ++++++++++++++++++++++
.../hopgui/file/workflow/HopGuiWorkflowGraph.java | 26 ++++++++++++++++++++++
2 files changed, 52 insertions(+)
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 2b5b618..5603e59 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
@@ -74,6 +74,8 @@ import org.apache.hop.ui.core.gui.HopNamespace;
import org.apache.hop.ui.core.widget.CheckBoxToolTip;
import org.apache.hop.ui.core.widget.OsHelper;
import org.apache.hop.ui.hopgui.HopGui;
+import org.apache.hop.ui.hopgui.CanvasFacade;
+import org.apache.hop.ui.hopgui.CanvasListener;
import org.apache.hop.ui.hopgui.HopGuiExtensionPoint;
import org.apache.hop.ui.hopgui.context.GuiContextUtil;
import org.apache.hop.ui.hopgui.context.IGuiContextHandler;
@@ -424,6 +426,11 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
wsCanvas.setLayoutData(fdsCanvas);
canvas = new Canvas(wsCanvas, SWT.NO_BACKGROUND);
+ Listener listener = CanvasListener.getInstance();
+ canvas.addListener(SWT.MouseDown, listener);
+ canvas.addListener(SWT.MouseMove, listener);
+ canvas.addListener(SWT.MouseUp, listener);
+ canvas.addListener(SWT.Paint, listener);
FormData fdCanvas = new FormData();
fdCanvas.left = new FormAttachment(0, 0);
fdCanvas.top = new FormAttachment(0, 0);
@@ -606,6 +613,10 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
@Override
public void mouseDown(MouseEvent e) {
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseHover(e);
+ }
doubleClick = false;
mouseMovedSinceClick = false;
@@ -705,8 +716,10 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
} else if (e.button == 2 || (e.button == 1 && shift)) {
// SHIFT CLICK is start of drag to create a new hop
//
+ canvas.setData("mode", "hop");
startHopTransform = transformMeta;
} else {
+ canvas.setData("mode", "drag");
selectedTransforms = pipelineMeta.getSelectedTransforms();
selectedTransform = transformMeta;
//
@@ -763,6 +776,7 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
} else {
// No area-owner & no hop means : background click:
//
+ canvas.setData("mode", "select");
startHopTransform = null;
if (!control && e.button == 1) {
selectionRegion = new org.apache.hop.core.gui.Rectangle(real.x, real.y, 0, 0);
@@ -770,6 +784,10 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
updateGui();
}
}
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseMove(e);
+ }
}
private enum SingleClickType {
@@ -781,6 +799,13 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
@Override
public void mouseUp(MouseEvent e) {
+ // canvas.setData("mode", null); does not work.
+ canvas.setData("mode", "null");
+
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseMove(e);
+ }
boolean control = (e.stateMask & SWT.MOD1) != 0;
PipelineHopMeta selectedHop = findPipelineHop(e.x, e.y);
@@ -3204,6 +3229,7 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
} finally {
gc.dispose();
}
+ CanvasFacade.setData(canvas, magnification, pipelineMeta, HopGuiPipelineGraph.class);
}
@Override
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 e5d9dd5..108c0b8 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
@@ -56,6 +56,8 @@ import org.apache.hop.ui.core.gui.HopNamespace;
import org.apache.hop.ui.core.widget.CheckBoxToolTip;
import org.apache.hop.ui.core.widget.OsHelper;
import org.apache.hop.ui.hopgui.HopGui;
+import org.apache.hop.ui.hopgui.CanvasFacade;
+import org.apache.hop.ui.hopgui.CanvasListener;
import org.apache.hop.ui.hopgui.context.GuiContextUtil;
import org.apache.hop.ui.hopgui.context.IGuiContextHandler;
import org.apache.hop.ui.hopgui.dialog.NotePadDialog;
@@ -329,6 +331,11 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
wsCanvas.setLayoutData(fdsCanvas);
canvas = new Canvas(wsCanvas, SWT.NO_BACKGROUND);
+ Listener listener = CanvasListener.getInstance();
+ canvas.addListener(SWT.MouseDown, listener);
+ canvas.addListener(SWT.MouseMove, listener);
+ canvas.addListener(SWT.MouseUp, listener);
+ canvas.addListener(SWT.Paint, listener);
FormData fdCanvas = new FormData();
fdCanvas.left = new FormAttachment(0, 0);
fdCanvas.top = new FormAttachment(0, 0);
@@ -489,6 +496,10 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
}
public void mouseDown(MouseEvent e) {
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseHover(e);
+ }
doubleClick = false;
if (ignoreNextClick) {
@@ -540,9 +551,11 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
} else if (e.button == 2 || (e.button == 1 && shift)) {
// SHIFT CLICK is start of drag to create a new hop
//
+ canvas.setData("mode", "hop");
startHopAction = actionCopy;
} else {
+ canvas.setData("mode", "drag");
selectedActions = workflowMeta.getSelectedActions();
selectedAction = actionCopy;
//
@@ -609,6 +622,7 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
} else {
// No area-owner means: background:
//
+ canvas.setData("mode", "select");
startHopAction = null;
if (!control) {
selectionRegion = new org.apache.hop.core.gui.Rectangle(real.x, real.y, 0, 0);
@@ -617,6 +631,10 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
}
}
}
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseMove(e);
+ }
}
private enum SingleClickType {
@@ -627,6 +645,13 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
}
public void mouseUp(MouseEvent e) {
+ // canvas.setData("mode", null); does not work.
+ canvas.setData("mode", "null");
+ if (EnvironmentUtils.getInstance().isWeb()) {
+ // RAP does not support certain mouse events.
+ mouseMove(e);
+ }
+
boolean control = (e.stateMask & SWT.MOD1) != 0;
boolean singleClick = false;
@@ -2612,6 +2637,7 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
} finally {
gc.dispose();
}
+ CanvasFacade.setData(canvas, magnification, workflowMeta, HopGuiWorkflowGraph.class);
}
protected Point getOffset() {