M build-tests.xml
- make NavigationTest not run M build.xml - Move Win32BrowserControlCanvas up to parent package M classes_spec/org/mozilla/webclient/BrowserControlCanvas.java - You can't resize until you're initialized - pass visibility through to native layer M classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java - Use WrapperFactory to create the BrowserControlCanvas impl. A classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java - moved up from child package M classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java - use the new thread model for nativeSetBounds(), nativeRealize(), nativeSetVisible(). M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java - make this create the BrowserControlCanvas instance. - honor the new package name for Win32BrowserControlCanvas. R classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java - moved up one level. M src_moz/EmbedWindow.cpp M src_moz/EmbedWindow.h - Take size parameters to CreateWindow_ M src_moz/Makefile.in - add WindowControlImpl.cpp M src_moz/NativeBrowserControl.cpp M src_moz/NativeBrowserControl.h - add size parameters to Realize(). M src_moz/WindowControlImpl.cpp - reactivate nativeRealize(), nativeSetVisible(), nativesetBounds(), M src_moz/win32/Win32BrowserControlCanvas.cpp - new package name M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java - we have to create a Canvas to load a URL. Mozilla limitation. M test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java - remove unneeded test metdod git-svn-id: svn://10.0.0.236/trunk@155219 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -52,7 +52,7 @@ import java.awt.*;
|
||||
|
||||
* See concrete subclasses for scope info.
|
||||
|
||||
* @version $Id: BrowserControlCanvas.java,v 1.6 2003-09-06 06:26:45 edburns%acm.org Exp $
|
||||
* @version $Id: BrowserControlCanvas.java,v 1.7 2004-04-20 16:17:41 edburns%acm.org Exp $
|
||||
|
||||
* @see org.mozilla.webclient.win32.Win32BrowserControlCanvas
|
||||
|
||||
@@ -227,6 +227,9 @@ protected Rectangle getBoundsRelativeToWindow ()
|
||||
|
||||
public void setBounds(int x, int y, int w, int h)
|
||||
{
|
||||
if (!initializeOK) {
|
||||
throw new IllegalStateException("Can't resize canvas before adding it to parent");
|
||||
}
|
||||
super.setBounds(x, y, w, h);
|
||||
Rectangle boundsRect = new Rectangle(0, 0, w - 1, h - 1);
|
||||
if (webShell != null) {
|
||||
@@ -255,6 +258,20 @@ public void setBounds(Rectangle rect)
|
||||
super.setBounds(rect);
|
||||
}
|
||||
|
||||
public void setVisible(boolean b) {
|
||||
try {
|
||||
WindowControl wc = (WindowControl)
|
||||
webShell.queryInterface(BrowserControl.WINDOW_CONTROL_NAME);
|
||||
wc.setVisible(b);
|
||||
}
|
||||
catch(Exception ex) {
|
||||
System.out.println("Can't setVisible(" + b + ") " +
|
||||
ex.getMessage());
|
||||
|
||||
}
|
||||
super.setVisible(b);
|
||||
}
|
||||
|
||||
} // class BrowserControlCanvas
|
||||
|
||||
|
||||
|
||||
@@ -186,7 +186,12 @@ public Object queryInterface(String interfaceName) throws ClassNotFoundException
|
||||
return history;
|
||||
}
|
||||
if (BROWSER_CONTROL_CANVAS_NAME.equals(interfaceName)) {
|
||||
Assert.assert_it(null != myCanvas);
|
||||
if (null == myCanvas) {
|
||||
myCanvas =
|
||||
(BrowserControlCanvas)
|
||||
wrapperFactory.newImpl(BROWSER_CONTROL_CANVAS_NAME,
|
||||
this);
|
||||
}
|
||||
return myCanvas;
|
||||
}
|
||||
if (CURRENT_PAGE_NAME.equals(interfaceName)) {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
/*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
@@ -20,7 +19,7 @@
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
package org.mozilla.webclient.impl.wrapper_native.win32;
|
||||
package org.mozilla.webclient.impl.wrapper_native;
|
||||
|
||||
// Win32BrowserControlCanvas.java
|
||||
|
||||
@@ -28,6 +27,9 @@ import org.mozilla.util.Assert;
|
||||
import org.mozilla.util.Log;
|
||||
import org.mozilla.util.ParameterCheck;
|
||||
|
||||
import org.mozilla.webclient.impl.wrapper_native.WCRunnable;
|
||||
import org.mozilla.webclient.impl.wrapper_native.NativeEventThread;
|
||||
|
||||
/**
|
||||
|
||||
* Win32RaptorCanvas provides a concrete realization
|
||||
@@ -37,7 +39,7 @@ import org.mozilla.util.ParameterCheck;
|
||||
|
||||
* There is one instance of the BrowserControlCanvas per top level awt Frame.
|
||||
|
||||
* @version $Id: Win32BrowserControlCanvas.java,v 1.1 2003-09-28 06:29:10 edburns%acm.org Exp $
|
||||
* @version $Id: Win32BrowserControlCanvas.java,v 1.1 2004-04-20 16:17:41 edburns%acm.org Exp $
|
||||
*
|
||||
* @see org.mozilla.webclient.BrowserControlCanvasFactory
|
||||
*
|
||||
@@ -64,7 +66,15 @@ public class Win32BrowserControlCanvas extends BrowserControlCanvas {
|
||||
*
|
||||
* @returns The native window handle.
|
||||
*/
|
||||
protected int getWindow() {
|
||||
return this.getHandleToPeer();
|
||||
}
|
||||
protected int getWindow() {
|
||||
Integer result = (Integer)
|
||||
NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable(){
|
||||
public Object run() {
|
||||
Integer result =
|
||||
new Integer(Win32BrowserControlCanvas.this.getHandleToPeer());
|
||||
return result;
|
||||
}
|
||||
});
|
||||
return result.intValue();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
/*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
@@ -79,23 +78,41 @@ public WindowControlImpl(WrapperFactory yourFactory,
|
||||
// Methods from WindowControl
|
||||
//
|
||||
|
||||
public void setBounds(Rectangle newBounds)
|
||||
public void setBounds(Rectangle rect)
|
||||
{
|
||||
ParameterCheck.nonNull(newBounds);
|
||||
ParameterCheck.nonNull(rect);
|
||||
getWrapperFactory().verifyInitialized();
|
||||
Assert.assert_it(-1 != getNativeBrowserControl());
|
||||
|
||||
synchronized(getBrowserControl()) {
|
||||
nativeSetBounds(getNativeBrowserControl(), newBounds.x, newBounds.y,
|
||||
newBounds.width, newBounds.height);
|
||||
}
|
||||
final Rectangle newBounds = rect;
|
||||
NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
|
||||
public Object run() {
|
||||
nativeSetBounds(getNativeBrowserControl(),
|
||||
newBounds.x, newBounds.y,
|
||||
newBounds.width, newBounds.height);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void createWindow(int nativeWindow, Rectangle bounds)
|
||||
public void createWindow(int nativeWindow, Rectangle rect)
|
||||
{
|
||||
ParameterCheck.greaterThan(nativeWindow, 0);
|
||||
ParameterCheck.nonNull(bounds);
|
||||
ParameterCheck.nonNull(rect);
|
||||
getWrapperFactory().verifyInitialized();
|
||||
final int nativeWin = nativeWindow;
|
||||
final int nativeBc = getNativeBrowserControl();
|
||||
final BrowserControl bc = getBrowserControl();
|
||||
final Rectangle bounds = rect;
|
||||
NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
|
||||
public Object run() {
|
||||
nativeRealize(nativeWin, nativeBc, bounds.x,
|
||||
bounds.y, bounds.width,
|
||||
bounds.height, bc);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int getNativeWebShell()
|
||||
@@ -134,10 +151,13 @@ public void repaint(boolean forceRepaint)
|
||||
public void setVisible(boolean newState)
|
||||
{
|
||||
getWrapperFactory().verifyInitialized();
|
||||
|
||||
synchronized(getBrowserControl()) {
|
||||
nativeSetVisible(getNativeBrowserControl(), newState);
|
||||
}
|
||||
final boolean finalBool = newState;
|
||||
NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
|
||||
public Object run() {
|
||||
nativeSetVisible(getNativeBrowserControl(), finalBool);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setFocus()
|
||||
@@ -152,6 +172,11 @@ public void setFocus()
|
||||
// Native methods
|
||||
//
|
||||
|
||||
public native void nativeRealize(int nativeWindow,
|
||||
int nativeBrowserControl,
|
||||
int x, int y, int width, int height,
|
||||
BrowserControl myBrowserControlImpl);
|
||||
|
||||
public native void nativeSetBounds(int webShellPtr, int x, int y,
|
||||
int w, int h);
|
||||
|
||||
@@ -178,7 +203,7 @@ public static void main(String [] args)
|
||||
|
||||
Log.setApplicationName("WindowControlImpl");
|
||||
Log.setApplicationVersion("0.0");
|
||||
Log.setApplicationVersionDate("$Id: WindowControlImpl.java,v 1.3 2004-04-10 21:50:38 edburns%acm.org Exp $");
|
||||
Log.setApplicationVersionDate("$Id: WindowControlImpl.java,v 1.4 2004-04-20 16:17:41 edburns%acm.org Exp $");
|
||||
|
||||
try {
|
||||
org.mozilla.webclient.BrowserControlFactory.setAppData(args[0]);
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.mozilla.util.Log;
|
||||
import org.mozilla.util.ParameterCheck;
|
||||
|
||||
import org.mozilla.webclient.BrowserControl;
|
||||
import org.mozilla.webclient.BrowserControlCanvas;
|
||||
import org.mozilla.webclient.impl.BrowserControlImpl;
|
||||
import org.mozilla.webclient.Bookmarks;
|
||||
import org.mozilla.webclient.Preferences;
|
||||
@@ -201,43 +202,56 @@ public class WrapperFactoryImpl extends Object implements WrapperFactory {
|
||||
|
||||
public Object newImpl(String interfaceName,
|
||||
BrowserControl browserControl) throws ClassNotFoundException {
|
||||
Object result = null;
|
||||
|
||||
synchronized(this) {
|
||||
if (!nativeDoesImplement(interfaceName)) {
|
||||
throw new ClassNotFoundException("Can't instantiate " +
|
||||
interfaceName +
|
||||
": not implemented.");
|
||||
if (BrowserControl.BROWSER_CONTROL_CANVAS_NAME == interfaceName) {
|
||||
Class bcClass = Class.forName(getPlatformCanvasClassName());
|
||||
BrowserControlCanvas canvas = null;
|
||||
try {
|
||||
canvas = (BrowserControlCanvas) bcClass.newInstance();
|
||||
}
|
||||
if (BrowserControl.WINDOW_CONTROL_NAME == interfaceName) {
|
||||
result = new WindowControlImpl(this, browserControl);
|
||||
catch (IllegalAccessException e) {
|
||||
throw new ClassNotFoundException(e.getMessage());
|
||||
}
|
||||
if (BrowserControl.NAVIGATION_NAME == interfaceName) {
|
||||
result = new NavigationImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.HISTORY_NAME == interfaceName) {
|
||||
result = new HistoryImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.CURRENT_PAGE_NAME == interfaceName) {
|
||||
result = new CurrentPageImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.EVENT_REGISTRATION_NAME == interfaceName) {
|
||||
result = new EventRegistrationImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.BOOKMARKS_NAME == interfaceName) {
|
||||
Assert.assert_it(null != bookmarks);
|
||||
result = bookmarks;
|
||||
}
|
||||
if (BrowserControl.PREFERENCES_NAME == interfaceName) {
|
||||
Assert.assert_it(null != prefs);
|
||||
result = prefs;
|
||||
}
|
||||
if (BrowserControl.PROFILE_MANAGER_NAME == interfaceName) {
|
||||
Assert.assert_it(null != profileManager);
|
||||
result = profileManager;
|
||||
catch (InstantiationException e) {
|
||||
throw new ClassNotFoundException(e.getMessage());
|
||||
}
|
||||
canvas.initialize(browserControl);
|
||||
return canvas;
|
||||
}
|
||||
|
||||
Object result = null;
|
||||
if (!nativeDoesImplement(interfaceName)) {
|
||||
throw new ClassNotFoundException("Can't instantiate " +
|
||||
interfaceName +
|
||||
": not implemented.");
|
||||
}
|
||||
if (BrowserControl.WINDOW_CONTROL_NAME == interfaceName) {
|
||||
result = new WindowControlImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.NAVIGATION_NAME == interfaceName) {
|
||||
result = new NavigationImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.HISTORY_NAME == interfaceName) {
|
||||
result = new HistoryImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.CURRENT_PAGE_NAME == interfaceName) {
|
||||
result = new CurrentPageImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.EVENT_REGISTRATION_NAME == interfaceName) {
|
||||
result = new EventRegistrationImpl(this, browserControl);
|
||||
}
|
||||
if (BrowserControl.BOOKMARKS_NAME == interfaceName) {
|
||||
Assert.assert_it(null != bookmarks);
|
||||
result = bookmarks;
|
||||
}
|
||||
if (BrowserControl.PREFERENCES_NAME == interfaceName) {
|
||||
Assert.assert_it(null != prefs);
|
||||
result = prefs;
|
||||
}
|
||||
if (BrowserControl.PROFILE_MANAGER_NAME == interfaceName) {
|
||||
Assert.assert_it(null != profileManager);
|
||||
result = profileManager;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -379,7 +393,7 @@ protected String getPlatformCanvasClassName()
|
||||
|
||||
if (null != osName) {
|
||||
if (-1 != osName.indexOf("indows")) {
|
||||
platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.win32.Win32BrowserControlCanvas";
|
||||
platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.Win32BrowserControlCanvas";
|
||||
}
|
||||
else {
|
||||
platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.gtk.GtkBrowserControlCanvas";
|
||||
|
||||
Reference in New Issue
Block a user