diff --git a/150-DOCUMENTATION/TestCasesForHighlight.xlsx b/150-DOCUMENTATION/TestCasesForHighlight.xlsx new file mode 100644 index 0000000..5712222 --- /dev/null +++ b/150-DOCUMENTATION/TestCasesForHighlight.xlsx diff --git a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj index 0412857..a65a123 100644 --- a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj +++ b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj @@ -75,17 +75,29 @@ + + + + + + + + + + + + @@ -42954,6 +42966,7 @@ + Web.config @@ -42981,10 +42994,7 @@ - - - @@ -42999,7 +43009,7 @@ - True + False True 55837 / diff --git a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user index efc2305..b54d751 100644 --- a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user +++ b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj.user @@ -3,5 +3,29 @@ ShowAllFiles - + + + + + + + CurrentPage + True + False + False + False + + + + + + + + + True + True + + + + \ No newline at end of file diff --git a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js index d27105d..c4aa342 100644 --- a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js +++ b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js @@ -43,6 +43,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo $scope.previousGrayImageDataVar; $scope.previousGrayCanvas; + $scope.previousSelectedTermList = []; + + + $scope.machedBodyRegion = []; //array for bodyviewid correspoing to male female(used for gender change) @@ -149,7 +153,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } - $scope.imagePath = "~/../content/images/DA/"+$scope.zoomInOut +"/body-views/" + value._id + '/skintone/' + userEthnicity + '/' + thumbnailImage; + $scope.imagePath = "~/../content/images/DA/" + $scope.zoomInOut + "/body-views/" + value._id + '/skintone/' + userEthnicity + '/' + thumbnailImage; // debugger; var $el = $('
' @@ -190,12 +194,12 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo $rootScope.ClearIframe(); //load common data - var commondataJsonPath = '~/../content/data/json/da/da_dat_common.json'; + var commondataJsonPath = '~/../content/data/json/da/da_dat_common.json'; DataService.getAnotherJson(commondataJsonPath) .then( function (result) { - + $rootScope.CommonData = result; $http({ method: 'GET', url: '~/../content/data/json/da/da_dat_contentlist.json' }).success(function (data) { @@ -215,17 +219,17 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } ) //load body-views data - + // $('#daLoaderLabel').css('visibility', 'hidden') $rootScope.isLoading = false; - + //push the details of open module in array $rootScope.openModules $rootScope.openModules.push({ "ModuleId": 1 }); - - + + } @@ -321,7 +325,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo selector: '.daBodyView', theme: 'success', currentController: 'DAController', - parentSlug:'da-view-list', + parentSlug: 'da-view-list', ajax: { url: 'app/views/da/da-view.html' }, @@ -760,7 +764,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo if (bodyRegion == bodyRegionId && bodyRegionSkinTone == $scope.skinTone) { - return "content/images/DA/"+$scope.zoomInOut +"/body-views/" + $scope.voId + "/layers/" + $scope.layerNumber + "/" + bodyRegionId + "/" + $scope.skinTone + "/" + SelectedLayerData.BodyRegion[z].Image._ImageName; + return "content/images/DA/" + $scope.zoomInOut + "/body-views/" + $scope.voId + "/layers/" + $scope.layerNumber + "/" + bodyRegionId + "/" + $scope.skinTone + "/" + SelectedLayerData.BodyRegion[z].Image._ImageName; } } } @@ -782,7 +786,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo if (bodyRegion == bodyRegionId) { return "content/images/DA/" + $scope.zoomInOut + "/body-views/" + $scope.voId + "/layers/" + $scope.layerNumber + "/" + bodyRegionId + "/" + SelectedLayerData.BodyRegion[z].Image._ImageName; - + } } @@ -818,7 +822,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo for (var z = 0; z <= $scope.bagartDetailsOnSktn.length; z++) { var gender = $scope.bagartDetailsOnSktn[z]._Gender; if (gender == selectedGender) { - return "content/images/DA/"+$scope.zoomInOut+"/body-views/" + $scope.voId + "/layers/0/" + bodyRegionId + "/" + $scope.skinTone + "/" + $scope.bagartDetailsOnSktn[z]._ImageId; + return "content/images/DA/" + $scope.zoomInOut + "/body-views/" + $scope.voId + "/layers/0/" + bodyRegionId + "/" + $scope.skinTone + "/" + $scope.bagartDetailsOnSktn[z]._ImageId; } } } @@ -839,7 +843,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo FlipedImgCanvas.style.left = x + "px"; FlipedImgCanvas.style.top = y + "px"; - + if (isMaskImage == 'Y') { FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR_mci'; @@ -852,14 +856,14 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } - + FlipedImgCanvas.addEventListener('click', function (evt) { - + //get mouse coordinate of mirror image click var mousePos = $scope.getMousePos(evt); - + var context = FlipedImgCanvas.getContext("2d"); var canvasId = context.canvas.getAttribute('id'); @@ -875,7 +879,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var canvasDiv = document.getElementById('canvasDiv'); var verticalScrollPosition = canvasDiv.scrollTop; var horizontlScrollPosition = canvasDiv.scrollLeft; - + var distanceXOnMirrorImage = (parseInt(mirrorCanvasX) + parseInt(mirrorCanvasWidth)) - (parseInt(mousePos.x) + horizontlScrollPosition);// - 135); var mirrorXOnNormalImage = parseInt(maskCanvasContext.canvas.offsetLeft) + parseInt(distanceXOnMirrorImage); @@ -934,7 +938,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var termNumber = parseInt(TermList[i]._TermNumber); //Match Term No List in each bodyRegion - $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); + $scope.getLocationsForMatchedTermsInWholeBody(termNumber); } } @@ -943,10 +947,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo if ($('#speechBubbleTrns').length > 0) $('#speechBubbleTrns').remove(); - - if ($scope.multiAnnotationIsON == true) - { - + + if ($scope.multiAnnotationIsON == true) { + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } @@ -954,11 +957,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo if ($('#speechBubble').length > 0) { $('#speechBubble').remove(); - + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } else { - + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } @@ -1010,10 +1013,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } - + $scope.DrawImage = function (h, w, x, y, src, bodyRegionId, isMaskImage) { - var imgCanvas = document.createElement('canvas'); + var imgCanvas = document.createElement('canvas'); // imgCanvas.style.backgroundColor = 'red'; imgCanvas.height = h; imgCanvas.width = w; @@ -1050,12 +1053,10 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } imgCanvas.addEventListener('click', function (evt) { - if (evt.ctrlKey) - { + if (evt.ctrlKey) { $scope.multiAnnotationIsON = true; } - else - { + else { $scope.multiAnnotationIsON = false; } @@ -1079,7 +1080,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo // var mousePos = $scope.getMousePos1(evt); //} //else - var mousePos = $scope.getMousePos(evt); + var mousePos = $scope.getMousePos(evt); // alert(mousePos.x + ',' + mousePos.y); var canvasDiv = document.getElementById('canvasDiv'); @@ -1091,15 +1092,13 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var actulalX = mousePos.x + horizontlScrollPosition; var actualY = mousePos.y + verticalScrollPosition; - //debugger; + + var RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, x, y); - if ($rootScope.isHighLight) - { - if ($scope.machedBodyRegion.length > 0) - { - if ($scope.multiAnnotationIsON == false) - { + if ($rootScope.isHighLight) { + if ($scope.machedBodyRegion.length > 0) { + if ($scope.multiAnnotationIsON == false) { for (var i = 0; i < $scope.machedBodyRegion.length; i++) { var bodyRegionId = $scope.machedBodyRegion[i]; @@ -1112,53 +1111,64 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo grayCanvasContext.putImageData(grayImageData, 0, 0) - } + } } + } - var ActualTermNo = $scope.getActualTermNumber(RGBColor); - //alert('actual term no: ' + ActualTermNo); + // var IcolorWithCordinate = new Object; + var previousIcolor = RGBColor; + //var previousX; + // var previousY; - //3. Find Term No List Based on ActualTermNo - var TermList = $scope.getTermNumberList(ActualTermNo); - // alert('termList.count: ' + TermList.length); + //IcolorWithCordinate.previousIcolor= RGBColor; + // IcolorWithCordinate.previousX = x; + // IcolorWithCordinate.previousY = y; - //4. + $scope.previousSelectedTermList.push(previousIcolor); - $scope.machedTermNoLocation = []; - for (var i = 0; i < TermList.length; i++) { + $scope.highLightBodyBasedOnIcolor(RGBColor); - var termNumber = parseInt(TermList[i]._TermNumber); + //var ActualTermNo = $scope.getActualTermNumber(RGBColor); + ////3. Find Term No List Based on ActualTermNo + //var TermList = $scope.getTermNumberList(ActualTermNo); + //// alert('termList.count: ' + TermList.length); - //Match Term No List in each bodyRegion - $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); - } + ////4. - } + //$scope.machedTermNoLocation = []; + //for (var i = 0; i < TermList.length; i++) { - else - { + // var termNumber = parseInt(TermList[i]._TermNumber); + + // //Match Term No List in each bodyRegion + // $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); + //} + + } - //2. Find Actul Term No Based on Icolor. - var ActualTermNo = $scope.getActualTermNumber(RGBColor); - //alert('actual term no: ' + ActualTermNo); + else { + $scope.highLightBodyBasedOnIcolor(RGBColor); - //3. Find Term No List Based on ActualTermNo - var TermList = $scope.getTermNumberList(ActualTermNo); - // alert('termList.count: ' + TermList.length); + ////2. Find Actul Term No Based on Icolor. + //var ActualTermNo = $scope.getActualTermNumber(RGBColor); - //4. + ////3. Find Term No List Based on ActualTermNo + //var TermList = $scope.getTermNumberList(ActualTermNo); - $scope.machedTermNoLocation = []; - for (var i = 0; i < TermList.length; i++) { - var termNumber = parseInt(TermList[i]._TermNumber); + ////4. - //Match Term No List in each bodyRegion - $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); - } - } + //$scope.machedTermNoLocation = []; + //for (var i = 0; i < TermList.length; i++) { + + // var termNumber = parseInt(TermList[i]._TermNumber); + + // //Match Term No List in each bodyRegion + // $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); + //} } - + + //Modesty ON @@ -1195,7 +1205,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo $('#speechBubbleTrns').remove(); if ($scope.multiAnnotationIsON == true) { - + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } @@ -1203,18 +1213,18 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo if ($('#speechBubble').length > 0) { $('#speechBubble').remove(); - + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } else { - + $scope.createDynamicSpeechBubble(evt, annotationText, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top); } } - },false); - + }, false); + var PI = Math.PI; var PI2 = PI * 2; var cw, ch, imgW, imgH, mouseX, mouseY; @@ -1225,21 +1235,40 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo img.onload = start; img.src = src; - + function start() { // debugger; context.drawImage(img, 0, 0); }; - + document.getElementById('canvasDiv').appendChild(imgCanvas); } - $scope.getLocationsForMatchedTermsInWholeBody = function (termNo, x, y) - { - - for (var x = 0; x < $scope.ColoredImageSRC.length; x++) - { + $scope.highLightBodyBasedOnIcolor = function (RGBColor) { + + //2. Find Actul Term No Based on Icolor. + var ActualTermNo = $scope.getActualTermNumber(RGBColor); + + //3. Find Term No List Based on ActualTermNo + var TermList = $scope.getTermNumberList(ActualTermNo); + + + //4. + + $scope.machedTermNoLocation = []; + for (var i = 0; i < TermList.length; i++) { + + var termNumber = parseInt(TermList[i]._TermNumber); + + //Match Term No List in each bodyRegion + $scope.getLocationsForMatchedTermsInWholeBody(termNumber); + } + } + + $scope.getLocationsForMatchedTermsInWholeBody = function (termNo) { + + for (var x = 0; x < $scope.ColoredImageSRC.length; x++) { // alert('called for bodyRegionId: ' + $scope.MaskImageSRC[x].bodyRegionId); var bodyRegionId = $scope.ColoredImageSRC[x].bodyRegionId; @@ -1251,7 +1280,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var coloredImg = $scope.ColoredImageSRC[x].SRC; - var maskImg = $scope.GetMaskImageSource(coloredImg); + var maskImg = $scope.GetMaskImageSource(coloredImg); var scledX = $scope.ColoredImageSRC[x].x; @@ -1269,20 +1298,20 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } var maskCanvas = document.getElementById(maskCanvasID); var maskCanvasContext = maskCanvas.getContext("2d"); + debugger; var maskImgData = maskCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); // 2. get coloured canvas for this body region. - + var coloredImageDataVar; var coloredImageDataMRVar if ($scope.ColoredImageSRC[x].haveMirror == 'true') { - coloredImageDataVar = $rootScope.coloredImageMRCanvasList[parseInt(bodyRegionId)]; + coloredImageDataVar = $rootScope.coloredImageMRCanvasList[parseInt(bodyRegionId)]; } - else - { + else { coloredImageDataVar = $rootScope.coloredImageCanvasList[parseInt(bodyRegionId - 1)]; } var grayImageDataVar; @@ -1291,16 +1320,15 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo //// 3. get mask canvas for this body region._MR var grayCanvasID = 'imageCanvas' + bodyRegionId + '_MR'; - grayCanvas = document.getElementById(grayCanvasID); + grayCanvas = document.getElementById(grayCanvasID); var grayCanvasContext = grayCanvas.getContext("2d"); var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); - grayImageDataVar = grayImageData.data; + grayImageDataVar = grayImageData.data; } - else - { + else { var grayCanvasID = 'imageCanvas' + bodyRegionId; - grayCanvas = document.getElementById(grayCanvasID); + grayCanvas = document.getElementById(grayCanvasID); var grayCanvasContext = grayCanvas.getContext("2d"); var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); grayImageDataVar = grayImageData.data; @@ -1309,16 +1337,16 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var coloredImageDataVarMR; var coloredImageDataMR - + var counter = 0; var imageDataVar = maskImgData.data; - // var p unhighlight reviousBRID; - + // var previousBRID; + var counter = 0; - - + + var n = maskImgData.data.length; for (var i = 0; i < n; i += 4) { @@ -1355,28 +1383,26 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } var Icolor = (Red + Green + Blue); - + // alert('Icolor: ' + Icolor) if (parseInt(termNo) == parseInt(Icolor)) { + counter++; - console.log('matched') var have = $scope.machedBodyRegion.indexOf(bodyRegionId); - if (have == -1) - { + if (have == -1) { $scope.machedBodyRegion.push(bodyRegionId); } - else - { - + else { + } - + //previousGrayColoredData = i; if (coloredImageDataVar != null) { - + var RED_coloredImage = coloredImageDataVar[i]; grayImageDataVar[i] = RED_coloredImage; @@ -1392,7 +1418,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var ALPHA_coloredImage = coloredImageDataVar[i + 3]; grayImageDataVar[i + 3] = ALPHA_coloredImage; - + } } @@ -1498,7 +1524,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo //layer change function $scope.LayerChange = function () { - // alert('layer chnage') + // alert('layer chnage') var canvasDiv = document.getElementById('canvasDiv'); $scope.imageVerticalScrollPosition = canvasDiv.scrollTop; @@ -1564,7 +1590,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo // alert(' $.each(BodyRegionDictionary3. bodyRegionRight: ' + bodyRegionRight + ', bodyRegionBottom: ' + bodyRegionBottom) if (TransparencyBoxStartX <= bodyRegionRight && value.X <= transparencyBoxRight && TransparencyBoxStartY <= bodyRegionBottom && value.Y <= transparencyBoxBottom) { //var transNumber = parseInt(document.getElementById("txtTransparencyChange").value); - // debugger; + // debugger; $scope.layerNumber = parseInt(txtlayerNumber.value); @@ -1599,9 +1625,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo $('#btnHighLight').removeClass('btn btn-black'); $('#btnHighLight').addClass('btn-primary'); - + $timeout(function () { $scope.highLightBody() }, 350); + + } } @@ -1615,7 +1643,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo //alert('Disabled wait cursor is done.See val :' + $rootScope.isLoading); } - + $scope.changeLayer = function () { console.log('changeLayer'); // alert('slide') @@ -1638,16 +1666,15 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } } - $scope.createDynamicSpeechBubble= function (event, text, x, y) - { + $scope.createDynamicSpeechBubble = function (event, text, x, y) { if (event.ctrlKey) { $scope.multiAnnotationIsON = true; - + $scope.i = $scope.i + 1; - // var a = $("#sppeachBubble").find('span').html(); - // alert(a); + // var a = $("#sppeachBubble").find('span').html(); + // alert(a); var sub_id = "black" + $scope.i; $("#canvasDiv").append("
" + text + "
"); @@ -1678,8 +1705,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo $('.dynCross').on('click', function (evt) { $(this).parent().parent().parent().css('display', 'none'); - // $("#bord").css("display", "none"); - // $("#dot").css("display", "none"); + // $("#bord").css("display", "none"); + // $("#dot").css("display", "none"); }); @@ -1688,22 +1715,21 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } - else - { + else { $scope.multiAnnotationIsON = false; $(".com").css("display", "none"); $("#bord").css({ "width": "0px", "display": "none" }); $('' - + '