diff --git a/src/content_script.js b/src/content_script.js index cf95803..dad4140 100644 --- a/src/content_script.js +++ b/src/content_script.js @@ -32,34 +32,4 @@ $(document).ready(function () { }); } - document.addEventListener('click', function(evt) { - if (!document.hasFocus()) { - return true; - } - processSelection(); - // evt.stopPropagation(); - // evt.preventDefault(); - }, false); - - // Find currently selected word - function processSelection () { - var focused = document.activeElement; - var selectedText; - if (focused) { - try { - selectedText = focused.value.substring( - focused.selectionStart, focused.selectionEnd); - } catch (err) { - } - } - if (selectedText == undefined) { - var sel = window.getSelection(); - var selectedText = sel.toString(); - } - if (selectedText) { - currentlySelectedWord = selectedText; - displaySelectedWord(currentlySelectedWord); - getSensesFromServer(currentlySelectedWord); - } - } }); \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 27a7e12..3aeb294 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,8 +7,8 @@ import DataService = require('./data/data.service'); import SelectedWordService = require('./selectedWord/selectedWord.service'); angular.module('tagIt', []) - .factory('DataService', DataService) - .factory('SelectedWordService', SelectedWordService) + .service('DataService', DataService) + .service('SelectedWordService', SelectedWordService) .controller('MenuCtrl', MenuCtrl); function initAngular () { @@ -19,7 +19,8 @@ function initAngular () { document.getElementById("tagit-menu"), ['tagIt'] ); - }); + }); } -initAngular(); \ No newline at end of file +initAngular(); + diff --git a/src/menu/menu.controller.ts b/src/menu/menu.controller.ts index 3f64666..f3a9e10 100644 --- a/src/menu/menu.controller.ts +++ b/src/menu/menu.controller.ts @@ -10,11 +10,16 @@ class MenuCtrl { testWord = "It's working" selectedWord = "No word yet" - static $inject = ["$scope", "$log", "SelectedWordService"] + static $inject = ["$scope", "$log", "SelectedWordService", "DataService"] - constructor($scope: any, $log: angular.ILogService, SelectedWordService: any) { + constructor($scope: any, $log: angular.ILogService, + SelectedWordService: any, DataService : any) { $scope.vm = this; - SelectedWordService.init(); + SelectedWordService.controllerToNotify = this.onWordSelected; + } + + onWordSelected (newWord : string) { + this.selectedWord = newWord; } remove() { diff --git a/src/selectedWord/selectedWord.service.ts b/src/selectedWord/selectedWord.service.ts index 098847a..1bb6215 100644 --- a/src/selectedWord/selectedWord.service.ts +++ b/src/selectedWord/selectedWord.service.ts @@ -8,42 +8,48 @@ class SelectedWordService { currentlySelectedWord: string $log : ng.ILogService + controllerToNotify : (selectedWord : string) => void; static $inject = ["$log"]; constructor($log: ng.ILogService) { this.$log = $log; + this.init(); } processSelection () { - // var focused : any = document.activeElement; - // var selectedText : string; - // if (focused) { - // try { - // selectedText = focused.value.substring( - // focused.selectionStart, focused.selectionEnd); - // } catch (err) { - // } - // } - // if (selectedText == undefined) { - // var sel = window.getSelection(); - // var selectedText = sel.toString(); - // } - // if (selectedText) { - // this.currentlySelectedWord = selectedText; - // this.$log.debug('text that was selected: ' + selectedText); - // } + var focused : any = document.activeElement; + var selectedText : string; + if (focused) { + try { + selectedText = focused.value.substring( + focused.selectionStart, focused.selectionEnd); + } catch (err) { + } + } + if (selectedText == undefined) { + var sel = window.getSelection(); + var selectedText = sel.toString(); + } + if (selectedText) { + this.currentlySelectedWord = selectedText; + this.$log.debug('text that was selected: ' + selectedText); + if(this.controllerToNotify) { + this.controllerToNotify(selectedText); + } + } } init () { - // document.addEventListener('click', function(evt) { - // if (!document.hasFocus()) { - // return true; - // } - // this.processSelection(); - // // clicks should propagate upwards to other things - // // evt.stopPropagation(); - // // evt.preventDefault(); - // }, false); + var that = this; + document.addEventListener('click', function (evt) { + if (!document.hasFocus()) { + return true; + } + that.processSelection(); + // clicks should propagate upwards to other things + // evt.stopPropagation(); + // evt.preventDefault(); + }, false); } } diff --git a/tsconfig.json b/tsconfig.json index 9036598..05bbe28 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,5 @@ "module": "commonjs", "noImplicitAny": true }, - "files": [ - "src/index.ts" - ] + "files": [] } \ No newline at end of file