Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/accessible/tests/mochitest/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  autocomplete.js   Sprache: JAVA

 
const nsISupports = Ci.nsISupports;
const nsIAutoCompleteResult = Ci.nsIAutoCompleteResult;
const nsIAutoCompleteSearch = Ci.nsIAutoCompleteSearch;
const nsIFactory = Ci.nsIFactory;
const nsIUUIDGenerator = Ci.nsIUUIDGenerator;
const nsIComponentRegistrar = Ci.nsIComponentRegistrar;

var gDefaultAutoCompleteSearch = null;

/**
 * Register 'test-a11y-search' AutoCompleteSearch.
 *
 * @param aValues [in] set of possible results values
 * @param aComments [in] set of possible results descriptions
 */

function initAutoComplete(aValues, aComments) {
  var allResults = new ResultsHeap(aValues, aComments);
  gDefaultAutoCompleteSearch = new AutoCompleteSearch(
    "test-a11y-search",
    allResults
  );
  registerAutoCompleteSearch(
    gDefaultAutoCompleteSearch,
    "Accessibility Test AutoCompleteSearch"
  );
}

/**
 * Unregister 'test-a11y-search' AutoCompleteSearch.
 */

function shutdownAutoComplete() {
  unregisterAutoCompleteSearch(gDefaultAutoCompleteSearch);
  gDefaultAutoCompleteSearch.cid = null;
  gDefaultAutoCompleteSearch = null;
}

/**
 * Register the given AutoCompleteSearch.
 *
 * @param aSearch       [in] AutoCompleteSearch object
 * @param aDescription  [in] description of the search object
 */

function registerAutoCompleteSearch(aSearch, aDescription) {
  var name = "@mozilla.org/autocomplete/search;1?name=" + aSearch.name;

  var uuidGenerator =
    Cc["@mozilla.org/uuid-generator;1"].getService(nsIUUIDGenerator);
  var cid = uuidGenerator.generateUUID();

  var componentManager = Components.manager.QueryInterface(
    nsIComponentRegistrar
  );
  componentManager.registerFactory(cid, aDescription, name, aSearch);

  // Keep the id on the object so we can unregister later.
  aSearch.cid = cid;
}

/**
 * Unregister the given AutoCompleteSearch.
 */

function unregisterAutoCompleteSearch(aSearch) {
  var componentManager = Components.manager.QueryInterface(
    nsIComponentRegistrar
  );
  componentManager.unregisterFactory(aSearch.cid, aSearch);
}

/**
 * A container to keep all possible results of autocomplete search.
 */

function ResultsHeap(aValues, aComments) {
  this.values = aValues;
  this.comments = aComments;
}

ResultsHeap.prototype = {
  constructor: ResultsHeap,

  /**
   * Return AutoCompleteResult for the given search string.
   */

  getAutoCompleteResultFor(aSearchString) {
    var values = [],
      comments = [];
    for (var idx = 0; idx < this.values.length; idx++) {
      if (this.values[idx].includes(aSearchString)) {
        values.push(this.values[idx]);
        comments.push(this.comments[idx]);
      }
    }
    return new AutoCompleteResult(values, comments);
  },
};

/**
 * nsIAutoCompleteSearch implementation.
 *
 * @param aName       [in] the name of autocomplete search
 * @param aAllResults [in] ResultsHeap object
 */

function AutoCompleteSearch(aName, aAllResults) {
  this.name = aName;
  this.allResults = aAllResults;
}

AutoCompleteSearch.prototype = {
  constructor: AutoCompleteSearch,

  // nsIAutoCompleteSearch implementation
  startSearch(aSearchString, aSearchParam, aPreviousResult, aListener) {
    var result = this.allResults.getAutoCompleteResultFor(aSearchString);
    aListener.onSearchResult(this, result);
  },

  stopSearch() {},

  // nsISupports implementation
  QueryInterface: ChromeUtils.generateQI([
    "nsIFactory",
    "nsIAutoCompleteSearch",
  ]),

  // nsIFactory implementation
  createInstance(iid) {
    return this.QueryInterface(iid);
  },

  // Search name. Used by AutoCompleteController.
  name: null,

  // Results heap.
  allResults: null,
};

/**
 * nsIAutoCompleteResult implementation.
 */

function AutoCompleteResult(aValues, aComments) {
  this.values = aValues;
  this.comments = aComments;

  if (this.values.length) {
    this.searchResult = nsIAutoCompleteResult.RESULT_SUCCESS;
  } else {
    this.searchResult = nsIAutoCompleteResult.NOMATCH;
  }
}

AutoCompleteResult.prototype = {
  constructor: AutoCompleteResult,

  searchString: "",
  searchResult: null,

  defaultIndex: 0,

  get matchCount() {
    return this.values.length;
  },

  getValueAt(aIndex) {
    return this.values[aIndex];
  },

  getLabelAt(aIndex) {
    return this.getValueAt(aIndex);
  },

  getCommentAt(aIndex) {
    return this.comments[aIndex];
  },

  getStyleAt() {
    return null;
  },

  getImageAt() {
    return "";
  },

  getFinalCompleteValueAt(aIndex) {
    return this.getValueAt(aIndex);
  },

  isRemovableAt() {
    return true;
  },

  removeValueAt() {},

  // nsISupports implementation
  QueryInterface: ChromeUtils.generateQI(["nsIAutoCompleteResult"]),

  // Data
  values: null,
  comments: null,
};

Messung V0.5
C=93 H=98 G=95

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.