From f400699a617feeefd56c6743b49fda9942bc37bd Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 09:33:31 -0800 Subject: [PATCH 1/8] try printing fragment in the console --- packages/csvviewer/src/widget.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 479699cf3863..bcdc18eca76e 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -348,6 +348,29 @@ export class CSVDocumentWidget extends DocumentWidget { } ); } + + /** + * Set URI fragment identifier for rows + */ + setFragment(fragment: string): void { + // console.log('In setFragment'); + console.log(fragment); + // // TODO: expand to allow columns and cells to be selected + // // reference: https://tools.ietf.org/html/rfc7111#section-3 + // let parse_fragments = fragment.split('='); + // console.log(parse_fragments); + // if (parse_fragments[0] !== 'row') { + // return; + // } + // // multiple rows, separated by semi-colons can be provided, we will just + // // go to the top one + // let top_row = ((parse_fragments[0].split(';'))[0]); + // // a range of rows can be provided, we will take the first value + // top_row = ((top_row.split('-'))[0]); + // // go to that row + // (this.content as CSVViewer).goToLine(Number(top_row)); + // this.update(); + } } export namespace CSVDocumentWidget { From fe0b8c6f2f914a16707293da3eec6e0678206f14 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 10:17:14 -0800 Subject: [PATCH 2/8] first pass at CSV setFragment --- packages/csvviewer/src/widget.ts | 36 +++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index bcdc18eca76e..0e2f23ba3d65 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -353,23 +353,25 @@ export class CSVDocumentWidget extends DocumentWidget { * Set URI fragment identifier for rows */ setFragment(fragment: string): void { - // console.log('In setFragment'); - console.log(fragment); - // // TODO: expand to allow columns and cells to be selected - // // reference: https://tools.ietf.org/html/rfc7111#section-3 - // let parse_fragments = fragment.split('='); - // console.log(parse_fragments); - // if (parse_fragments[0] !== 'row') { - // return; - // } - // // multiple rows, separated by semi-colons can be provided, we will just - // // go to the top one - // let top_row = ((parse_fragments[0].split(';'))[0]); - // // a range of rows can be provided, we will take the first value - // top_row = ((top_row.split('-'))[0]); - // // go to that row - // (this.content as CSVViewer).goToLine(Number(top_row)); - // this.update(); + let parse_fragments = fragment.split('='); + + // TODO: expand to allow columns and cells to be selected + // reference: https://tools.ietf.org/html/rfc7111#section-3 + if (parse_fragments[0] !== '#row') { + console.log('not row'); + return; + } + + // multiple rows, separated by semi-colons can be provided, we will just + // go to the top one + let top_row = parse_fragments[1].split(';')[0]; + + // a range of rows can be provided, we will take the first value + top_row = top_row.split('-')[0]; + console.log(top_row); + + // go to that row + this.content.goToLine(Number(top_row)); } } From f2c37ec1253d37a3250a2328bf99f1295b78bbf2 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 10:27:05 -0800 Subject: [PATCH 3/8] be careful about brackets --- packages/csvviewer/src/widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 0e2f23ba3d65..7362c719f865 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -358,7 +358,6 @@ export class CSVDocumentWidget extends DocumentWidget { // TODO: expand to allow columns and cells to be selected // reference: https://tools.ietf.org/html/rfc7111#section-3 if (parse_fragments[0] !== '#row') { - console.log('not row'); return; } @@ -372,6 +371,7 @@ export class CSVDocumentWidget extends DocumentWidget { // go to that row this.content.goToLine(Number(top_row)); + this.update(); } } From 577abc861ab199a95372185a15312ec87609e7d1 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 10:41:37 -0800 Subject: [PATCH 4/8] check if context is ready before going to the correct line --- packages/csvviewer/src/widget.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 7362c719f865..1497e4fe27ed 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -370,8 +370,10 @@ export class CSVDocumentWidget extends DocumentWidget { console.log(top_row); // go to that row - this.content.goToLine(Number(top_row)); - this.update(); + this._context.ready.then(() => { + this.content.goToLine(Number(top_row)); + // this.update(); + }); } } From dbdacd6aedd0fb01b90748c05d0750b2a6371b31 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 10:53:13 -0800 Subject: [PATCH 5/8] linting of variable names, remove console logging --- packages/csvviewer/src/widget.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 1497e4fe27ed..8d81b9e15e3a 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -353,27 +353,26 @@ export class CSVDocumentWidget extends DocumentWidget { * Set URI fragment identifier for rows */ setFragment(fragment: string): void { - let parse_fragments = fragment.split('='); + let parseFragments = fragment.split('='); // TODO: expand to allow columns and cells to be selected // reference: https://tools.ietf.org/html/rfc7111#section-3 - if (parse_fragments[0] !== '#row') { + if (parseFragments[0] !== '#row') { return; } // multiple rows, separated by semi-colons can be provided, we will just // go to the top one - let top_row = parse_fragments[1].split(';')[0]; + let topRow = parseFragments[1].split(';')[0]; // a range of rows can be provided, we will take the first value - top_row = top_row.split('-')[0]; - console.log(top_row); + topRow = topRow.split('-')[0]; // go to that row this._context.ready.then(() => { - this.content.goToLine(Number(top_row)); - // this.update(); + this.content.goToLine(Number(topRow)); }); + this.update(); } } From e47acf7c514f0a099ffb3bbbe413c39cbcd402b9 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Wed, 5 Dec 2018 11:05:20 -0800 Subject: [PATCH 6/8] use context rather than _context --- packages/csvviewer/src/widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 8d81b9e15e3a..f813c3032bfc 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -369,7 +369,7 @@ export class CSVDocumentWidget extends DocumentWidget { topRow = topRow.split('-')[0]; // go to that row - this._context.ready.then(() => { + this.context.ready.then(() => { this.content.goToLine(Number(topRow)); }); this.update(); From 5b450722ce23aa1fccaf6efed46825366217e0d8 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Tue, 8 Jan 2019 21:55:39 -0800 Subject: [PATCH 7/8] remove the unnecessary update --- packages/csvviewer/src/widget.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index f813c3032bfc..6af6288a20ab 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -372,7 +372,6 @@ export class CSVDocumentWidget extends DocumentWidget { this.context.ready.then(() => { this.content.goToLine(Number(topRow)); }); - this.update(); } } From 755ed7fce8653817bd06a0ba17c787f18c89400d Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Fri, 11 Jan 2019 08:42:55 -0800 Subject: [PATCH 8/8] bug fix in goToLine --- packages/csvviewer/src/widget.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 6af6288a20ab..b92ff599a289 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -272,12 +272,12 @@ export class CSVViewer extends Widget { * Go to line */ goToLine(lineNumber: number) { - let scrollY = this._grid.scrollY; + let scrollY = 0; /* The lines might not all have uniform height, so we can't just scroll to lineNumber * this._grid.baseRowSize see https://github.com/jupyterlab/jupyterlab/pull/5523#issuecomment-432621391 for discussions around this. It would be nice if DataGrid had a method to scroll to cell, which could be implemented more efficiently because datagrid knows more about the shape of the cells. */ - for (let i = scrollY; i < lineNumber - 1; i++) { + for (let i = 0; i < lineNumber - 1; i++) { scrollY += this._grid.sectionSize('row', i); } this._grid.scrollTo(this._grid.scrollX, scrollY);