javauis/mmapi_qt/baseline/src/cmmadisplay.cpp
changeset 26 dc7c549001d5
parent 23 98ccebc37403
child 47 f40128debb5d
child 56 abc41079b313
equal deleted inserted replaced
23:98ccebc37403 26:dc7c549001d5
    26 #include <w32std.h>
    26 #include <w32std.h>
    27 
    27 
    28 // Destructor (virtual by CBase)
    28 // Destructor (virtual by CBase)
    29 CMMADisplay::~CMMADisplay()
    29 CMMADisplay::~CMMADisplay()
    30 {
    30 {
    31 /*
    31     /*
    32     if (iDirectContainer)
    32         if (iDirectContainer)
    33     {
    33         {
    34         // Remove clip rect if set
    34             // Remove clip rect if set
    35         if (!iClipRect.IsEmpty())
    35             if (!iClipRect.IsEmpty())
    36         {
    36             {
    37             LOG(EJavaMMAPI,EInfo,"CMMADisplay::~CMMADisplay(): Removing clip rect");
    37                 LOG(EJavaMMAPI,EInfo,"CMMADisplay::~CMMADisplay(): Removing clip rect");
    38             iDirectContainer->MdcRemoveContentBounds(iClipRect);
    38                 iDirectContainer->MdcRemoveContentBounds(iClipRect);
    39         }
    39             }
    40 
    40 
    41         // Remove this object from MDirectContainer
    41             // Remove this object from MDirectContainer
    42         iDirectContainer->MdcRemoveContent(this);
    42             iDirectContainer->MdcRemoveContent(this);
    43     }
    43         }
    44     */
    44         */
    45 }
    45 }
    46 
    46 
    47 
    47 
    48 CMMADisplay::CMMADisplay():
    48 CMMADisplay::CMMADisplay():
    49         iVisible(ETrue),
    49         iVisible(ETrue),
    54 {
    54 {
    55 }
    55 }
    56 
    56 
    57 void CMMADisplay::Construct(MMAFunctionServer* eventSource , jobject javadisplayref)
    57 void CMMADisplay::Construct(MMAFunctionServer* eventSource , jobject javadisplayref)
    58 {
    58 {
    59 	iEventSource = eventSource;
    59     iEventSource = eventSource;
    60 	iJni = iEventSource->getValidJniEnv();
    60     iJni = iEventSource->getValidJniEnv();
    61 	iJavaDisplayObject = iJni->NewGlobalRef(javadisplayref);
    61     iJavaDisplayObject = iJni->NewGlobalRef(javadisplayref);
    62 	iJavaDisplayClass = iJni->GetObjectClass(iJavaDisplayObject);
    62     iJavaDisplayClass = iJni->GetObjectClass(iJavaDisplayObject);
    63     // Components must have direct content.
    63     // Components must have direct content.
    64    /* __ASSERT_LOG(EJavaMMAPI,EInfo,"aDirectContainer, User::Invariant());
    64     /* __ASSERT_LOG(EJavaMMAPI,EInfo,"aDirectContainer, User::Invariant());
    65 
    65 
    66     // Not owned
    66      // Not owned
    67     iDirectContainer = aDirectContainer;
    67      iDirectContainer = aDirectContainer;
    68 
    68 
    69     // Get component visibility. Later visibility changes will
    69      // Get component visibility. Later visibility changes will
    70     // be informed through MDirectContent observer.
    70      // be informed through MDirectContent observer.
    71     iContainerVisible = iDirectContainer->MdcContainerVisibility();
    71      iContainerVisible = iDirectContainer->MdcContainerVisibility();
    72     LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iContainerVisible = %d", iContainerVisible);
    72      LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iContainerVisible = %d", iContainerVisible);
    73     LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iVisible = %d", iVisible);
    73      LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::Construct iVisible = %d", iVisible);
    74 
    74 
    75     // Add this MDirectContent to the MDirectContainer. Cannot fail.
    75      // Add this MDirectContent to the MDirectContainer. Cannot fail.
    76     iDirectContainer->MdcAddContent(this);
    76      iDirectContainer->MdcAddContent(this);
    77     */
    77      */
    78 }
    78 }
    79 
    79 
    80 TRect CMMADisplay::ScaleToFullScreen(const TSize& aFullScreenSize,
    80 TRect CMMADisplay::ScaleToFullScreen(const TSize& aFullScreenSize,
    81                                      const TSize& aSourceSize)
    81                                      const TSize& aSourceSize)
    82 {
    82 {
    83 	LOG(EJavaMMAPI,EInfo,"CMMADisplay::ScaleToFullScreen() +");
    83     LOG(EJavaMMAPI,EInfo,"CMMADisplay::ScaleToFullScreen() +");
    84     if ((aSourceSize.iWidth == 0) &&
    84     if ((aSourceSize.iWidth == 0) &&
    85             (aSourceSize.iHeight == 0))
    85             (aSourceSize.iHeight == 0))
    86     {
    86     {
    87         // Avoid divide by zero.
    87         // Avoid divide by zero.
    88         return TRect();
    88         return TRect();
   145 
   145 
   146     if (!iWindow ||
   146     if (!iWindow ||
   147             (iWindow->GetDisplayWindowType() == MMMADisplayWindow::EDisplayWindowTypeIsBitmap) ||
   147             (iWindow->GetDisplayWindowType() == MMMADisplayWindow::EDisplayWindowTypeIsBitmap) ||
   148             iClipRect == iWindow->DrawRect() && iContainerVisible && iVisible)
   148             iClipRect == iWindow->DrawRect() && iContainerVisible && iVisible)
   149     {
   149     {
   150     	 LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion before return");
   150         LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion before return");
   151     	     return;
   151         return;
   152     }
   152     }
   153 
   153 
   154     TBool refreshScreen(EFalse);
   154     TBool refreshScreen(EFalse);
   155     // Remove first the current clip rect if set
   155     // Remove first the current clip rect if set
   156    LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height());
   156     LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height());
   157     if (!iClipRect.IsEmpty())
   157     if (!iClipRect.IsEmpty())
   158     {
   158     {
   159         LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Removing old rect");
   159         LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Removing old rect");
   160         //iDirectContainer->MdcRemoveContentBounds(iClipRect);
   160         //iDirectContainer->MdcRemoveContentBounds(iClipRect);
   161         iClipRect.SetRect(0, 0, 0, 0);
   161         iClipRect.SetRect(0, 0, 0, 0);
   162         refreshScreen = ETrue;
   162         refreshScreen = ETrue;
   163     }
   163     }
   164     // If visible then set a new clip rect
   164     // If visible then set a new clip rect
   165     if (iVisible && iContainerVisible)
   165     if (iVisible && iContainerVisible)
   166     {
   166     {
   167     	LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)");
   167         LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)");
   168         iClipRect = iWindow->DrawRect();
   168         iClipRect = iWindow->DrawRect();
   169         LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height());
   169         LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if (iVisible && iContainerVisible)iClipRect = %d X %d",iClipRect.Width(),iClipRect.Height());
   170         if (!iClipRect.IsEmpty())
   170         if (!iClipRect.IsEmpty())
   171         {
   171         {
   172             LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Adding new rect");
   172             LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: Adding new rect");
   173             // Add new clipping rect
   173             // Add new clipping rect
   174          //   iDirectContainer->MdcAddContentBounds(iClipRect);
   174             //   iDirectContainer->MdcAddContentBounds(iClipRect);
   175          SetContentBoundToJavaControl(iClipRect);
   175             SetContentBoundToJavaControl(iClipRect);
   176             refreshScreen = ETrue;
   176             refreshScreen = ETrue;
   177         }
   177         }
   178     }
   178     }
   179     if (refreshScreen)
   179     if (refreshScreen)
   180     {
   180     {
   181     	LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if(refreshScreen)");
   181         LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion: inside if(refreshScreen)");
   182         // refresh screen
   182         // refresh screen
   183        // iDirectContainer->MdcFlushContainer(iWindow->WindowRect());
   183         // iDirectContainer->MdcFlushContainer(iWindow->WindowRect());
   184         RefreshJavaControl(iWindow->WindowRect());
   184         RefreshJavaControl();
   185     }
   185     }
   186     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion -");
   186     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetClippingRegion -");
   187 }
   187 }
   188 
   188 
   189 void CMMADisplay::RemoveClippingRegion()
   189 void CMMADisplay::RemoveClippingRegion()
   203         //iDirectContainer->MdcRemoveContentBounds(iClipRect);
   203         //iDirectContainer->MdcRemoveContentBounds(iClipRect);
   204         RemoveContentBoundFromJavaControl(iClipRect);
   204         RemoveContentBoundFromJavaControl(iClipRect);
   205         iClipRect.SetRect(0, 0, 0, 0);
   205         iClipRect.SetRect(0, 0, 0, 0);
   206         // refresh screen
   206         // refresh screen
   207         //iDirectContainer->MdcFlushContainer(iWindow->WindowRect());
   207         //iDirectContainer->MdcFlushContainer(iWindow->WindowRect());
   208         RefreshJavaControl(iWindow->WindowRect());
   208         RefreshJavaControl();
   209     }
   209     }
   210 }
   210 }
   211 
   211 
   212 void CMMADisplay::AddClippingRegion()
   212 void CMMADisplay::AddClippingRegion()
   213 {
   213 {
   214     // Called in mmapi thread
   214     // Called in mmapi thread
   215     LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion");
   215     LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion");
   216 		LOG2(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion iClipRect width = %d height = %d", iClipRect.Width() , iClipRect.Height());
   216     LOG2(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion iClipRect width = %d height = %d", iClipRect.Width() , iClipRect.Height());
   217 		  
   217 
   218     if (!iWindow ||
   218     if (!iWindow ||
   219             (iWindow->GetDisplayWindowType() ==
   219             (iWindow->GetDisplayWindowType() ==
   220              MMMADisplayWindow::EDisplayWindowTypeIsBitmap) ||
   220              MMMADisplayWindow::EDisplayWindowTypeIsBitmap) ||
   221             iClipRect == iWindow->DrawRect())
   221             iClipRect == iWindow->DrawRect())
   222     {
   222     {
   228         iClipRect = iWindow->DrawRect();
   228         iClipRect = iWindow->DrawRect();
   229         if (!iClipRect.IsEmpty())
   229         if (!iClipRect.IsEmpty())
   230         {
   230         {
   231             LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion: Adding new rect");
   231             LOG(EJavaMMAPI,EInfo,"CMMADisplay::AddClippingRegion: Adding new rect");
   232             // Add new clipping rect
   232             // Add new clipping rect
   233           // iDirectContainer->MdcAddContentBounds(iClipRect);
   233             // iDirectContainer->MdcAddContentBounds(iClipRect);
   234           SetContentBoundToJavaControl(iClipRect);
   234             SetContentBoundToJavaControl(iClipRect);
   235             // refresh screen
   235             // refresh screen
   236            // iDirectContainer->MdcFlushContainer(
   236             // iDirectContainer->MdcFlushContainer(
   237            //     iWindow->WindowRect());
   237             //     iWindow->WindowRect());
   238            RefreshJavaControl(iWindow->WindowRect());
   238             RefreshJavaControl();
   239         }
   239         }
   240     }
   240     }
   241 }
   241 }
   242 
   242 
   243 // from MMMADisplay
   243 // from MMMADisplay
   255 
   255 
   256 // from MMMADisplay
   256 // from MMMADisplay
   257 void CMMADisplay::SetDisplaySizeL(const TSize& aSize)
   257 void CMMADisplay::SetDisplaySizeL(const TSize& aSize)
   258 {
   258 {
   259     // user rect contains size set from java.
   259     // user rect contains size set from java.
   260  iUserRect.SetSize(aSize);
   260     iUserRect.SetSize(aSize);
   261  LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect = %d X %d", iUserRect.Width() ,iUserRect.Height());
   261     LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect = %d X %d", iUserRect.Width() ,iUserRect.Height());
   262     // Size change has no effect if fullscreen mode is on.
   262     // Size change has no effect if fullscreen mode is on.
   263     // New size could be used when fullscreen is turned off.
   263     // New size could be used when fullscreen is turned off.
   264     if (iContainerVisible && !iFullScreen && iWindow)
   264     if (iContainerVisible && !iFullScreen && iWindow)
   265     {
   265     {
   266     	 	LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible);
   266         LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible);
   267         RemoveClippingRegion();
   267         RemoveClippingRegion();
   268         LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect after removingClipRegion = %d X %d", iUserRect.Width() ,iUserRect.Height());
   268         LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect after removingClipRegion = %d X %d", iUserRect.Width() ,iUserRect.Height());
   269         iWindow->SetDrawRect(iUserRect);
   269         iWindow->SetDrawRect(iUserRect);
   270         AddClippingRegion();
   270         AddClippingRegion();
   271         LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect after AddingClipRegion = %d X %d", iUserRect.Width() ,iUserRect.Height());
   271         LOG2(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetDisplaySizeL iUserRect after AddingClipRegion = %d X %d", iUserRect.Width() ,iUserRect.Height());
   272     }
   272     }
   273     else
   273     else
   274     {
   274     {
   275     	 LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible);
   275         LOG1(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible + iContainerVisible = %d", iContainerVisible);
   276         iResetDrawRect = ETrue;
   276         iResetDrawRect = ETrue;
   277     }
   277     }
   278 }
   278 }
   279 
   279 
   280 // from MMMADisplay
   280 // from MMMADisplay
   291         return;
   291         return;
   292     }
   292     }
   293     // if not it can not be set visible.
   293     // if not it can not be set visible.
   294     if (iWindow && iContainerVisible)
   294     if (iWindow && iContainerVisible)
   295     {
   295     {
   296        // iWindow->SetVisible(aValue, EFalse);
   296         // iWindow->SetVisible(aValue, EFalse);
   297        //MMAPI UI 3.x req. (had to comment above line and add below line which excutes in FS thread)
   297         //MMAPI UI 3.x req. (had to comment above line and add below line which excutes in FS thread)
   298         iWindow->SetVisible(aValue, ETrue);
   298         iWindow->SetVisible(aValue, ETrue);
   299         SetClippingRegion();
   299         SetClippingRegion();
       
   300         LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::SetVisible -");
   300     }
   301     }
   301 }
   302 }
   302 
   303 
   303 
   304 
   304 void CMMADisplay::SetContainerVisibility(TBool aValue)
   305 void CMMADisplay::SetContainerVisibility(TBool aValue)
   305 {
   306 {
   306 	iContainerVisible = aValue;
   307     iContainerVisible = aValue;
   307 	// TODO : delete the below check once implementation is done as it is used only for testing purpose
   308     // TODO : delete the below check once implementation is done as it is used only for testing purpose
   308 	if(iContainerVisible)
   309     if (iContainerVisible)
   309 	LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is visible ");
   310         LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is visible ");
   310 	else
   311     else
   311 	LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is not visible ");
   312         LOG(EJavaMMAPI,EInfo,"CMMADisplay:SetContainerVisibility(): Container is not visible ");
   312 
   313 
   313 	HandleContainerVisibilityChanged(aValue);
   314     HandleContainerVisibilityChanged(aValue);
   314 }
   315 }
   315 // from MMMADisplay
   316 // from MMMADisplay
   316 void CMMADisplay::SetWindowL(MMMADisplayWindow* aWindow)
   317 void CMMADisplay::SetWindowL(MMMADisplayWindow* aWindow)
   317 {
   318 {
   318     // Sets new window. Ownership is not transferred.
   319     // Sets new window. Ownership is not transferred.
   339     return iFullScreen;
   340     return iFullScreen;
   340 }
   341 }
   341 
   342 
   342 TBool CMMADisplay::HasContainer()
   343 TBool CMMADisplay::HasContainer()
   343 {
   344 {
   344    // return iDirectContainer != NULL;
   345     // return iDirectContainer != NULL;
   345    return EFalse;   // temporary
   346     return EFalse;   // temporary
   346 }
   347 }
   347 
   348 
   348 
   349 
   349 void CMMADisplay::HandleContainerVisibilityChanged( TBool aVisible )
   350 void CMMADisplay::HandleContainerVisibilityChanged(TBool aVisible)
   350     {
   351 {
   351     LOG1(EJavaMMAPI,EInfo, "CMMADisplay::HandleContainerVisibilityChanged aVisible = %d",
   352     LOG1(EJavaMMAPI,EInfo, "CMMADisplay::HandleContainerVisibilityChanged aVisible = %d",
   352       					                                            aVisible );
   353          aVisible);
   353     if(!iIsForeground && aVisible)
   354     if (!iIsForeground && aVisible)
   354         {
   355     {
   355         LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged Condition 1 ");
   356         LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged Condition 1 ");
   356         return;
   357         return;
   357         }
   358     }
   358 
   359 
   359     LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged After condition1");
   360     LOG(EJavaMMAPI,EInfo," CMMADisplay::HandleContainerVisibilityChanged After condition1");
   360 
   361 
   361     if (iWindow)
   362     if (iWindow)
   362     {
   363     {
   365         if (aVisible != iWindow->IsVisible())
   366         if (aVisible != iWindow->IsVisible())
   366         {
   367         {
   367             // Allow
   368             // Allow
   368             LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged Allow ");
   369             LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged Allow ");
   369         }
   370         }
   370         else if( iContainerVisible == aVisible )
   371         else if (iContainerVisible == aVisible)
   371         {
   372         {
   372             LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged iContainerVisible == aVisible ");
   373             LOG(EJavaMMAPI,EInfo,"MID::CMMADisplay::MdcContainerVisibilityChanged iContainerVisible == aVisible ");
   373             // if state is not changed, we do not need to do it again
   374             // if state is not changed, we do not need to do it again
   374             return;
   375             return;
   375         }
   376         }
   406     // To be overwritten if used
   407     // To be overwritten if used
   407     __ASSERT_LOG(EJavaMMAPI,EInfo,"EFalse, User::Invariant());
   408     __ASSERT_LOG(EJavaMMAPI,EInfo,"EFalse, User::Invariant());
   408 }
   409 }
   409 
   410 
   410 void CMMADisplay::MdcContainerWindowRectChanged(const TRect&
   411 void CMMADisplay::MdcContainerWindowRectChanged(const TRect&
   411 	                                              #ifdef RD_JAVA_NGA_ENABLED
   412                                                   #ifdef RD_JAVA_NGA_ENABLED
   412 	                                               aRect
   413                                                    aRect
   413 	                                              #endif
   414                                                   #endif
   414 	                                              )
   415                                                   )
   415     {
   416     {
   416     LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged +");
   417     LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged +");
   417 
   418 
   418     #ifdef RD_JAVA_NGA_ENABLED
   419     #ifdef RD_JAVA_NGA_ENABLED
   419     if( iWindow )
   420     if( iWindow )
   420     	{
   421         {
   421     	LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged, SetRWindowRect");
   422         LOG(EJavaMMAPI,EInfo,"CMMADisplay::MdcContainerWindowRectChanged, SetRWindowRect");
   422     	iWindow->SetRWindowRect(aRect, MMMADisplay::EUiThread);
   423         iWindow->SetRWindowRect(aRect, MMMADisplay::EUiThread);
   423     	}
   424         }
   424     #endif
   425     #endif
   425     }
   426     }
   426 void CMMADisplay::MdcContainerDestroyed()
   427 void CMMADisplay::MdcContainerDestroyed()
   427 {
   428 {
   428     LOG(EJavaMMAPI,EInfo,"MMA::CMMADisplay::MdcContainerDestroyed");
   429     LOG(EJavaMMAPI,EInfo,"MMA::CMMADisplay::MdcContainerDestroyed");
   465 */
   466 */
   466 
   467 
   467 
   468 
   468 void CMMADisplay::GetCallbackInUiThread(TInt placeholder)
   469 void CMMADisplay::GetCallbackInUiThread(TInt placeholder)
   469 {
   470 {
   470 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread +");
   471     LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread +");
   471 
   472 
   472 
   473 
   473 
   474 
   474 
   475 
   475 
   476 
   476 
   477 
   477 
   478 
   478 
   479 
   479 	 jmethodID getCallBackMethodID = iJni->GetMethodID(
   480     jmethodID getCallBackMethodID = iJni->GetMethodID(
   480                                          iJavaDisplayClass,
   481                                         iJavaDisplayClass,
   481                                          "GetCallbackInUiThread",
   482                                         "GetCallbackInUiThread",
   482                                          "(I)V");
   483                                         "(I)V");
   483    // LOG1(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread getCallBackMethodID = %d",getCallBackMethodID);
   484     // LOG1(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread getCallBackMethodID = %d",getCallBackMethodID);
   484     iJni->CallVoidMethod(iJavaDisplayObject,getCallBackMethodID,placeholder);
   485     iJni->CallVoidMethod(iJavaDisplayObject,getCallBackMethodID,placeholder);
   485 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread -");
   486     LOG(EJavaMMAPI,EInfo,"CMMADisplay::GetCallbackInUiThread -");
   486 }
   487 }
   487 
   488 
   488 void CMMADisplay::CalledBackInUiThread(TInt placeholder)
   489 void CMMADisplay::CalledBackInUiThread(TInt placeholder)
   489 {
   490 {
   490 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread +");
   491     LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread +");
   491 		iWindow->UICallback(placeholder);
   492     iWindow->UICallback(placeholder);
   492 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread -");
   493     LOG(EJavaMMAPI,EInfo,"CMMADisplay::CalledBackInUiThread -");
   493 
   494 
   494 }
   495 }
   495 
   496 
   496 void CMMADisplay::SourceSizeChanged(TInt aJavaControlWidth, TInt aJavaControlHeight)
   497 
   497 	{
   498 
   498 		LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + aJavaControlWidth = %d ,aJavaControlHeight = %d",aJavaControlWidth,aJavaControlHeight);
   499 void CMMADisplay::SetWindowResources(QWidget* qtWidget)
   499 		iSourceSize = SourceSize();
   500 {
   500 		LOG2(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) + sourcesize = %d X %d",iSourceSize.iWidth , iSourceSize.iHeight);
   501     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources +");
   501 		#ifdef RD_JAVA_NGA_ENABLED
   502     CCoeControl* control = 0;
   502     if ( iWindow )
   503     if (qtWidget && qtWidget ->winId())
   503 			{
   504     {
   504     	iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, iSourceSize ) );
   505         control = reinterpret_cast<CCoeControl*>(qtWidget->winId());
   505     	}
   506     }
   506     #endif
   507 
   507 
   508     CCoeEnv *coeEnv = control->ControlEnv();
   508     // size of canvas in java
   509     RWsSession * iWs = &(coeEnv->WsSession());
   509     TSize canvasSize(aJavaControlWidth, aJavaControlHeight);
   510     CWsScreenDevice* iScreenDevice = coeEnv->ScreenDevice();
   510     fullScreenSize = canvasSize;
   511     RWindowBase* window = static_cast<RWindowBase*>(control->DrawableWindow());
   511     TBool sourceIsBigger = (iSourceSize.iWidth > fullScreenSize.iWidth ||
   512     if (!iWindow)
   512                             iSourceSize.iHeight > fullScreenSize.iHeight);
   513     {
       
   514         return;
       
   515     }
       
   516     iWindow->ProcureWindowResourcesFromQWidget(iWs,iScreenDevice,window);
       
   517     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources -");
       
   518 }
       
   519 
       
   520 
       
   521 void CMMADisplay::SetForeground(TBool aForeground, TBool aUseEventServer)
       
   522 {
       
   523     LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SetForeground %d", aForeground);
       
   524     iIsForeground = aForeground;
       
   525 
       
   526     if (aForeground)
       
   527     {
       
   528         if (iContainerVisible && !iWindow->IsVisible())
       
   529         {
       
   530             iWindow->SetVisible(ETrue, aUseEventServer);
       
   531         }
       
   532     }
       
   533     else
       
   534     {
       
   535         if (iWindow->IsVisible())
       
   536         {
       
   537             iWindow->SetVisible(EFalse, aUseEventServer);
       
   538         }
       
   539     }
       
   540 }
       
   541 
       
   542 TSize CMMADisplay::SourceSize()
       
   543 {
       
   544     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetSourceSizeToDisplay ");
       
   545     return iUiPlayer->SourceSize();
       
   546 }
       
   547 
       
   548 void CMMADisplay::SetUIPlayer(MMMAGuiPlayer* player)
       
   549 {
       
   550     iUiPlayer = player;
       
   551 }
       
   552 
       
   553 
       
   554 void CMMADisplay::SourceSizeChanged(const TSize& aSourceSize)
       
   555 {
       
   556     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged");
       
   557 
       
   558 #ifdef RD_JAVA_NGA_ENABLED
       
   559     if (iWindow)
       
   560     {
       
   561         iWindow->SetVideoCropRegion(TRect(iUserRect.iTl, aSourceSize));
       
   562     }
       
   563 #endif
       
   564 
       
   565     iSourceSize = aSourceSize;
       
   566     LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SourceSizeChanged %d",
       
   567          aSourceSize.iWidth);
       
   568     LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SourceSizeChanged %d",
       
   569          aSourceSize.iHeight);
       
   570     jmethodID getDisplayWidthID = iJni->GetMethodID(
       
   571                                       iJavaDisplayClass,
       
   572                                       "getDisplayWidth",
       
   573                                       "()I");
       
   574 
       
   575     jmethodID getDisplayHeightID = iJni->GetMethodID(
       
   576                                        iJavaDisplayClass,
       
   577                                        "getDisplayHeight",
       
   578                                        "()I");
       
   579 
       
   580 
       
   581     TInt x =  iJni->CallIntMethod(iJavaDisplayObject,getDisplayWidthID);
       
   582     TInt y = iJni->CallIntMethod(iJavaDisplayObject,getDisplayHeightID);
       
   583     LOG2(EJavaMMAPI,EInfo,"CMMADisplay.cpp : SourceSizeChanged () iFullScreenSize is x = %d ,y = %d ",x,y);
       
   584     // get the ScreenSize from canvas in java
       
   585     TSize canvasSize(x, y);
       
   586     iFullScreenSize = canvasSize;
       
   587     TBool sourceIsBigger = (aSourceSize.iWidth > iFullScreenSize.iWidth ||
       
   588                             aSourceSize.iHeight > iFullScreenSize.iHeight);
   513 
   589 
   514     if (sourceIsBigger)
   590     if (sourceIsBigger)
   515     {
   591     {
   516         // Source is larger than display area.
   592         // Source is larger than display area.
   517         // Shrink draw are to fit in display.
   593         // Shrink draw are to fit in display.
   518         iWindow->SetDrawRect(ScaleToFullScreen(fullScreenSize, iSourceSize));
   594         iWindow->SetDrawRect(ScaleToFullScreen(iFullScreenSize, iSourceSize));
   519     }
   595     }
   520     else
   596     else
   521     {
   597     {
   522         // source is smaller than display area
   598         // source is smaller than display area
   523         iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
   599         iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
   534         {
   610         {
   535             // Addjusting rect to top left corner.
   611             // Addjusting rect to top left corner.
   536             iUserRect = TRect(iUserRect.Size());
   612             iUserRect = TRect(iUserRect.Size());
   537         }
   613         }
   538     }
   614     }
   539 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged(aSourceSize,aJavaControlWidth,aJavaControlHeight) -");
   615 }
   540 	}
   616 
   541 
   617 
   542 void CMMADisplay::SetWindowResources(QWidget* qtWidget)
   618 
   543 	{
   619 void CMMADisplay::SetDisplayPosition(TInt /*uiControlLocationX*/,TInt /*uiControlLocationY*/,TInt   videoControlLocationX,TInt videoControlLocationY)
   544 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources +");
   620 {
   545 		CCoeControl* control = 0;
   621     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged + ");
   546 		if(qtWidget && qtWidget ->winId())
   622     TPoint point(videoControlLocationX ,videoControlLocationY);
   547 			{
   623     //calling derived class fuction
   548 				control = reinterpret_cast<CCoeControl*>(qtWidget->winId());
   624     TRAP_IGNORE(SetDisplayLocationL(point));
   549 			}
   625     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged - ");
   550 
       
   551 		CCoeEnv *coeEnv = control->ControlEnv();
       
   552 		RWsSession * iWs = &(coeEnv->WsSession());
       
   553 		CWsScreenDevice* iScreenDevice = coeEnv->ScreenDevice();
       
   554     RWindowBase* window = static_cast<RWindowBase*>(control->DrawableWindow());
       
   555     if (!iWindow)
       
   556     {
       
   557        return;
       
   558     }
       
   559      iWindow->ProcureWindowResourcesFromQWidget(iWs,iScreenDevice,window);
       
   560      LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetWindowResources -");
       
   561 	}
       
   562 
       
   563 
       
   564 void CMMADisplay::SetForeground(TBool aForeground, TBool aUseEventServer)
       
   565 {
       
   566     LOG1(EJavaMMAPI,EInfo,"MMA::CMMADisplay::SetForeground %d", aForeground);
       
   567     iIsForeground = aForeground;
       
   568 
       
   569     if (aForeground)
       
   570     {
       
   571         if (iContainerVisible && !iWindow->IsVisible())
       
   572         {
       
   573             iWindow->SetVisible(ETrue, aUseEventServer);
       
   574         }
       
   575     }
       
   576     else
       
   577     {
       
   578         if (iWindow->IsVisible())
       
   579         {
       
   580             iWindow->SetVisible(EFalse, aUseEventServer);
       
   581         }
       
   582     }
       
   583 }
       
   584 
       
   585 TSize CMMADisplay::SourceSize()
       
   586 	{
       
   587 		LOG(EJavaMMAPI,EInfo,"CMMADisplay::SetSourceSizeToDisplay ");
       
   588 		 return iUiPlayer->SourceSize();
       
   589 	}
       
   590 	
       
   591 void CMMADisplay::SetUIPlayer(MMMAGuiPlayer* player)
       
   592 	{
       
   593 		iUiPlayer = player;
       
   594 	}
       
   595 
       
   596 	
       
   597 void CMMADisplay::SourceSizeChanged(const TSize& aSourceSize)
       
   598 {
       
   599     LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged");
       
   600     
       
   601 		#ifdef RD_JAVA_NGA_ENABLED
       
   602     if ( iWindow )
       
   603 			{
       
   604     	iWindow->SetVideoCropRegion( TRect( iUserRect.iTl, aSourceSize ) );
       
   605     	}
       
   606     #endif
       
   607 
       
   608     iSourceSize = aSourceSize;
       
   609     jmethodID getDisplayWidthID = iJni->GetMethodID(
       
   610                                          iJavaDisplayClass,
       
   611                                          "getDisplayWidth",
       
   612                                          "()I");
       
   613 
       
   614     jmethodID getDisplayHeightID = iJni->GetMethodID(
       
   615                                          iJavaDisplayClass,
       
   616                                          "getDisplayHeight",
       
   617                                          "()I");
       
   618 
       
   619 
       
   620     TInt x =  iJni->CallIntMethod(iJavaDisplayObject,getDisplayWidthID);
       
   621     TInt y = iJni->CallIntMethod(iJavaDisplayObject,getDisplayHeightID);
       
   622 		LOG2(EJavaMMAPI,EInfo,"CMMADisplay.cpp : SourceSizeChanged () fullScreenSize is x = %d ,y = %d ",x,y);
       
   623 		// get the ScreenSize from canvas in java
       
   624     TSize canvasSize(x, y);
       
   625     fullScreenSize = canvasSize;
       
   626     TBool sourceIsBigger = (aSourceSize.iWidth > fullScreenSize.iWidth ||
       
   627                             aSourceSize.iHeight > fullScreenSize.iHeight);
       
   628 
       
   629     if (sourceIsBigger)
       
   630     {
       
   631         // Source is larger than display area.
       
   632         // Shrink draw are to fit in display.
       
   633         iWindow->SetDrawRect(ScaleToFullScreen(fullScreenSize, iSourceSize));
       
   634     }
       
   635     else
       
   636     {
       
   637         // source is smaller than display area
       
   638         iWindow->SetDrawRect(TRect(iUserRect.iTl, iSourceSize));
       
   639     }
       
   640 
       
   641     SetClippingRegion();
       
   642 
       
   643     if (iUserRect.IsEmpty())
       
   644     {
       
   645         // Java side hasn't set size.
       
   646         iUserRect = iWindow->DrawRect();
       
   647 
       
   648         if (!sourceIsBigger)
       
   649         {
       
   650             // Addjusting rect to top left corner.
       
   651             iUserRect = TRect(iUserRect.Size());
       
   652         }
       
   653     }
       
   654 }
       
   655 
       
   656 
       
   657 
       
   658 void CMMADisplay::SetDisplayPosition(TInt uiControlLocationX,TInt uiControlLocationY,TInt	videoControlLocationX,TInt videoControlLocationY)
       
   659 {
       
   660 	 	LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged + ");
       
   661 		TPoint point(videoControlLocationX ,videoControlLocationY);
       
   662 		//calling derived class fuction
       
   663 	 	SetDisplayLocationL(point);
       
   664 	  LOG(EJavaMMAPI,EInfo,"CMMADisplay::SourceSizeChanged - ");
       
   665 }
   626 }
   666 
   627 
   667 
   628 
   668 void CMMADisplay::ResetJavaRectObject(const TRect& aRect)
   629 void CMMADisplay::ResetJavaRectObject(const TRect& aRect)
   669 	{
   630 {
   670 	LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject +");
   631     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject +");
   671 	JNIEnv* validJni = iEventSource->getValidJniEnv();
   632     JNIEnv* validJni = iEventSource->getValidJniEnv();
   672   jmethodID setRectID = validJni->GetMethodID(
   633     jmethodID setRectID = validJni->GetMethodID(
   673 	                                         iJavaDisplayClass,
   634                               iJavaDisplayClass,
   674 	                                         "setRect",
   635                               "setRect",
   675                                          "()V");
   636                               "()V");
   676 
   637 
   677   LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --1");
   638     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --1");
   678   // set the value to java,so that we can access those from array
   639     // set the value to java,so that we can access those from array
   679   jfieldID field = validJni->GetFieldID(iJavaDisplayClass, "rectDimension", "[I");
   640     jfieldID field = validJni->GetFieldID(iJavaDisplayClass, "rectDimension", "[I");
   680   if(field == NULL)
   641     if (field == NULL)
   681   {
   642     {
   682 	  // handle error
   643         // handle error
   683   }
   644     }
   684   /* Write to the instance fields */
   645     /* Write to the instance fields */
   685   jintArray javaDimensionarr = (jintArray)validJni->GetObjectField(iJavaDisplayObject, field);
   646     jintArray javaDimensionarr = (jintArray)validJni->GetObjectField(iJavaDisplayObject, field);
   686   LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --2");
   647     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --2");
   687   jint* nativeRectDimensionArr = validJni->GetIntArrayElements(javaDimensionarr, NULL);
   648     jint* nativeRectDimensionArr = validJni->GetIntArrayElements(javaDimensionarr, NULL);
   688   LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --3");
   649     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject --3");
   689     if (!nativeRectDimensionArr)
   650     if (!nativeRectDimensionArr)
   690     {    // inputBuffer was already allocated
   651     {
       
   652         // inputBuffer was already allocated
   691         validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_ABORT);
   653         validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_ABORT);
   692         LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject Error in resetting rect dimension to java");
   654         LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject Error in resetting rect dimension to java");
   693         return;
   655         return;
   694     }
   656     }
   695   nativeRectDimensionArr[0] = aRect.iTl.iX;
   657     nativeRectDimensionArr[0] = aRect.iTl.iX;
   696   nativeRectDimensionArr[1] = aRect.iTl.iY;;
   658     nativeRectDimensionArr[1] = aRect.iTl.iY;;
   697   nativeRectDimensionArr[2] = aRect.Width();
   659     nativeRectDimensionArr[2] = aRect.Width();
   698   nativeRectDimensionArr[3] = aRect.Height();
   660     nativeRectDimensionArr[3] = aRect.Height();
   699    // Now the dimension array in java is updated hence reset the java rect
   661     // Now the dimension array in java is updated hence reset the java rect
   700    validJni->CallVoidMethod(iJavaDisplayObject,setRectID);
   662     validJni->CallVoidMethod(iJavaDisplayObject,setRectID);
   701     
   663 
   702    validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_COMMIT);
   664     validJni->ReleaseIntArrayElements(javaDimensionarr, nativeRectDimensionArr, JNI_COMMIT);
   703    LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject -");
   665     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::ResetJavaRectObject -");
   704 }
   666 }
   705 
   667 
   706 
   668 
   707 void CMMADisplay::SetContentBoundToJavaControl(const TRect& aRect)
   669 void CMMADisplay::SetContentBoundToJavaControl(const TRect& aRect)
   708 	{
   670 {
   709 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl +");
   671     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl +");
   710 		JNIEnv* validJni = iEventSource->getValidJniEnv();
   672     JNIEnv* validJni = iEventSource->getValidJniEnv();
   711 		// Reset the java rect
   673     // Reset the java rect
   712 		ResetJavaRectObject(aRect);
   674     ResetJavaRectObject(aRect);
   713 		jmethodID setContentBoundID = validJni->GetMethodID(
   675     jmethodID setContentBoundID = validJni->GetMethodID(
   714 	                                         iJavaDisplayClass,
   676                                       iJavaDisplayClass,
   715 	                                         "setContentBound",
   677                                       "setContentBound",
       
   678                                       "()V");
       
   679     // call java function
       
   680     validJni->CallVoidMethod(iJavaDisplayObject,setContentBoundID);
       
   681     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl -");
       
   682 }
       
   683 
       
   684 void CMMADisplay::RemoveContentBoundFromJavaControl(const TRect& aRect)
       
   685 {
       
   686     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl +");
       
   687     JNIEnv* validJni = iEventSource->getValidJniEnv();
       
   688     // Reset the java rect
       
   689     ResetJavaRectObject(aRect);
       
   690     jmethodID removeContentBoundID = validJni->GetMethodID(
       
   691                                          iJavaDisplayClass,
       
   692                                          "removeContentBound",
   716                                          "()V");
   693                                          "()V");
   717     // call java function                                     
   694     // call java function
   718 		validJni->CallVoidMethod(iJavaDisplayObject,setContentBoundID);
   695     validJni->CallVoidMethod(iJavaDisplayObject,removeContentBoundID);
   719 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::SetContentBoundToJavaControl -");
   696     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl -");
   720 	}
   697 }
   721 	
   698 
   722 void CMMADisplay::RemoveContentBoundFromJavaControl(const TRect& aRect)
   699 void CMMADisplay::RefreshJavaControl()
   723 	{
   700 {
   724 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl +");
   701     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl +");
   725 		JNIEnv* validJni = iEventSource->getValidJniEnv();
   702     JNIEnv* validJni = iEventSource->getValidJniEnv();
   726 		// Reset the java rect
   703     // Reset the java rect
   727 		ResetJavaRectObject(aRect);
   704     //ResetJavaRectObject(aRect);
   728 		jmethodID removeContentBoundID = validJni->GetMethodID(
   705     jmethodID redrawControlID = validJni->GetMethodID(
   729 	                                         iJavaDisplayClass,
   706                                     iJavaDisplayClass,
   730 	                                         "removeContentBound",
   707                                     "redrawControl",
   731                                          "()V");
   708                                     "()V");
   732     // call java function                                     
   709     // call java function
   733 		validJni->CallVoidMethod(iJavaDisplayObject,removeContentBoundID);
   710     validJni->CallVoidMethod(iJavaDisplayObject,redrawControlID);
   734 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RemoveContentBoundFromJavaControl -");
   711     LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl -");
   735 	}	
   712 }
   736 	
   713 
   737 void CMMADisplay::RefreshJavaControl(const TRect& aRect)
       
   738 	{
       
   739 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl +");
       
   740 		JNIEnv* validJni = iEventSource->getValidJniEnv();
       
   741 		// Reset the java rect
       
   742 		//ResetJavaRectObject(aRect);
       
   743 		jmethodID redrawControlID = validJni->GetMethodID(
       
   744 	                                         iJavaDisplayClass,
       
   745 	                                         "redrawControl",
       
   746                                          "()V");
       
   747     // call java function                                     
       
   748 		validJni->CallVoidMethod(iJavaDisplayObject,redrawControlID);
       
   749 		LOG(EJavaMMAPI,EInfo,"MMA::CMMACanvasDisplay::RefreshJavaControl -");
       
   750 	}		
       
   751 	
       
   752 //  END OF FILE
   714 //  END OF FILE