See09/WRTKit/UI/TextPane.js
author ivanl
Thu, 22 Oct 2009 15:52:58 +0100
changeset 19 f3521a11d878
permissions -rw-r--r--
See 09 widget, version 1.0rc3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     1
// ////////////////////////////////////////////////////////////////////////////
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     2
// Symbian Foundation Example Code
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     3
//
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     4
// This software is in the public domain. No copyright is claimed, and you 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     5
// may use it for any purpose without license from the Symbian Foundation.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     6
// No warranty for any purpose is expressed or implied by the authors or
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     7
// the Symbian Foundation. 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     8
// ////////////////////////////////////////////////////////////////////////////
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     9
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    10
///////////////////////////////////////////////////////////////////////////////
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    11
// The TextPane class implements a control that displays HTML content.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    12
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    13
// Constructor.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    14
function TextPane(id, caption, text) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    15
    if (id != UI_NO_INIT_ID) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    16
        this.init(id, caption, text);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    17
    }
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    18
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    19
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    20
// TextPane inherits from Control.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    21
TextPane.prototype = new Control(UI_NO_INIT_ID);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    22
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    23
// Content element for TextPane text.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    24
TextPane.prototype.contentElement = null;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    25
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    26
// Initializer - called from constructor.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    27
TextPane.prototype.init = function(id, caption, text) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    28
    uiLogger.debug("TextPane.init(" + id + ", " + caption + ", " + text + ")");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    29
    
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    30
    // call superclass initializer
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    31
    Control.prototype.init.call(this, id, caption);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    32
    
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    33
    // create content element
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    34
    this.contentElement = document.createElement("div");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    35
    this.controlElement.appendChild(this.contentElement);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    36
    
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    37
    // set the text
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    38
    this.setText(text);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    39
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    40
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    41
// Returns the enabled state for the control.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    42
TextPane.prototype.isEnabled = function() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    43
    return true;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    44
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    45
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    46
// Returns the focusable state for the control.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    47
TextPane.prototype.isFocusable = function() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    48
    return false;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    49
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    50
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    51
// Returns the control text.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    52
TextPane.prototype.getText = function() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    53
    return this.contentElement.innerHTML;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    54
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    55
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    56
// Sets the text for the control.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    57
TextPane.prototype.setText = function(text) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    58
    uiLogger.debug("TextPane.setText(" + text + ")");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    59
    this.contentElement.innerHTML = (text == null) ? "" : text;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    60
    this.updateStyleFromState();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    61
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    62
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    63
// Updates the style of the control to reflects the state of the control.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    64
TextPane.prototype.updateStyleFromState = function() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    65
    uiLogger.debug("TextPane.updateStyleFromState()");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    66
    
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    67
    // set element class names
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    68
    this.setClassName(this.rootElement, "TextPane");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    69
//    this.setClassName(this.assemblyElement, "ControlAssembly ControlAssemblyNormal");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    70
//    this.setClassName(this.captionElement, "ControlCaption ControlCaptionNormal");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    71
//    this.setClassName(this.controlElement, "ControlElement");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    72
//    this.setClassName(this.contentElement, "TextPane");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    73
}