org.symbian.tools.wrttools/projecttemplates/WRTKit/UI/Control.js
changeset 309 c01f5ab28a11
parent 308 c521df56b15d
child 310 e9484be98cfe
--- a/org.symbian.tools.wrttools/projecttemplates/WRTKit/UI/Control.js	Thu Apr 15 16:00:54 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/**
- * Copyright (c) 2009-2010 Symbian Foundation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the License "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- * 
- * Contributors:
- * 
- * Description:
- * 
- */
-
-///////////////////////////////////////////////////////////////////////////////
-// The Control class is an abstract base class for all user interface controls.
-
-// Constructor.
-function Control(id, caption) {
-    if (id != UI_NO_INIT_ID) {
-        this.init(id, caption);
-    }
-}
-
-// Control inherits from UIElement.
-Control.prototype = new UIElement(UI_NO_INIT_ID);
-
-// The view that control belongs to.
-Control.prototype.view = null;
-
-// Is the control focused?
-Control.prototype.focused = false;
-
-// Is the pointer over this control?
-Control.prototype.hovering = false;
-
-// The element hierarchy in a control is as follows:
-//
-// rootElement
-//     assemblyElement
-//         captionElement
-//         controlElement
-//
-// The assembly element groups the portion of a control that typically handle
-// the visual effects for focus and hover states. Having a separate root and
-// assembly elements allows other elements to be added to a control without
-// them being affected by the CSS rules of the assembly element.
-
-// The assembly element of this control.
-Control.prototype.assemblyElement = null;
-
-// The caption of this control; null if none.
-Control.prototype.caption = null;
-
-// The caption element of this control.
-Control.prototype.captionElement = null;
-
-// The control element of this control.
-Control.prototype.controlElement = null;
-
-// Initializer - called from constructor.
-Control.prototype.init = function(id, caption) {
-    uiLogger.debug("Control.init(" + id + ", " + caption + ")");
-    
-    // call superclass initializer
-    UIElement.prototype.init.call(this, id);
-    
-    // create assembly, caption and control elements
-    this.assemblyElement = document.createElement("div");
-    this.captionElement = document.createElement("div");
-    this.assemblyElement.appendChild(this.captionElement);
-    this.controlElement = document.createElement("div");
-    this.assemblyElement.appendChild(this.controlElement);
-    this.rootElement.appendChild(this.assemblyElement);
-    
-    // set the caption
-    // style is not updated because the subclass will update the style later
-    // when it has completely initialized the component
-    this.setCaption(caption, true);
-};
-
-// Returns the caption; null if none.
-Control.prototype.getCaption = function() {
-    return this.caption;
-};
-
-// Sets the caption; null if none.
-Control.prototype.setCaption = function(caption, noStyleUpdate) {
-    uiLogger.debug("Control.setCaption(" + caption + ")");
-    
-    // set the display style
-    this.captionElement.style.display = (caption == null) ? "none" : "block";
-    
-    // set the caption
-    this.caption = caption;
-    this.captionElement.innerHTML = (caption == null) ? "" : caption;
-    
-    // update style
-    if (!noStyleUpdate) {
-        this.updateStyleFromState();
-    }
-};
-
-// Returns the enabled state.
-// Override this in subclasses as required to implement the state change.
-Control.prototype.isEnabled = function() {
-    return false;
-};
-
-// Sets the enabled state.
-// Override this in subclasses as required to implement the state change.
-Control.prototype.setEnabled = function(enabled) {
-    uiLogger.debug("Control.setEnabled(" + enabled + ")");
-};
-
-// Returns the focusable state for the control.
-// Defaults focusable if enabled - override this in subclasses as required.
-Control.prototype.isFocusable = function() {
-    return this.isEnabled();
-};
-
-// Returns the focused state for the control.
-Control.prototype.isFocused = function() {
-    return this.focused;
-};
-
-// Sets the focused state for the control.
-// Note: This may not always succeed.
-// Override this in subclasses as required to implement the state change.
-Control.prototype.setFocused = function(focused) {
-    uiLogger.debug("Control.setFocused(" + focused + ")");
-    // note that this.focused gets set as a result of focusStateChanged() being called
-    // rather than setting it explicitly here
-};
-
-// Called when the focus state has changed for this control.
-Control.prototype.focusStateChanged = function(focused) {
-    uiLogger.debug("Control.focusStateChanged(" + focused + ")");
-    if (this.focused != focused) {
-        this.focused = focused;
-        
-        // let the view know about the focus change
-        if (this.view != null) {
-            this.view.focusedControlChanged(focused ? this : null);
-        }
-        
-        // update the style from the current state
-        this.updateStyleFromState();
-        
-        // notify event listeners
-        this.fireEvent(this.createEvent("FocusStateChanged", focused));
-    }
-};
-
-// Called when the hover state has changed for this control.
-Control.prototype.hoverStateChanged = function(hovering) {
-    uiLogger.debug("Control.hoverStateChanged(" + hovering + ")");
-    if (this.hovering != hovering) {
-        this.hovering = hovering;
-        
-        // update the style from the current state
-        this.updateStyleFromState();
-        
-        // notify event listeners
-        this.fireEvent(this.createEvent("HoverStateChanged", hovering));
-    }
-};
-
-// Helper method that returns the state name for the current state.
-Control.prototype.getStyleStateName = function() {
-    var focusable = this.isFocusable();
-    if (focusable && this.focused) {
-        return "Focus";
-    } else if (focusable && this.hovering) {
-        return "Hover";
-    } else if (!this.isEnabled()) {
-        return "Disabled";
-    } else {
-        return "Normal";
-    }
-};
-
-// Resets the state tracking for focus and hover.
-// Override this in subclasses as required to implement the state reset.
-Control.prototype.resetFocusState = function() {
-    uiLogger.debug("Control.resetFocusState()");
-    this.hovering = false;
-    this.focused = false;
-    this.updateStyleFromState();
-};
-
-// Helper function that sets a classname for an element.
-// Only sets the class name if it actually is different from the current value.
-Control.prototype.setClassName = function(element, className) {
-    if (element.className != className) {
-        element.className = className;
-    }
-};
-
-// Updates the style of the control to reflects the state of the control.
-// Override this in subclasses as required to implement the state change.
-Control.prototype.updateStyleFromState = function() {
-    uiLogger.debug("Control.updateStyleFromState()");
-};