1.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/chart/QuoteChart.scala Sun Nov 08 00:16:07 2009 +0800
1.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/chart/QuoteChart.scala Sun Nov 08 01:05:06 2009 +0800
1.3 @@ -87,7 +87,7 @@
1.4 protected def createModel: Model = new Model
1.5
1.6 protected def plotChart {
1.7 -
1.8 +
1.9 if (getDepth == Pane.DEPTH_DEFAULT) {
1.10 positiveColor = LookFeel().getPositiveColor
1.11 negativeColor = LookFeel().getNegativeColor
2.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartValidityObserver.scala Sun Nov 08 00:16:07 2009 +0800
2.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartValidityObserver.scala Sun Nov 08 01:05:06 2009 +0800
2.3 @@ -30,7 +30,6 @@
2.4 */
2.5 package org.aiotrade.lib.charting.view
2.6
2.7 -import org.aiotrade.lib.util.ChangeObservable
2.8 import org.aiotrade.lib.util.ChangeObserver
2.9
2.10 /**
3.1 --- a/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartingControllerFactory.scala Sun Nov 08 00:16:07 2009 +0800
3.2 +++ b/modules/lib.charting/src/org/aiotrade/lib/charting/view/ChartingControllerFactory.scala Sun Nov 08 01:05:06 2009 +0800
3.3 @@ -37,7 +37,6 @@
3.4 import java.awt.event.InputEvent
3.5 import java.awt.event.KeyAdapter
3.6 import java.awt.event.KeyEvent
3.7 -import java.awt.event.KeyListener
3.8 import java.awt.event.MouseWheelListener
3.9 import java.awt.event.WindowAdapter
3.10 import java.awt.event.WindowEvent
3.11 @@ -49,9 +48,7 @@
3.12 import org.aiotrade.lib.math.timeseries.SerChangeListener
3.13 import javax.swing.WindowConstants
3.14 import org.aiotrade.lib.util.ChangeObserver
3.15 -import org.aiotrade.lib.util.ChangeObservable
3.16 import org.aiotrade.lib.util.ChangeObservableHelper
3.17 -import org.aiotrade.lib.util.collection.ArrayList
3.18 import scala.collection.mutable.HashMap
3.19 import scala.collection.mutable.HashSet
3.20
3.21 @@ -106,6 +103,7 @@
3.22 */
3.23 private class DefaultChartingController(masterSer: MasterTSer, contents: AnalysisContents) extends ChartingController {
3.24 import DefaultChartingController._
3.25 +
3.26 private val popupViews = new HashSet[ChartView]
3.27 private var viewContainer: ChartViewContainer = _
3.28 private var wBarIdx = 11
3.29 @@ -148,31 +146,15 @@
3.30 }
3.31
3.32 private def addKeyMouseListenersTo(component: JComponent) {
3.33 - component.setFocusable(true);
3.34 - component.addKeyListener(new ViewKeyAdapter);
3.35 + component.setFocusable(true)
3.36 + component.addKeyListener(new ViewKeyAdapter)
3.37 component.addMouseWheelListener(new ViewMouseWheelListener)
3.38 }
3.39
3.40 private def removeKeyMouseListenersFrom(component: JComponent) {
3.41 - /** use a list to avoid concurrent issue */
3.42 - val toBeRemoved = new ArrayList[AnyRef]
3.43 -
3.44 - val ls = component.getKeyListeners.iterator
3.45 - while (ls.hasNext) {
3.46 - toBeRemoved += ls.next
3.47 - }
3.48 - for (l <- toBeRemoved) {
3.49 - component.removeKeyListener(l.asInstanceOf[KeyListener])
3.50 - }
3.51 -
3.52 - toBeRemoved.clear
3.53 - val ls2 = component.getMouseWheelListeners.iterator
3.54 - while (ls2.hasNext) {
3.55 - toBeRemoved += ls.next
3.56 - }
3.57 - for (l <- toBeRemoved) {
3.58 - component.removeMouseWheelListener(l.asInstanceOf[MouseWheelListener])
3.59 - }
3.60 + /** copy to a list to avoid concurrent issue */
3.61 + component.getKeyListeners.toList foreach {x => component.removeKeyListener(x)}
3.62 + component.getMouseWheelListeners.toList foreach {x => component.removeMouseWheelListener(x)}
3.63 }
3.64
3.65 def getMasterSer: MasterTSer = {
3.66 @@ -286,20 +268,20 @@
3.67 }
3.68 }
3.69
3.70 - def setCursorByRow(referRow: Int, rightRow: Int, updateViews: Boolean) {
3.71 + def setCursorByRow(referRow: Int, rightRow: Int, willUpdateViews: Boolean) {
3.72 /** set right cursor row first and directly */
3.73 internal_setRightSideRow(rightRow)
3.74
3.75 val oldValue = getReferCursorRow
3.76 - scrollReferCursor(referRow - oldValue, updateViews)
3.77 + scrollReferCursor(referRow - oldValue, willUpdateViews)
3.78 }
3.79
3.80 - def setReferCursorByRow(row: Int, updateViews: Boolean) {
3.81 + def setReferCursorByRow(row: Int, willUpdateViews: Boolean) {
3.82 val increment = row - getReferCursorRow
3.83 - scrollReferCursor(increment, updateViews)
3.84 + scrollReferCursor(increment, willUpdateViews)
3.85 }
3.86
3.87 - def scrollReferCursor(increment: Int, updateViews: Boolean) {
3.88 + def scrollReferCursor(increment: Int, willUpdateViews: Boolean) {
3.89 var referRow = getReferCursorRow
3.90 val rightRow = getRightSideRow
3.91
3.92 @@ -320,7 +302,7 @@
3.93 }
3.94
3.95 internal_setReferCursorRow(referRow)
3.96 - if (updateViews) {
3.97 + if (willUpdateViews) {
3.98 updateViews
3.99 }
3.100 }
3.101 @@ -354,11 +336,7 @@
3.102 * as repaint() may be called by awt in instance's initialization, before
3.103 * popupViewSet is created, so, check null.
3.104 */
3.105 - if (popupViews != null) {
3.106 - for (view <- popupViews) {
3.107 - view.repaint()
3.108 - }
3.109 - }
3.110 + popupViews foreach {view => view.repaint()}
3.111 }
3.112
3.113 def addObserver(owner: AnyRef, observer: ChangeObserver[Any]) {
3.114 @@ -499,8 +477,7 @@
3.115 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)
3.116 frame.addWindowListener(new WindowAdapter {
3.117
3.118 - override
3.119 - def windowClosed(e: WindowEvent) {
3.120 + override def windowClosed(e: WindowEvent) {
3.121 removeKeyMouseListenersFrom(popupView)
3.122 popupViews.remove(popupView)
3.123 }
3.124 @@ -558,12 +535,13 @@
3.125 /** this method only process loading, update events to check if need to update cursor */
3.126 evt.tpe match {
3.127 case SerChangeEvent.Type.FinishedLoading | SerChangeEvent.Type.RefreshInLoading | SerChangeEvent.Type.Updated =>
3.128 - val masterView = viewContainer.getMasterView
3.129 - if (masterView.isInstanceOf[WithDrawingPane]) {
3.130 - val drawing = masterView.asInstanceOf[WithDrawingPane].getSelectedDrawing
3.131 - if (drawing != null && drawing.isInDrawing) {
3.132 - return
3.133 - }
3.134 + viewContainer.getMasterView match {
3.135 + case masterView: WithDrawingPane =>
3.136 + val drawing = masterView.getSelectedDrawing
3.137 + if (drawing != null && drawing.isInDrawing) {
3.138 + return
3.139 + }
3.140 + case _ =>
3.141 }
3.142
3.143 val oldReferRow = getReferCursorRow
4.1 --- a/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservableHelper.scala Sun Nov 08 00:16:07 2009 +0800
4.2 +++ b/modules/lib.util/src/org/aiotrade/lib/util/ChangeObservableHelper.scala Sun Nov 08 01:05:06 2009 +0800
4.3 @@ -82,7 +82,7 @@
4.4
4.5 def notifyObserversChanged[T <: ChangeObserver[Any]](subject: Any, observerType: Class[T]): Unit = {
4.6 for (observer <- observerToOwner.keysIterator if observerType.isInstance(observer)) {
4.7 - observer.asInstanceOf[ChangeObserver[Any]].update(subject)
4.8 + observer.update(subject)
4.9 }
4.10 }
4.11