$scope.gotoAction = function()

in remoting/server/web/web.ui.frontend/public_html/index/ui/script.js [294:348]


    $scope.gotoAction = function ($event) {
        $scope.$parent.loading = true;
        var pos = $($event.target).attr("jpt30pos");
        var declaration = $($event.target).attr("class").indexOf("declaration") !== (-1);
        $http.get('/index/ui/target?path=' + path + '&relative=' + relative + '&position=' + pos).success(function(parsedData) {
            $scope.$parent.loading = false;
            if (declaration && "signature" in parsedData) {
                $location.url("/usages?signature=" + escape(parsedData.signature));
            } else if ("position" in parsedData) {
                setHash($location, "p" + parsedData.position);
            } else if ("source" in parsedData) {
                $location.hash("p" + pos);
                $location.replace();
                $location.url("/showCode?path=" + parsedData.path + "&relative=" + parsedData.source + "&goto=" + parsedData.signature);
            } else if ("targets" in parsedData) {
                var popupContent = "The target element is defined in the following files:<br>";
                popupContent += "<ul>";

                for (var i = 0; i < parsedData.targets.length; i++) {
                    var categoryData = parsedData.targets[i];
                    popupContent += "<li>" + categoryData.rootDisplayName/*XXX: escape*/ + "<br>";

                    for (var f = 0; f < categoryData.files.length; f++) {
                        popupContent += "<img src='/index/icons/javaFile.png' alt='Java File'/>";
                        popupContent += "<a href='#/showCode?path=" + categoryData.rootPath + "&relative=" + categoryData.files[i] + "&goto=" + parsedData.signature + "'>" + categoryData.files[i] + "</a><br>";
                    }

                    popupContent += "</li><br>";
                }

                popupContent += "</ul><br>";
                $('#popup').html(popupContent)
                                .dialog({
                                    title: 'Show',
                                    width: 800 //XXX: hardcoded size
                                });
            } else if ("menu" in parsedData) {
                var menuDef = parsedData.menu;
                var popupContent = "";
                for (var i = 0; i < menuDef.length; i++) {
                    var menuItem = menuDef[i];
                    popupContent += '<a href="' + menuItem.url + '">' + menuItem.displayName + '</a><br>';
                    $('#popup').html(popupContent)
                                    .dialog({
                                        title: 'Show',
                                        width: 800 //XXX: hardcoded size
                                    });
                }
            } else if ("signature" in parsedData) {
                alert("Cannot find source file for class: " + parsedData.signature.split(":")[1]);
            } else {
                alert("Cannot resolve target on this place");
            }
        });
    };