From 96dcfc8db79c035ba355d7459907f48c1f62ec08 Mon Sep 17 00:00:00 2001 From: yipstanley Date: Thu, 17 Jan 2019 22:40:45 -0500 Subject: moving documents and panning stuff now uses right click --- .../freeformcanvas/CollectionFreeFormView.tsx | 22 ++++++----- src/views/freeformcanvas/FreeFormCanvas.tsx | 22 ++++++----- src/views/nodes/DocumentView.tsx | 46 +++++++++++++++++++++- 3 files changed, 71 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/views/freeformcanvas/CollectionFreeFormView.tsx b/src/views/freeformcanvas/CollectionFreeFormView.tsx index 7c523e70d..8bdf1849a 100644 --- a/src/views/freeformcanvas/CollectionFreeFormView.tsx +++ b/src/views/freeformcanvas/CollectionFreeFormView.tsx @@ -26,19 +26,23 @@ export class CollectionFreeFormView extends React.Component { @action onPointerDown = (e: React.PointerEvent): void => { e.stopPropagation(); - this._isPointerDown = true; - document.removeEventListener("pointermove", this.onPointerMove); - document.addEventListener("pointermove", this.onPointerMove); - document.removeEventListener("pointerup", this.onPointerUp); - document.addEventListener("pointerup", this.onPointerUp); + if (e.button === 2) { + this._isPointerDown = true; + document.removeEventListener("pointermove", this.onPointerMove); + document.addEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + document.addEventListener("pointerup", this.onPointerUp); + } } @action onPointerUp = (e: PointerEvent): void => { e.stopPropagation(); - this._isPointerDown = false; - document.removeEventListener("pointermove", this.onPointerMove); - document.removeEventListener("pointerup", this.onPointerUp); + if (e.button === 2) { + this._isPointerDown = false; + document.removeEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + } } @action @@ -69,7 +73,7 @@ export class CollectionFreeFormView extends React.Component { const panx: number = doc.GetFieldValue(KeyStore.PanX, NumberField, Number(0)); const pany: number = doc.GetFieldValue(KeyStore.PanY, NumberField, Number(0)); return ( -
+
e.preventDefault()}>
{value.map(doc => { diff --git a/src/views/freeformcanvas/FreeFormCanvas.tsx b/src/views/freeformcanvas/FreeFormCanvas.tsx index cee093fcb..9ef5ab8f7 100644 --- a/src/views/freeformcanvas/FreeFormCanvas.tsx +++ b/src/views/freeformcanvas/FreeFormCanvas.tsx @@ -27,19 +27,23 @@ export class FreeFormCanvas extends React.Component { @action onPointerDown = (e: React.PointerEvent): void => { e.stopPropagation(); - this._isPointerDown = true; - document.removeEventListener("pointermove", this.onPointerMove); - document.addEventListener("pointermove", this.onPointerMove); - document.removeEventListener("pointerup", this.onPointerUp); - document.addEventListener("pointerup", this.onPointerUp); + if (e.button === 2) { + this._isPointerDown = true; + document.removeEventListener("pointermove", this.onPointerMove); + document.addEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + document.addEventListener("pointerup", this.onPointerUp); + } } @action onPointerUp = (e: PointerEvent): void => { e.stopPropagation(); - this._isPointerDown = false; - document.removeEventListener("pointermove", this.onPointerMove); - document.removeEventListener("pointerup", this.onPointerUp); + if (e.button === 2) { + this._isPointerDown = false; + document.removeEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + } // let doc = this.props.store.Docs[0]; // let dataField = doc.GetFieldT(KeyStore.Data, TextField); @@ -68,7 +72,7 @@ export class FreeFormCanvas extends React.Component { render() { let store = this.props.store; return ( -
+
e.preventDefault()}>
{this.props.store.Docs.map(doc => { diff --git a/src/views/nodes/DocumentView.tsx b/src/views/nodes/DocumentView.tsx index b9fbef91c..1c9f850ed 100644 --- a/src/views/nodes/DocumentView.tsx +++ b/src/views/nodes/DocumentView.tsx @@ -28,6 +28,14 @@ export class DocumentView extends React.Component { return this.props.dvm.Doc.GetFieldValue(KeyStore.Y, NumberField, Number(0)); } + set x(x: number) { + this.props.dvm.Doc.SetFieldValue(KeyStore.X, x, NumberField) + } + + set y(y: number) { + this.props.dvm.Doc.SetFieldValue(KeyStore.Y, y, NumberField) + } + @computed get transform(): string { return `translate(${this.x}px, ${this.y}px)`; @@ -64,6 +72,39 @@ export class DocumentView extends React.Component { return this.props.dvm.Doc.GetFieldValue(KeyStore.LayoutFields, ListField, new Array()); } + private _isPointerDown = false; + + onPointerDown = (e: React.PointerEvent): void => { + e.stopPropagation(); + if (e.button === 2) { + this._isPointerDown = true; + document.removeEventListener("pointermove", this.onPointerMove); + document.addEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + document.addEventListener("pointerup", this.onPointerUp); + } + } + + onPointerUp = (e: PointerEvent): void => { + e.stopPropagation(); + if (e.button === 2) { + e.preventDefault(); + this._isPointerDown = false; + document.removeEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointerup", this.onPointerUp); + } + } + + onPointerMove = (e: PointerEvent): void => { + e.stopPropagation(); + e.preventDefault(); + if (!this._isPointerDown) { + return; + } + this.x += e.movementX; + this.y += e.movementY; + } + render() { let doc = this.props.dvm.Doc; let bindings: any = { @@ -83,7 +124,10 @@ export class DocumentView extends React.Component { transform: this.transform, width: this.width, height: this.height - }}> + }} onPointerDown={this.onPointerDown} onContextMenu={ + (e) => { + e.preventDefault() + }}>