<< Chapter < Page | Chapter >> Page > |
I will have much more to say about the class named MyCanvas later.
For now, simply be aware that the feedData method in Listing 14 calls the putData method on the current Page object to cause the data value to be stored in the array object belonging to the corresponding MyCanvas object. The current value of the sample counter is also passed to the putData method to specify the array element into which the data value is to be stored.
Finally, the feedData method increments the sample counter and returns to await being called to receive the next data sample.
The plotData method must be called once when all of the data has been fed to the plotting object by way of the feedData method. The purpose of the plotData method is to rearrange the Page objects in a stack on the screen with page 0 (containing the earliest data) on the top of the stack.
Having rearranged the Page objects, the plotData method causes the object on the top of the stack to become visible. This, in turn, causes its overridden paint method belonging to that object to be called, thus causing the data to be plotted as shown in Figure 1 and Figure 5 .
There are two overloaded versions of the plotData method. One version allows the user to specify the location on the screen where the stack of plotted pageswill appear. The other version places the stack in the upper left corner of the screen by default.
The version of the plotData method that allows the user to specify the location begins in Listing 15 . This version receives two incoming parameters. These parameters specify the coordinates of the upper left corner of the stackof Page objects relative to the upper left corner of the screen. The first parameter specifies the horizontal coordinate and the second parameter specifiesthe vertical coordinate, with positive vertical values going down the screen.
(Specifying both coordinate values as 0 will cause the stack to appear in the upper left corner of the screen.)
Listing 15. Beginning of the plotData method. |
---|
void plotData(int xCoor,int yCoor){
Page lastPage =pageLinks.get(pageLinks.size() - 1);
while(!lastPage.isVisible()){//Loop until last page becomes visible
}//end while loop |
As you will see later, each of the pages are displayed on the screen as they are produced. It is possible that this method could be called before theoperating system has completed the process of making the last page visible. The plotData method uses a while loop to delay until the last page has become visible on the screen.
At this point, the pages appear on the screen with the last page on the top of the stack. This order needs to be reversed to cause the first page to be onthe top of the stack.
The reversal of the order of the pages in the stack is accomplished by first making every page invisible, and then making them visible again in reverseorder.
The code in Listing 16 iterates on the ArrayList object containing references to all of the pages. The reference to each Page object is obtained from the list, and its visible property value is set tofalse.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?