SourceForge: humaitrader/humaitrader: changeset 178:e92ec4dc0927
Use Any instead of "_" because of Manifest usage
authorCaoyuan Deng <dcaoyuan@gmail.com>
Wed Nov 04 03:26:31 2009 +0800 (3 weeks ago)
changeset 178e92ec4dc0927
parent 177ffd16ae4d1a1
child 179760f7b6cfb0c
Use Any instead of "_" because of Manifest usage
modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartValidityObserver.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartView.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartingControllerFactory.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/MouseCursorObserver.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/ReferCursorObserver.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisXPane.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisYPane.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/ChartPane.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/GlassPane.scala
modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/Pane.scala
modules/lib.charting/src/org/aiotrade/lib/charting/widget/AbstractWidget.scala
modules/lib.charting/src/org/aiotrade/lib/charting/widget/Widget.scala
modules/lib.indicator/src/org/aiotrade/lib/indicator/function/STOCHDFunction.scala
modules/lib.math/src/org/aiotrade/lib/math/StatisticFunction.scala
modules/lib.util/src/org/aiotrade/lib/util/ChangeObservable.scala
modules/lib.util/src/org/aiotrade/lib/util/ChangeObservableHelper.scala
modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/BIASIndicator.scala
modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/EMAIndicator.scala
modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/ROCIndicator.scala
     1.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartValidityObserver.scala	Wed Nov 04 01:43:13 2009 +0800
     1.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartValidityObserver.scala	Wed Nov 04 03:26:31 2009 +0800
     1.3 @@ -37,7 +37,7 @@
     1.4   * 
     1.5   * @author Caoyuan Deng
     1.6   */ 
     1.7 -trait ChartValidityObserver[S <: ChangeObservable] extends ChangeObserver[S] {
     1.8 +trait ChartValidityObserver[S] extends ChangeObserver[S] {
     1.9  }
    1.10  
    1.11  
     2.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartView.scala	Wed Nov 04 01:43:13 2009 +0800
     2.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartView.scala	Wed Nov 04 03:26:31 2009 +0800
     2.3 @@ -134,11 +134,11 @@
     2.4      /** @TODO should consider: in case of overlapping indciators, how to avoid multiple repaint() */
     2.5    }
     2.6  
     2.7 -  def addObserver(owner: Object, observer: ChangeObserver[_]) {
     2.8 +  def addObserver(owner: Object, observer: ChangeObserver[Any]) {
     2.9      observableHelper.addObserver(owner, observer)
    2.10    }
    2.11  
    2.12 -  def removeObserver(observer: ChangeObserver[_]) {
    2.13 +  def removeObserver(observer: ChangeObserver[Any]) {
    2.14      observableHelper.removeObserver(observer)
    2.15    }
    2.16  
    2.17 @@ -153,7 +153,7 @@
    2.18     *   wBar
    2.19     *   onCalendarMode
    2.20     */
    2.21 -  def notifyObserversChanged(oberverType: Class[_ <: ChangeObserver[_]]) {
    2.22 +  def notifyObserversChanged(oberverType: Class[_ <: ChangeObserver[Any]]) {
    2.23      observableHelper.notifyObserversChanged(this, oberverType)
    2.24    }
    2.25  
    2.26 @@ -272,7 +272,7 @@
    2.27      if (maxValue != oldMaxValue || minValue != oldMinValue) {
    2.28        oldMaxValue = maxValue;
    2.29        oldMinValue = minValue;
    2.30 -      notifyObserversChanged(classOf[ChartValidityObserver[_]])
    2.31 +      notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    2.32      }
    2.33    }
    2.34  
    2.35 @@ -308,7 +308,7 @@
    2.36      val oldValue = this.nBars
    2.37      this.nBars = nBars
    2.38      if (this.nBars != oldValue) {
    2.39 -      notifyObserversChanged(classOf[ChartValidityObserver[_]])
    2.40 +      notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    2.41      }
    2.42    }
    2.43  
    2.44 @@ -513,7 +513,7 @@
    2.45        }
    2.46      }
    2.47  
    2.48 -    notifyObserversChanged(classOf[ChartValidityObserver[_]])
    2.49 +    notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    2.50  
    2.51      repaint();
    2.52    }
    2.53 @@ -536,7 +536,7 @@
    2.54        overlappingSerChartMapVars.remove(ser)
    2.55      }
    2.56  
    2.57 -    notifyObserversChanged(classOf[ChartValidityObserver[_]])
    2.58 +    notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    2.59  
    2.60      repaint();
    2.61    }
    2.62 @@ -559,7 +559,7 @@
    2.63          }
    2.64        }
    2.65  
    2.66 -      notifyObserversChanged(classOf[ChartValidityObserver[_]])
    2.67 +      notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    2.68  
    2.69        /** repaint this chart view */
    2.70        repaint()
     3.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartingControllerFactory.scala	Wed Nov 04 01:43:13 2009 +0800
     3.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartingControllerFactory.scala	Wed Nov 04 03:26:31 2009 +0800
     3.3 @@ -202,7 +202,7 @@
     3.4        if (!mouseEnteredAnyChartPane) {
     3.5          /** this cleanups mouse cursor */
     3.6          if (this.mouseEnteredAnyChartPane != oldValue) {
     3.7 -          notifyObserversChanged(classOf[MouseCursorObserver[_]])
     3.8 +          notifyObserversChanged(classOf[MouseCursorObserver[Any]])
     3.9            updateViews
    3.10          }
    3.11        }
    3.12 @@ -235,7 +235,7 @@
    3.13        }
    3.14  
    3.15        /** decide wBar according to wViewPort. Do not use integer divide here */
    3.16 -      var newWBar = wViewPort.floatValue / nBars.floatValue
    3.17 +      var newWBar = wViewPort.toFloat / nBars.toFloat
    3.18  
    3.19        /** adjust xfactorIdx to nearest */
    3.20        if (newWBar < BAR_WIDTHS_ARRAY(0)) {
    3.21 @@ -281,7 +281,7 @@
    3.22          internal_setReferCursorByTime(referCursorTime)
    3.23          internal_setRightCursorByTime(rightCursorTime)
    3.24  
    3.25 -        notifyObserversChanged(classOf[ChartValidityObserver[_]])
    3.26 +        notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    3.27          updateViews
    3.28        }
    3.29      }
    3.30 @@ -361,11 +361,11 @@
    3.31        }
    3.32      }
    3.33  
    3.34 -    def addObserver(owner: AnyRef, observer: ChangeObserver[_]) {
    3.35 +    def addObserver(owner: AnyRef, observer: ChangeObserver[Any]) {
    3.36        observableHelper.addObserver(owner, observer)
    3.37      }
    3.38  
    3.39 -    def removeObserver(observer: ChangeObserver[_]) {
    3.40 +    def removeObserver(observer: ChangeObserver[Any]) {
    3.41        observableHelper.removeObserver(observer)
    3.42      }
    3.43  
    3.44 @@ -383,7 +383,7 @@
    3.45       *   mosueCursor
    3.46       *   mouseEnteredAnyChartPane
    3.47       */
    3.48 -    def notifyObserversChanged(observerType: Class[_ <: ChangeObserver[_]]) {
    3.49 +    def notifyObserversChanged(observerType: Class[_ <: ChangeObserver[Any]]) {
    3.50        observableHelper.notifyObserversChanged(this, observerType)
    3.51      }
    3.52  
    3.53 @@ -432,7 +432,7 @@
    3.54        val oldValue = this.wBar
    3.55        this.wBar = wBar
    3.56        if (this.wBar != oldValue) {
    3.57 -        notifyObserversChanged(classOf[ChartValidityObserver[_]])
    3.58 +        notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    3.59        }
    3.60      }
    3.61  
    3.62 @@ -442,8 +442,8 @@
    3.63        /** remember the lastRow for decision if need update cursor, see changeCursorByRow() */
    3.64        this.lastOccurredRowOfMasterSer = masterSer.lastOccurredRow
    3.65        if (this.referCursorRow != oldValue) {
    3.66 -        notifyObserversChanged(classOf[ReferCursorObserver[_]])
    3.67 -        notifyObserversChanged(classOf[ChartValidityObserver[_]])
    3.68 +        notifyObserversChanged(classOf[ReferCursorObserver[Any]])
    3.69 +        notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    3.70        }
    3.71      }
    3.72  
    3.73 @@ -451,7 +451,7 @@
    3.74        val oldValue = this.rightSideRow
    3.75        this.rightSideRow = row
    3.76        if (this.rightSideRow != oldValue) {
    3.77 -        notifyObserversChanged(classOf[ChartValidityObserver[_]])
    3.78 +        notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    3.79        }
    3.80      }
    3.81  
    3.82 @@ -471,7 +471,7 @@
    3.83         * even mouseCursor row not changed, the mouse's y may has been changed,
    3.84         * so, notify observers without comparing the oldValue and newValue.
    3.85         */
    3.86 -      notifyObserversChanged(classOf[MouseCursorObserver[_]])
    3.87 +      notifyObserversChanged(classOf[MouseCursorObserver[Any]])
    3.88      }
    3.89  
    3.90      def isCursorAccelerated: Boolean = {
    3.91 @@ -576,7 +576,7 @@
    3.92                setCursorByRow(referRow, rightRow, true)
    3.93              }
    3.94  
    3.95 -            notifyObserversChanged(classOf[ChartValidityObserver[_]])
    3.96 +            notifyObserversChanged(classOf[ChartValidityObserver[Any]])
    3.97              
    3.98            case _ =>
    3.99          }
     4.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/MouseCursorObserver.scala	Wed Nov 04 01:43:13 2009 +0800
     4.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/MouseCursorObserver.scala	Wed Nov 04 03:26:31 2009 +0800
     4.3 @@ -37,7 +37,7 @@
     4.4   * 
     4.5   * @author Caoyuan Deng
     4.6   */ 
     4.7 -trait MouseCursorObserver[S <: ChangeObservable] extends ChangeObserver[S] {
     4.8 +trait MouseCursorObserver[S] extends ChangeObserver[S] {
     4.9  }
    4.10  
    4.11  
     5.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ReferCursorObserver.scala	Wed Nov 04 01:43:13 2009 +0800
     5.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ReferCursorObserver.scala	Wed Nov 04 03:26:31 2009 +0800
     5.3 @@ -37,7 +37,7 @@
     5.4   * 
     5.5   * @author Caoyuan Deng
     5.6   */ 
     5.7 -trait ReferCursorObserver[S <: ChangeObservable] extends ChangeObserver[S] {
     5.8 +trait ReferCursorObserver[S] extends ChangeObserver[S] {
     5.9  }
    5.10  
    5.11  
     6.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisXPane.scala	Wed Nov 04 01:43:13 2009 +0800
     6.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisXPane.scala	Wed Nov 04 03:26:31 2009 +0800
     6.3 @@ -82,21 +82,21 @@
     6.4        def update(controller: ChartingController) {
     6.5          updateMouseCursorLabel
     6.6        }
     6.7 -    })
     6.8 +    }.asInstanceOf[MouseCursorObserver[Any]])
     6.9  
    6.10    view.getController.addObserver(this, new ReferCursorObserver[ChartingController] {
    6.11  
    6.12        def update(controller: ChartingController) {
    6.13          updateReferCursorLabel
    6.14        }
    6.15 -    })
    6.16 +    }.asInstanceOf[ReferCursorObserver[Any]])
    6.17  
    6.18    view.getController.addObserver(this, new ChartValidityObserver[ChartingController] {
    6.19  
    6.20        def update(controller: ChartingController) {
    6.21          updateReferCursorLabel
    6.22        }
    6.23 -    })
    6.24 +    }.asInstanceOf[ChartValidityObserver[Any]])
    6.25    
    6.26  
    6.27    def setTimeZone(timeZone: TimeZone) {
     7.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisYPane.scala	Wed Nov 04 01:43:13 2009 +0800
     7.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/AxisYPane.scala	Wed Nov 04 03:26:31 2009 +0800
     7.3 @@ -81,21 +81,21 @@
     7.4        def update(controller: ChartingController) {
     7.5          updateMouseCursorLabel
     7.6        }
     7.7 -    })
     7.8 +    }.asInstanceOf[MouseCursorObserver[Any]])
     7.9  
    7.10    view.getController.addObserver(this, new ReferCursorObserver[ChartingController] {
    7.11  
    7.12        def update(controller: ChartingController) {
    7.13          updateReferCursorLabel
    7.14        }
    7.15 -    })
    7.16 +    }.asInstanceOf[ReferCursorObserver[Any]])
    7.17  
    7.18    view.addObserver(this, new ChartValidityObserver[ChartView] {
    7.19  
    7.20        def update(view: ChartView) {
    7.21          updateReferCursorLabel
    7.22        }
    7.23 -    })
    7.24 +    }.asInstanceOf[ChartValidityObserver[Any]])
    7.25      
    7.26  
    7.27    private def updateMouseCursorLabel {
     8.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/ChartPane.scala	Wed Nov 04 01:43:13 2009 +0800
     8.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/ChartPane.scala	Wed Nov 04 03:26:31 2009 +0800
     8.3 @@ -89,14 +89,14 @@
     8.4          chartValid = false
     8.5          setGeometryValid(false)
     8.6        }
     8.7 -    })
     8.8 +    }.asInstanceOf[ChartValidityObserver[Any]])
     8.9          
    8.10    getView.addObserver(this, new ChartValidityObserver[ChartView] {
    8.11        def update(subject: ChartView) {
    8.12          chartValid = false
    8.13          setGeometryValid(false)
    8.14        }
    8.15 -    })
    8.16 +    }.asInstanceOf[ChartValidityObserver[Any]])
    8.17  
    8.18      
    8.19    protected def isChartValid: Boolean = {
     9.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/GlassPane.scala	Wed Nov 04 01:43:13 2009 +0800
     9.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/GlassPane.scala	Wed Nov 04 03:26:31 2009 +0800
     9.3 @@ -137,7 +137,7 @@
     9.4            updateSelectedSerVarValues
     9.5          }
     9.6        }
     9.7 -    });
     9.8 +    }.asInstanceOf[ReferCursorObserver[Any]])
     9.9  
    9.10    view.getController.addObserver(this, new ChartValidityObserver[ChartingController] {
    9.11  
    9.12 @@ -148,7 +148,7 @@
    9.13            updateSelectedSerVarValues
    9.14          }
    9.15        }
    9.16 -    })
    9.17 +    }.asInstanceOf[ChartValidityObserver[Any]])
    9.18  
    9.19    view.addObserver(this, new ChartValidityObserver[ChartView] {
    9.20  
    9.21 @@ -159,7 +159,7 @@
    9.22            updateSelectedSerVarValues
    9.23          }
    9.24        }
    9.25 -    })
    9.26 +    }.asInstanceOf[ChartValidityObserver[Any]])
    9.27  
    9.28    /**
    9.29     * @todo updateTitle() when
    10.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/Pane.scala	Wed Nov 04 01:43:13 2009 +0800
    10.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/pane/Pane.scala	Wed Nov 04 03:26:31 2009 +0800
    10.3 @@ -97,7 +97,7 @@
    10.4          def update(controller: ChartingController) {
    10.5            paintChartOnXORMode(mouseCursorChart)
    10.6          }
    10.7 -      })
    10.8 +      }.asInstanceOf[MouseCursorObserver[Any]])
    10.9    }
   10.10  
   10.11    setDoubleBuffered(true)
    11.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/widget/AbstractWidget.scala	Wed Nov 04 01:43:13 2009 +0800
    11.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/widget/AbstractWidget.scala	Wed Nov 04 03:26:31 2009 +0800
    11.3 @@ -376,7 +376,7 @@
    11.4      }
    11.5    }
    11.6      
    11.7 -  def lookupChildren[T <: Widget](widgetType: Class[T], foreground: Color): ArrayList[T] = {
    11.8 +  def lookupChildren[T <: Widget: Manifest](widgetType: Class[T], foreground: Color): ArrayList[T] = {
    11.9      val result = new ArrayList[T]
   11.10      if (children != null) {
   11.11        for (child <- children) {
    12.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/widget/Widget.scala	Wed Nov 04 01:43:13 2009 +0800
    12.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/widget/Widget.scala	Wed Nov 04 03:26:31 2009 +0800
    12.3 @@ -111,7 +111,7 @@
    12.4    def removeChild(child: Widget): Unit
    12.5    def children: ArrayList[Widget]
    12.6    def clearChildren: Unit
    12.7 -  def lookupChildren[T <: Widget](widgetType: Class[T], foreground: Color): Seq[T]
    12.8 +  def lookupChildren[T <: Widget: Manifest](widgetType: Class[T], foreground: Color): Seq[T]
    12.9    def lookupFirstChild[T <: Widget](widgetType: Class[T], foreground: Color): Option[T]
   12.10      
   12.11    def addAction(action: Action): Action
    13.1 --- a/modules/lib.indicator/src/org/aiotrade/lib/indicator/function/STOCHDFunction.scala	Wed Nov 04 01:43:13 2009 +0800
    13.2 +++ b/modules/lib.indicator/src/org/aiotrade/lib/indicator/function/STOCHDFunction.scala	Wed Nov 04 03:26:31 2009 +0800
    13.3 @@ -28,11 +28,10 @@
    13.4   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
    13.5   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    13.6   */
    13.7 -package org.aiotrade.lib.indicator.function;
    13.8 +package org.aiotrade.lib.indicator.function
    13.9  
   13.10 -import org.aiotrade.lib.math.timeseries.TSer;
   13.11 -import org.aiotrade.lib.math.timeseries.TVar;
   13.12 -import org.aiotrade.lib.math.timeseries.computable.Factor;
   13.13 +import org.aiotrade.lib.math.timeseries.TSer
   13.14 +import org.aiotrade.lib.math.timeseries.computable.Factor
   13.15  
   13.16  /**
   13.17   *
    14.1 --- a/modules/lib.math/src/org/aiotrade/lib/math/StatisticFunction.scala	Wed Nov 04 01:43:13 2009 +0800
    14.2 +++ b/modules/lib.math/src/org/aiotrade/lib/math/StatisticFunction.scala	Wed Nov 04 03:26:31 2009 +0800
    14.3 @@ -244,7 +244,7 @@
    14.4      }
    14.5  
    14.6      val period1 = period(begIdx, endIdx) * 1d
    14.7 -    Math.sqrt(deviation_square_sum / period1).asInstanceOf[Float]
    14.8 +    Math.sqrt(deviation_square_sum / period1).toFloat
    14.9    }
   14.10  
   14.11    /**
   14.12 @@ -299,7 +299,7 @@
   14.13      val maxmin1 = maxmin(values, begIdx1, endIdx)
   14.14      val max = maxmin1(MAX)
   14.15      val min = maxmin1(MIN)
   14.16 -    val nIntervals = (((max - min) / interval) + 1).asInstanceOf[Int]
   14.17 +    val nIntervals = (((max - min) / interval) + 1).toInt
   14.18      probMass(values, weights, begIdx1, endIdx, max, min, nIntervals)
   14.19    }
   14.20  
   14.21 @@ -330,10 +330,10 @@
   14.22      i = begIdx1
   14.23      while (i <= lastIdx) {
   14.24        val value = values(i)
   14.25 -      val weight = if (weights == null) 1f else weights(i).floatValue
   14.26 +      val weight = if (weights == null) 1F else weights(i).toFloat
   14.27        if (value >= min && value <= max) {
   14.28          /** only calculate those between max and min */
   14.29 -        val densityIdx = ((value - min) / interval).asInstanceOf[Int]
   14.30 +        val densityIdx = ((value - min) / interval).toInt
   14.31          mass(MASS)(densityIdx) += weight
   14.32        }
   14.33  
   14.34 @@ -360,7 +360,7 @@
   14.35      val maxmin1 = maxmin(values, begIdx, endIdx)
   14.36      val max = maxmin1(MAX)
   14.37      val min = maxmin1(MIN)
   14.38 -    val nIntervals = (((max - min) / interval) + 1).asInstanceOf[Int]
   14.39 +    val nIntervals = (((max - min) / interval) + 1).toInt
   14.40      val period1 = period(begIdx, endIdx)
   14.41      val mass = new Array[Array[Float]](2, nIntervals)
   14.42      var i = 0
   14.43 @@ -378,7 +378,7 @@
   14.44        val weight = if (weights == null) 1f else weights(i)
   14.45        if (value >= min && value <= max) {
   14.46          /** only calculate those between max and min */
   14.47 -        val densityIdx = ((value - min) / interval).asInstanceOf[Int]
   14.48 +        val densityIdx = ((value - min) / interval).toInt
   14.49          mass(MASS)(densityIdx) += weight
   14.50        }
   14.51  
    15.1 --- a/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservable.scala	Wed Nov 04 01:43:13 2009 +0800
    15.2 +++ b/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservable.scala	Wed Nov 04 03:26:31 2009 +0800
    15.3 @@ -38,9 +38,9 @@
    15.4   */
    15.5  trait ChangeObservable {
    15.6      
    15.7 -  def addObserver(owner: Object, observer: ChangeObserver[_]): Unit
    15.8 +  def addObserver(owner: Object, observer: ChangeObserver[Any]): Unit
    15.9      
   15.10 -  def removeObserver(observer: ChangeObserver[_]): Unit
   15.11 +  def removeObserver(observer: ChangeObserver[Any]): Unit
   15.12      
   15.13    def removeObserversOf(owner: Object): Unit
   15.14      
   15.15 @@ -49,6 +49,6 @@
   15.16     * we only apply O here, the implement class can choose to notify this type
   15.17     * of observers,
   15.18     */
   15.19 -  def notifyObserversChanged(observerType: Class[_ <: ChangeObserver[_]]): Unit
   15.20 +  def notifyObserversChanged(observerType: Class[_ <: ChangeObserver[Any]]): Unit
   15.21  }
   15.22  
    16.1 --- a/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservableHelper.scala	Wed Nov 04 01:43:13 2009 +0800
    16.2 +++ b/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservableHelper.scala	Wed Nov 04 03:26:31 2009 +0800
    16.3 @@ -51,8 +51,6 @@
    16.4    @transient
    16.5    val observerToOwner = new HashMap[ChangeObserver[Any], AnyRef]
    16.6      
    16.7 -  def ChangeObservableHelper: Unit = {}
    16.8 -    
    16.9    def getObservers: Collection[ChangeObserver[Any]] = {
   16.10      observerToOwner.keySet
   16.11    }
   16.12 @@ -82,7 +80,7 @@
   16.13      }
   16.14    }
   16.15      
   16.16 -  def notifyObserversChanged[T <: ChangeObserver[_]](subject: Any, observerType: Class[T]): Unit = {
   16.17 +  def notifyObserversChanged[T <: ChangeObserver[Any]](subject: Any, observerType: Class[T]): Unit = {
   16.18      for (observer <- observerToOwner.keysIterator if observerType.isInstance(observer)) {
   16.19        observer.asInstanceOf[ChangeObserver[Any]].update(subject)
   16.20      }
    17.1 --- a/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/BIASIndicator.scala	Wed Nov 04 01:43:13 2009 +0800
    17.2 +++ b/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/BIASIndicator.scala	Wed Nov 04 03:26:31 2009 +0800
    17.3 @@ -28,12 +28,10 @@
    17.4   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
    17.5   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    17.6   */
    17.7 -package org.aiotrade.platform.modules.indicator.basic;
    17.8 +package org.aiotrade.platform.modules.indicator.basic
    17.9  
   17.10 -//import org.aiotrade.lib.math.timeseries.Var;
   17.11 -//import org.aiotrade.lib.math.timeseries.computable.Factor;
   17.12 -import org.aiotrade.lib.math.timeseries.plottable.Plot;
   17.13 -import org.aiotrade.lib.indicator.ContIndicator;
   17.14 +import org.aiotrade.lib.math.timeseries.plottable.Plot
   17.15 +import org.aiotrade.lib.indicator.ContIndicator
   17.16  
   17.17  /**
   17.18   *
    18.1 --- a/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/EMAIndicator.scala	Wed Nov 04 01:43:13 2009 +0800
    18.2 +++ b/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/EMAIndicator.scala	Wed Nov 04 03:26:31 2009 +0800
    18.3 @@ -28,7 +28,7 @@
    18.4   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
    18.5   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    18.6   */
    18.7 -package org.aiotrade.platform.modules.indicator.basic;
    18.8 +package org.aiotrade.platform.modules.indicator.basic
    18.9  
   18.10  import org.aiotrade.lib.math.timeseries.plottable.Plot
   18.11  import org.aiotrade.lib.indicator.ContIndicator
    19.1 --- a/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/ROCIndicator.scala	Wed Nov 04 01:43:13 2009 +0800
    19.2 +++ b/modules/p.m.indicator.basic/src/org/aiotrade/platform/modules/indicator/basic/ROCIndicator.scala	Wed Nov 04 03:26:31 2009 +0800
    19.3 @@ -30,7 +30,6 @@
    19.4   */
    19.5  package org.aiotrade.platform.modules.indicator.basic
    19.6  
    19.7 -import org.aiotrade.lib.math.timeseries.TVar
    19.8  import org.aiotrade.lib.math.timeseries.plottable.Plot
    19.9  import org.aiotrade.lib.indicator.ContIndicator
   19.10