From da87b0c3018f4d5eb83773f7fae5e62abf40b739 Mon Sep 17 00:00:00 2001 From: chgibb Date: Sun, 25 Aug 2019 16:21:35 -0400 Subject: [PATCH] fixed repositioning --- .../components/icons/swapVertOutlined.ts | 1 + .../circularGenomeBuilderView.tsx | 76 ++++++++++++++++++- .../circularGenome/circularGenome.tsx | 9 +++ .../containers/circularGenome/layer.tsx | 13 +++- 4 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 src/req/renderer/components/icons/swapVertOutlined.ts diff --git a/src/req/renderer/components/icons/swapVertOutlined.ts b/src/req/renderer/components/icons/swapVertOutlined.ts new file mode 100644 index 000000000..e293ed76a --- /dev/null +++ b/src/req/renderer/components/icons/swapVertOutlined.ts @@ -0,0 +1 @@ +export const SwapVertOutlined : typeof import("@material-ui/icons/SwapVertOutlined").default = require("@material-ui/icons/SwapVertOutlined").default; diff --git a/src/req/renderer/views/circularGenomeBuilderView/circularGenomeBuilderView.tsx b/src/req/renderer/views/circularGenomeBuilderView/circularGenomeBuilderView.tsx index f21b5a1ad..0345e76fb 100644 --- a/src/req/renderer/views/circularGenomeBuilderView/circularGenomeBuilderView.tsx +++ b/src/req/renderer/views/circularGenomeBuilderView/circularGenomeBuilderView.tsx @@ -17,11 +17,18 @@ import {WavesOutlined} from "../../components/icons/wavesOutlined"; import {CircularGenome} from "./containers/circularGenome/circularGenome"; import {FigureSelectOverlay} from "./containers/overlays/figureSelectOverlay"; import {appBar} from "./containers/styles/appBar"; +import { SwapVertOutlined } from '../../components/icons/swapVertOutlined'; export interface CircularGenomeBuilderViewState { figureSelectDrawerOpen: boolean; selectedFigure: string; + figurePosition : { + width : number, + height : number, + x : number, + y : number + } } export interface CircularGenomeBuilderViewProps { @@ -37,7 +44,17 @@ export class CircularGenomeBuilderView extends React.Component + { + if (x.uuid == this.state.selectedFigure) + { + this.setState({ + figurePosition: { + width : x.width, + height : x.height, + x : (document.documentElement.clientWidth/2) - (x.width/2), + y : (document.documentElement.clientHeight/2) - (x.height/2) + } + }) + } + } + ); + } + + public componentDidUpdate(prevProps : CircularGenomeBuilderViewProps,prevState : CircularGenomeBuilderViewState) + { + if(prevState.selectedFigure != this.state.selectedFigure) + { + this.reposition(); + } + } + + public componentWillUnmount() + { + window.removeEventListener("resize",this.reposition); + } + public render(): JSX.Element { return ( @@ -78,14 +127,33 @@ export class CircularGenomeBuilderView extends React.Component - + + + + - + @@ -98,6 +166,10 @@ export class CircularGenomeBuilderView extends React.Component ); } diff --git a/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/circularGenome.tsx b/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/circularGenome.tsx index 1f7a951bd..e76b956ef 100644 --- a/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/circularGenome.tsx +++ b/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/circularGenome.tsx @@ -14,6 +14,10 @@ export interface CircularGenomeState export interface CircularGenomeProps { figure : CircularFigure; + width : number; + height : number; + x : number; + y : number; } export class CircularGenome extends React.Component @@ -98,6 +102,11 @@ export class CircularGenome extends React.Component ); }) diff --git a/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/layer.tsx b/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/layer.tsx index 107b67a9d..8e9250874 100644 --- a/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/layer.tsx +++ b/src/req/renderer/views/circularGenomeBuilderView/containers/circularGenome/layer.tsx @@ -8,6 +8,10 @@ export interface LayerProps { figure: CircularFigure; target: string; loadPlasmid: (target: string) => void; + width : number; + height : number; + x : number; + y : number; } export class Layer extends React.Component @@ -44,9 +48,12 @@ export class Layer extends React.Component if (ctx) { - this.canvas.width = this.props.figure.width; - this.canvas.height = this.props.figure.height; - console.log(plasmid.plasmid.renderStart() + plasmid.plasmid.renderEnd()); + this.canvas.style.position = "absolute"; + this.canvas.setAttribute("width",`${this.props.width}`); + this.canvas.setAttribute("height",`${this.props.height}`); + this.canvas.style.left = `${this.props.x}px`; + this.canvas.style.top = `${this.props.y}px`; + await renderSVGToCanvas(plasmid.plasmid.renderStart() + plasmid.plasmid.renderEnd(), ctx); } }