vegantech/sims

View on GitHub
app/assets/javascripts/spellerpages/controlWindow.js

Summary

Maintainability
D
2 days
Test Coverage
////////////////////////////////////////////////////
// controlWindow object
////////////////////////////////////////////////////
function controlWindow( controlForm ) {
    // private properties
    this._form = controlForm;

    // public properties
    this.windowType = "controlWindow";
    this.noSuggestionSelection = "- No suggestions -";
    // set up the properties for elements of the given control form
    this.suggestionList  = this._form.sugg;
    this.evaluatedText   = this._form.misword;
    this.replacementText = this._form.txtsugg;
    this.undoButton      = this._form.btnUndo;

    // public methods
    this.addSuggestion = addSuggestion;
    this.clearSuggestions = clearSuggestions;
    this.selectDefaultSuggestion = selectDefaultSuggestion;
    this.resetForm = resetForm;
    this.setSuggestedText = setSuggestedText;
    this.enableUndo = enableUndo;
    this.disableUndo = disableUndo;
}

function resetForm() {
    if( this._form ) {
        this._form.reset();
    }
}

function setSuggestedText() {
    var slct = this.suggestionList;
    var txt = this.replacementText;
    var str = "";
    if( (slct.options[0].text) && slct.options[0].text != this.noSuggestionSelection ) {
        str = slct.options[slct.selectedIndex].text;
    }
    txt.value = str;
}

function selectDefaultSuggestion() {
    var slct = this.suggestionList;
    var txt = this.replacementText;
    if( slct.options.length == 0 ) {
        this.addSuggestion( this.noSuggestionSelection );
    } else {
        slct.options[0].selected = true;
    }
    this.setSuggestedText();
}

function addSuggestion( sugg_text ) {
    var slct = this.suggestionList;
    if( sugg_text ) {
        var i = slct.options.length;
        var newOption = new Option( sugg_text, 'sugg_text'+i );
        slct.options[i] = newOption;
     }
}

function clearSuggestions() {
    var slct = this.suggestionList;
    for( var j = slct.length - 1; j > -1; j-- ) {
        if( slct.options[j] ) {
            slct.options[j] = null;
        }
    }
}

function enableUndo() {
    if( this.undoButton ) {
        if( this.undoButton.disabled == true ) {
            this.undoButton.disabled = false;
        }
    }
}

function disableUndo() {
    if( this.undoButton ) {
        if( this.undoButton.disabled == false ) {
            this.undoButton.disabled = true;
        }
    }
}