Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
-Die Zeichenfolge muss exakt mit einer ID übereinstimmen,
-mit der eine Enum-Konstante in dieser Klasse deklariert wird.
-(Zusätzliche Leerzeichen sind nicht zulässig.)
-
-
Parameter:
-
name - Name der zurückzugebenden Enumerationskonstante.
-
Gibt zurück:
-
Enumerationskonstante mit dem angegebenen Namen
-
Löst aus:
-
IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
-Die Zeichenfolge muss exakt mit einer ID übereinstimmen,
-mit der eine Enum-Konstante in dieser Klasse deklariert wird.
-(Zusätzliche Leerzeichen sind nicht zulässig.)
-
-
Parameter:
-
name - Name der zurückzugebenden Enumerationskonstante.
-
Gibt zurück:
-
Enumerationskonstante mit dem angegebenen Namen
-
Löst aus:
-
IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
Start Methode
- Standartdmäßig wird der GUI Modus gestartet
-
-
Parameter:
-
args -
- Kein Parameter: wie gui
- help: Zeigt die Hilfe
- changelog cmd: Zeigt den Changelog der Terminal Version an.
- changelog game: Zeigt den Changelog des Spieles an.
- changelog gui: Zeigt den Changelog der Gui.
- cmd: Startet PoinsAndDoors im Terminal Modus.
- gui: Startet PoinsAndDoors im GUI Modus.
-Ausgehend von der Seite Überblick können Sie die Dokumentation mithilfe der Links durchsuchen, die sich auf jeder Seite und in der Navigationsleiste oben auf jeder Seite befinden. Mit Index und dem Suchfeld können Sie zu spezifischen Deklarationen und Übersichtsseiten navigieren, wie Alle Packages, Alle Klassen und Schnittstellen
-
-
Suchen
-
Sie können nach Definitionen von Modulen, Packages, Typen, Feldern, Methoden, Systemeigenschaften und anderen Ausdrücken suchen, die in der API definiert sind. Dazu können Sie denn Namen ganz oder teilweise oder optional auch Abkürzungen mit Binnenmajuskeln ("camelCase") eingeben. Beispiel:
-
-
"j.l.obj" findet "java.lang.Object"
-
"InpStr" findet "java.io.InputStream"
-
"math exact long" findet "java.lang.Math.absExact(long)"
-Die folgenden Abschnitte beschreiben die verschiedenen Seitenarten in dieser Collection.
-
-
Package
-
Für jedes Package ist eine Seite vorhanden, die eine Liste der Klassen und Schnittstellen mit jeweils einer Übersicht dafür enthält. Diese Seiten können die folgenden Kategorien enthalten:
-
-
Schnittstellen
-
Klassen
-
Enum-Klassen
-
Ausnahmeklassen
-
Annotationsschnittstellen
-
-
-
-
Klasse oder Schnittstelle
-
Für jede Klasse, Schnittstelle, verschachtelte Klasse und verschachtelte Schnittstelle ist eine separate Seite vorhanden. Jede dieser Seiten enthält drei Abschnitte, die aus einer Deklaration und Beschreibung, Mitgliederübersichtstabellen und detaillierten Mitgliederbeschreibungen bestehen. Die Einträge in diesen Abschnitten werden weggelassen, wenn sie leer oder nicht anwendbar sind.
-
-
Klassenvererbungsdiagramm
-
Direkte Unterklassen
-
Alle bekannten Unterschnittstellen
-
Alle bekannten Implementierungsklassen
-
Klassen- oder Schnittstellendeklaration
-
Klassen- oder Schnittstellenbeschreibung
-
-
-
-
Verschachtelte Klassen - Übersicht
-
Enum-Konstanten - Übersicht
-
Feldübersicht
-
Eigenschaftsübersicht
-
Konstruktorübersicht
-
Methodenübersicht
-
Erforderliche Elemente - Übersicht
-
Optionale Elemente - Übersicht
-
-
-
-
Enum-Konstanten - Details
-
Felddetails
-
Eigenschaftsdetails
-
Konstruktordetails
-
Methodendetails
-
Elementdetails
-
-
Hinweis: Annotationsschnittstellen haben erforderliche und optionale Elemente, aber nicht Methoden. Nur Enum-Klassen haben Enum-Konstanten. Die Komponenten einer Datensatzklasse werden als Teil der Deklaration der Datensatzklasse angezeigt. Eigenschaften sind ein Feature von JavaFX.
-
Die Übersichtseinträge sind alphabetisch geordnet, während die detaillierten Beschreibungen in der Reihenfolge aufgeführt werden, in der sie im Quellcode auftreten. So werden die vom Programmierer festgelegten logischen Gruppierungen beibehalten.
-
-
-
Weitere Dateien
-
Packages und Module können Seiten mit weiteren Informationen zu den Deklarationen in der Nähe enthalten.
-
-
-
Verwendung
-
Für jedes dokumentierte Package sowie jede Klasse und jede Schnittstelle ist eine eigene Verwendungsseite vorhanden. Auf dieser Seite wird beschrieben, welche Packages, Klassen, Methoden, Konstruktoren und Felder einen Teil der angegebenen Klasse oder des angegebenen Packages verwenden. Bei der Klasse oder Schnittstelle A enthält die Verwendungsseite die Unterklassen von A, als A deklarierte Felder, Methoden, die A zurückgeben, sowie Methoden und Konstruktoren mit Parametern des Typs A. Sie können diese Seite aufrufen, indem Sie zunächst das Package, die Klasse oder die Schnittstelle aufrufen und anschließend in der Navigationsleiste auf den Link "Verwendung" klicken.
-
-
-
Baum (Klassenhierarchie)
-
Es gibt eine Seite Klassenhierarchie für alle Packages, und für jedes Package gibt es eine Hierarchie. Jede Hierarchieseite enthält eine Klassen- und eine Schnittstellenliste. Die Klassen sind nach Vererbungsstruktur organisiert, beginnend mit java.lang.Object. Die Schnittstellen erben nicht von java.lang.Object.
-
-
Wenn Sie auf der Übersichtsseite auf "Baum" klicken, wird die Hierarchie für alle Packages angezeigt.
-
Wenn Sie eine bestimmte Package-, Klassen- oder Schnittstellenseite anzeigen und auf "Baum" klicken, wird die Hierarchie nur für dieses Package angezeigt.
-
-
-
-
Serialisierte Form
-
Jede serialisierbare oder externalisierbare Klasse verfügt über eine Beschreibung der zugehörigen Serialisierungsfelder und -methoden. Diese Informationen sind eher für Implementierer als für Benutzer der API von Interesse. Die Navigationsleiste enthält zwar keinen Link, Sie können diese Informationen jedoch abrufen, indem Sie zu einer beliebigen serialisierten Klasse navigieren und im Abschnitt "Siehe auch" der Klassenbeschreibung auf "Serialisierte Form" klicken.
-
-
-
Alle Packages
-
Die Seite Alle Packages enthält einen alphabetischen Index aller Packages, die in der Dokumentation enthalten sind.
-
-
-
Alle Klassen und Schnittstellen
-
Die Seite Alle Klassen und Schnittstellen enthält einen alphabetischen Index aller Klassen und Schnittstellen in der Dokumentation, einschließlich Annotationsschnittstellen, Enum-Klassen und Datensatzklassen.
-
-
-
Index
-
Die Index enthält einen alphabetischen Index aller Klassen, Schnittstellen, Konstruktoren, Methoden und Felder in der Dokumentation sowie Übersichtsseiten wie Alle Packages, Alle Klassen und Schnittstellen.
-
-
-
-Diese Hilfedatei gilt für die vom Standard-Doclet generierte API-Dokumentation.
-
-
-
-
diff --git a/PointsAndDoors/doc/jquery-ui.overrides.css b/PointsAndDoors/doc/jquery-ui.overrides.css
deleted file mode 100644
index 03c010b..0000000
--- a/PointsAndDoors/doc/jquery-ui.overrides.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active,
-a.ui-button:active,
-.ui-button:active,
-.ui-button.ui-state-active:hover {
- /* Overrides the color of selection used in jQuery UI */
- background: #F8981D;
- border: 1px solid #F8981D;
-}
diff --git a/PointsAndDoors/doc/legal/COPYRIGHT b/PointsAndDoors/doc/legal/COPYRIGHT
deleted file mode 100644
index ca74fff..0000000
--- a/PointsAndDoors/doc/legal/COPYRIGHT
+++ /dev/null
@@ -1 +0,0 @@
-Please see ..\java.base\COPYRIGHT
diff --git a/PointsAndDoors/doc/legal/LICENSE b/PointsAndDoors/doc/legal/LICENSE
deleted file mode 100644
index 4ad9fe4..0000000
--- a/PointsAndDoors/doc/legal/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-Please see ..\java.base\LICENSE
diff --git a/PointsAndDoors/doc/legal/jquery.md b/PointsAndDoors/doc/legal/jquery.md
deleted file mode 100644
index f7b72e3..0000000
--- a/PointsAndDoors/doc/legal/jquery.md
+++ /dev/null
@@ -1,72 +0,0 @@
-## jQuery v3.6.0
-
-### jQuery License
-```
-jQuery v 3.6.0
-Copyright OpenJS Foundation and other contributors, https://openjsf.org/
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************
-
-The jQuery JavaScript Library v3.6.0 also includes Sizzle.js
-
-Sizzle.js includes the following license:
-
-Copyright JS Foundation and other contributors, https://js.foundation/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/jquery/sizzle
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-All files located in the node_modules and external directories are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.
-
-*********************
-
-```
diff --git a/PointsAndDoors/doc/legal/jqueryUI.md b/PointsAndDoors/doc/legal/jqueryUI.md
deleted file mode 100644
index 9f4c9e9..0000000
--- a/PointsAndDoors/doc/legal/jqueryUI.md
+++ /dev/null
@@ -1,49 +0,0 @@
-## jQuery UI v1.13.1
-
-### jQuery UI License
-```
-Copyright jQuery Foundation and other contributors, https://jquery.org/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/jquery/jquery-ui
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-Copyright and related rights for sample code are waived via CC0. Sample
-code is defined as all source code contained within the demos directory.
-
-CC0: http://creativecommons.org/publicdomain/zero/1.0/
-
-====
-
-All files located in the node_modules and external directories are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.
-
-```
diff --git a/PointsAndDoors/doc/member-search-index.js b/PointsAndDoors/doc/member-search-index.js
deleted file mode 100644
index 7061339..0000000
--- a/PointsAndDoors/doc/member-search-index.js
+++ /dev/null
@@ -1 +0,0 @@
-memberSearchIndex = [{"p":"de.adiko01.PointsAndDoors","c":"Changelog","l":"Changelog()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"Door"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"Enemy"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"EnemyWins"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"ERROR"},{"p":"de.adiko01.PointsAndDoors","c":"Konstanten","l":"getCHANGELOG_GAME()"},{"p":"de.adiko01.PointsAndDoors","c":"Konstanten","l":"getCHANGELOG_GUI()"},{"p":"de.adiko01.PointsAndDoors","c":"Konstanten","l":"getCHANGELOG_TERMINAL()"},{"p":"de.adiko01.PointsAndDoors","c":"Konstanten","l":"getHELP()"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"getPoint(GameObjects)","u":"getPoint(de.adiko01.PointsAndDoors.GameObjects)"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"getPos(GameObjects)","u":"getPos(de.adiko01.PointsAndDoors.GameObjects)"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"getStatus()"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"getTask()"},{"p":"de.adiko01.PointsAndDoors","c":"GUI_Anleitung","l":"GUI_Anleitung()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"IllegalMoveException","l":"IllegalMoveException()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"IllegalMoveException","l":"IllegalMoveException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"de.adiko01.PointsAndDoors","c":"IllegalMoveException","l":"IllegalMoveException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"de.adiko01.PointsAndDoors","c":"IllegalMoveException","l":"IllegalMoveException(String, Throwable, boolean, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,boolean,boolean)"},{"p":"de.adiko01.PointsAndDoors","c":"IllegalMoveException","l":"IllegalMoveException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"de.adiko01.PointsAndDoors","c":"Konstanten","l":"Konstanten()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"Changelog","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"de.adiko01.PointsAndDoors","c":"GUI_Anleitung","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"de.adiko01.PointsAndDoors","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoorsGUI","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoorsTerminal","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"Money"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"moneyFound()"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoors","l":"movePlayer(char)"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"Player"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"PlayerWins"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoorsGUI","l":"PointsAndDoorsGUI()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"PointsAndDoorsTerminal","l":"PointsAndDoorsTerminal()","u":"%3Cinit%3E()"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"RUN"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.adiko01.PointsAndDoors","c":"GameObjects","l":"values()"},{"p":"de.adiko01.PointsAndDoors","c":"GameStatus","l":"values()"}];updateSearchResults();
\ No newline at end of file
diff --git a/PointsAndDoors/doc/module-search-index.js b/PointsAndDoors/doc/module-search-index.js
deleted file mode 100644
index 0d59754..0000000
--- a/PointsAndDoors/doc/module-search-index.js
+++ /dev/null
@@ -1 +0,0 @@
-moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/PointsAndDoors/doc/overview-tree.html b/PointsAndDoors/doc/overview-tree.html
deleted file mode 100644
index e5ecbdd..0000000
--- a/PointsAndDoors/doc/overview-tree.html
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-Klassenhierarchie
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
The help page provides an introduction to the scope and syntax of JavaDoc search.
-
You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.
-
The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.
-link
-
-
-
-
-
Suchindex wird geladen...
-
-
-
-
-
-
-
-
-
diff --git a/PointsAndDoors/doc/search.js b/PointsAndDoors/doc/search.js
deleted file mode 100644
index 9814fed..0000000
--- a/PointsAndDoors/doc/search.js
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-"use strict";
-const messages = {
- enterTerm: "Enter a search term",
- noResult: "Keine Ergebnisse gefunden",
- oneResult: "Found one result",
- manyResults: "Found {0} results",
- loading: "Suchindex wird geladen...",
- searching: "Searching...",
- redirecting: "Redirecting to first result...",
- copyUrl: "Copy URL",
- urlCopied: "Copied!"
-}
-const categories = {
- modules: "Module",
- packages: "Packages",
- types: "Klassen und Schnittstellen",
- members: "Mitglieder",
- searchTags: "Tags suchen"
-};
-const highlight = "$&";
-const NO_MATCH = {};
-const MAX_RESULTS = 500;
-function checkUnnamed(name, separator) {
- return name === "" || !name ? "" : name + separator;
-}
-function escapeHtml(str) {
- return str.replace(//g, ">");
-}
-function getHighlightedText(str, boundaries, from, to) {
- var start = from;
- var text = "";
- for (var i = 0; i < boundaries.length; i += 2) {
- var b0 = boundaries[i];
- var b1 = boundaries[i + 1];
- if (b0 >= to || b1 <= from) {
- continue;
- }
- text += escapeHtml(str.slice(start, Math.max(start, b0)));
- text += "";
- text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
- text += "";
- start = Math.min(to, b1);
- }
- text += escapeHtml(str.slice(start, to));
- return text;
-}
-function getURLPrefix(item, category) {
- var urlPrefix = "";
- var slash = "/";
- if (category === "modules") {
- return item.l + slash;
- } else if (category === "packages" && item.m) {
- return item.m + slash;
- } else if (category === "types" || category === "members") {
- if (item.m) {
- urlPrefix = item.m + slash;
- } else {
- $.each(packageSearchIndex, function(index, it) {
- if (it.m && item.p === it.l) {
- urlPrefix = it.m + slash;
- }
- });
- }
- }
- return urlPrefix;
-}
-function getURL(item, category) {
- if (item.url) {
- return item.url;
- }
- var url = getURLPrefix(item, category);
- if (category === "modules") {
- url += "module-summary.html";
- } else if (category === "packages") {
- if (item.u) {
- url = item.u;
- } else {
- url += item.l.replace(/\./g, '/') + "/package-summary.html";
- }
- } else if (category === "types") {
- if (item.u) {
- url = item.u;
- } else {
- url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
- }
- } else if (category === "members") {
- url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
- if (item.u) {
- url += item.u;
- } else {
- url += item.l;
- }
- } else if (category === "searchTags") {
- url += item.u;
- }
- item.url = url;
- return url;
-}
-function createMatcher(term, camelCase) {
- if (camelCase && !isUpperCase(term)) {
- return null; // no need for camel-case matcher for lower case query
- }
- var pattern = "";
- var upperCase = [];
- term.trim().split(/\s+/).forEach(function(w, index, array) {
- var tokens = w.split(/(?=[A-Z,.()<>?[\/])/);
- for (var i = 0; i < tokens.length; i++) {
- var s = tokens[i];
- // ',' and '?' are the only delimiters commonly followed by space in java signatures
- pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
- upperCase.push(false);
- var isWordToken = /\w$/.test(s);
- if (isWordToken) {
- if (i === tokens.length - 1 && index < array.length - 1) {
- // space in query string matches all delimiters
- pattern += "(.*?)";
- upperCase.push(isUpperCase(s[0]));
- } else {
- if (!camelCase && isUpperCase(s) && s.length === 1) {
- pattern += "()";
- } else {
- pattern += "([a-z0-9$<>?[\\]]*?)";
- }
- upperCase.push(isUpperCase(s[0]));
- }
- } else {
- pattern += "()";
- upperCase.push(false);
- }
- }
- });
- var re = new RegExp(pattern, "gi");
- re.upperCase = upperCase;
- return re;
-}
-function analyzeMatch(matcher, input, startOfName, category) {
- var from = startOfName;
- matcher.lastIndex = from;
- var match = matcher.exec(input);
- while (!match && from > 1) {
- from = input.lastIndexOf(".", from - 2) + 1;
- matcher.lastIndex = from;
- match = matcher.exec(input);
- }
- if (!match) {
- return NO_MATCH;
- }
- var boundaries = [];
- var matchEnd = match.index + match[0].length;
- var leftParen = input.indexOf("(");
- // exclude peripheral matches
- if (category !== "modules" && category !== "searchTags") {
- if (leftParen > -1 && leftParen < match.index) {
- return NO_MATCH;
- } else if (startOfName - 1 >= matchEnd) {
- return NO_MATCH;
- }
- }
- var endOfName = leftParen > -1 ? leftParen : input.length;
- var score = 5;
- var start = match.index;
- var prevEnd = -1;
- for (var i = 1; i < match.length; i += 2) {
- var isUpper = isUpperCase(input[start]);
- var isMatcherUpper = matcher.upperCase[i];
- // capturing groups come in pairs, match and non-match
- boundaries.push(start, start + match[i].length);
- // make sure groups are anchored on a left word boundary
- var prevChar = input[start - 1] || "";
- var nextChar = input[start + 1] || "";
- if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) {
- if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) {
- score -= 0.1;
- } else if (isMatcherUpper && start === prevEnd) {
- score -= isUpper ? 0.1 : 1.0;
- } else {
- return NO_MATCH;
- }
- }
- prevEnd = start + match[i].length;
- start += match[i].length + match[i + 1].length;
-
- // lower score for parts of the name that are missing
- if (match[i + 1] && prevEnd < endOfName) {
- score -= rateNoise(match[i + 1]);
- }
- }
- // lower score if a type name contains unmatched camel-case parts
- if (input[matchEnd - 1] !== "." && endOfName > matchEnd)
- score -= rateNoise(input.slice(matchEnd, endOfName));
- score -= rateNoise(input.slice(0, Math.max(startOfName, match.index)));
-
- if (score <= 0) {
- return NO_MATCH;
- }
- return {
- input: input,
- score: score,
- category: category,
- boundaries: boundaries
- };
-}
-function isUpperCase(s) {
- return s !== s.toLowerCase();
-}
-function isLowerCase(s) {
- return s !== s.toUpperCase();
-}
-function rateNoise(str) {
- return (str.match(/([.(])/g) || []).length / 5
- + (str.match(/([A-Z]+)/g) || []).length / 10
- + str.length / 20;
-}
-function doSearch(request, response) {
- var term = request.term.trim();
- var maxResults = request.maxResults || MAX_RESULTS;
- if (term.length === 0) {
- return this.close();
- }
- var matcher = {
- plainMatcher: createMatcher(term, false),
- camelCaseMatcher: createMatcher(term, true)
- }
- var indexLoaded = indexFilesLoaded();
-
- function getPrefix(item, category) {
- switch (category) {
- case "packages":
- return checkUnnamed(item.m, "/");
- case "types":
- return checkUnnamed(item.p, ".");
- case "members":
- return checkUnnamed(item.p, ".") + item.c + ".";
- default:
- return "";
- }
- }
- function useQualifiedName(category) {
- switch (category) {
- case "packages":
- return /[\s/]/.test(term);
- case "types":
- case "members":
- return /[\s.]/.test(term);
- default:
- return false;
- }
- }
- function searchIndex(indexArray, category) {
- var matches = [];
- if (!indexArray) {
- if (!indexLoaded) {
- matches.push({ l: messages.loading, category: category });
- }
- return matches;
- }
- $.each(indexArray, function (i, item) {
- var prefix = getPrefix(item, category);
- var simpleName = item.l;
- var qualifiedName = prefix + simpleName;
- var useQualified = useQualifiedName(category);
- var input = useQualified ? qualifiedName : simpleName;
- var startOfName = useQualified ? prefix.length : 0;
- var m = analyzeMatch(matcher.plainMatcher, input, startOfName, category);
- if (m === NO_MATCH && matcher.camelCaseMatcher) {
- m = analyzeMatch(matcher.camelCaseMatcher, input, startOfName, category);
- }
- if (m !== NO_MATCH) {
- m.indexItem = item;
- m.prefix = prefix;
- if (!useQualified) {
- m.input = qualifiedName;
- m.boundaries = m.boundaries.map(function(b) {
- return b + prefix.length;
- });
- }
- matches.push(m);
- }
- return matches.length < maxResults;
- });
- return matches.sort(function(e1, e2) {
- return e2.score - e1.score;
- });
- }
-
- var result = searchIndex(moduleSearchIndex, "modules")
- .concat(searchIndex(packageSearchIndex, "packages"))
- .concat(searchIndex(typeSearchIndex, "types"))
- .concat(searchIndex(memberSearchIndex, "members"))
- .concat(searchIndex(tagSearchIndex, "searchTags"));
-
- if (!indexLoaded) {
- updateSearchResults = function() {
- doSearch(request, response);
- }
- } else {
- updateSearchResults = function() {};
- }
- response(result);
-}
-// JQuery search menu implementation
-$.widget("custom.catcomplete", $.ui.autocomplete, {
- _create: function() {
- this._super();
- this.widget().menu("option", "items", "> .result-item");
- // workaround for search result scrolling
- this.menu._scrollIntoView = function _scrollIntoView( item ) {
- var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
- if ( this._hasScroll() ) {
- borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
- paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
- offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
- scroll = this.activeMenu.scrollTop();
- elementHeight = this.activeMenu.height() - 26;
- itemHeight = item.outerHeight();
-
- if ( offset < 0 ) {
- this.activeMenu.scrollTop( scroll + offset );
- } else if ( offset + itemHeight > elementHeight ) {
- this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
- }
- }
- };
- },
- _renderMenu: function(ul, items) {
- var currentCategory = "";
- var widget = this;
- widget.menu.bindings = $();
- $.each(items, function(index, item) {
- if (item.category && item.category !== currentCategory) {
- ul.append("