Mercurial > hg > release > icedtea-1.9
changeset 1683:aa17512747b1
Wire in the JavaConsole coded by Omair.
author | Deepak Bhole <dbhole@redhat.com> |
---|---|
date | Wed, 25 Feb 2009 16:38:54 -0500 |
parents | 9259bc9bee36 |
children | 5737c17b493d |
files | ChangeLog IcedTeaPlugin.cc plugin/icedtea/sun/applet/JavaConsole.java plugin/icedtea/sun/applet/PluginStreamHandler.java |
diffstat | 4 files changed, 72 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Feb 25 13:34:13 2009 -0500 +++ b/ChangeLog Wed Feb 25 16:38:54 2009 -0500 @@ -1,3 +1,13 @@ +2009-02-25 Deepak Bhole <dbhole@redhat.com> + + * IcedTeaPlugin.cc: Implement Show/Hide from IJVMConsole, remove + IJVMPerfWindow stubs, as they were empty and unused. + * plugin/icedtea/sun/applet/JavaConsole.java: Pack components inside panel + rather than directly in the frame, to fix sizing issues. Addition + sizing/divider related code changes for aesthetics. + * plugin/icedtea/sun/applet/PluginStreamHandler.java: Wire in + showconsole/hideconsole functionality. + 2009-02-25 Omair Majid <omajid@redhat.com> * plugin/icedtea/sun/applet/PluginMain.java:
--- a/IcedTeaPlugin.cc Wed Feb 25 13:34:13 2009 -0500 +++ b/IcedTeaPlugin.cc Wed Feb 25 16:38:54 2009 -0500 @@ -715,7 +715,7 @@ #include <nsIFactory.h> #include <nsIPlugin.h> #include <nsIJVMManager.h> -#include <nsIJVMPrefsWindow.h> +#include <nsIJVMConsole.h> #include <nsIJVMPlugin.h> #include <nsIInputStream.h> #include <nsIAsyncInputStream.h> @@ -933,8 +933,8 @@ // nsIPlugin inherits from nsIFactory. class IcedTeaPluginFactory : public nsIPlugin, public nsIJVMManager, - public nsIJVMPrefsWindow, public nsIJVMPlugin, + public nsIJVMConsole, public nsIInputStreamCallback { public: @@ -942,11 +942,12 @@ NS_DECL_NSIFACTORY NS_DECL_NSIPLUGIN NS_DECL_NSIJVMMANAGER - // nsIJVMPrefsWindow does not provide an NS_DECL macro. + // nsIJVMConsole does not provide an NS_DECL macro. public: NS_IMETHOD Show (void); NS_IMETHOD Hide (void); NS_IMETHOD IsVisible (PRBool* result); + NS_IMETHOD Print(const char* msg, const char* encodingName = NULL); // nsIJVMPlugin does not provide an NS_DECL macro. public: NS_IMETHOD AddToClassPath (char const* dirPath); @@ -1472,7 +1473,7 @@ } NS_IMPL_ISUPPORTS6 (IcedTeaPluginFactory, nsIFactory, nsIPlugin, nsIJVMManager, - nsIJVMPrefsWindow, nsIJVMPlugin, nsIInputStreamCallback) + nsIJVMPlugin, nsIJVMConsole, nsIInputStreamCallback) // IcedTeaPluginFactory functions. IcedTeaPluginFactory::IcedTeaPluginFactory () @@ -1785,19 +1786,23 @@ return NS_ERROR_NOT_IMPLEMENTED; } -// nsIJVMPrefsWindow functions. +#include <typeinfo> + +// nsIJVMConsole functions. NS_IMETHODIMP IcedTeaPluginFactory::Show (void) { - NOT_IMPLEMENTED (); - return NS_ERROR_NOT_IMPLEMENTED; + nsCString msg("showconsole"); + this->SendMessageToAppletViewer(msg); + return NS_OK; } NS_IMETHODIMP IcedTeaPluginFactory::Hide (void) { - NOT_IMPLEMENTED (); - return NS_ERROR_NOT_IMPLEMENTED; + nsCString msg("hideconsole"); + this->SendMessageToAppletViewer(msg); + return NS_OK; } NS_IMETHODIMP @@ -2281,6 +2286,13 @@ gtk_widget_destroy (dialog); } + +NS_IMETHODIMP +IcedTeaPluginFactory::Print(const char* msg, const char* encoding) +{ + NOT_IMPLEMENTED (); + return NS_ERROR_NOT_IMPLEMENTED; +} #include <nsICookieService.h> #include <nsIIOService.h>
--- a/plugin/icedtea/sun/applet/JavaConsole.java Wed Feb 25 13:34:13 2009 -0500 +++ b/plugin/icedtea/sun/applet/JavaConsole.java Wed Feb 25 16:38:54 2009 -0500 @@ -37,7 +37,6 @@ package sun.applet; -import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.GridBagConstraints; @@ -49,7 +48,6 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; -import java.util.Collection; import java.util.Map; import java.util.Properties; import java.util.Set; @@ -65,8 +63,6 @@ import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; -import net.sourceforge.jnlp.runtime.JNLPClassLoader; - /** * A simple Java console for IcedTeaPlugin * @@ -92,8 +88,8 @@ consoleWindow = new JFrame("Java Console"); - Container contentPane = consoleWindow.getContentPane(); - contentPane.setLayout(new GridBagLayout()); + JPanel contentPanel = new JPanel(); + contentPanel.setLayout(new GridBagLayout()); GridBagConstraints c; @@ -133,7 +129,7 @@ c.gridheight = 10; c.weighty = 1; - contentPane.add(splitPane, c); + contentPanel.add(splitPane, c); /* buttons */ @@ -144,12 +140,11 @@ c.weighty = 0; JPanel buttonPanel = new JPanel(); - contentPane.add(buttonPanel, c); + contentPanel.add(buttonPanel, c); JButton gcButton = new JButton("Run GC"); buttonPanel.add(gcButton); gcButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); System.out.print("Performing Garbage Collection...."); @@ -163,7 +158,6 @@ JButton finalizersButton = new JButton("Run Finalizers"); buttonPanel.add(finalizersButton); finalizersButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); System.out.print("Running finalization...."); @@ -177,7 +171,6 @@ buttonPanel.add(memoryButton); memoryButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); } @@ -187,7 +180,6 @@ JButton systemPropertiesButton = new JButton("System Properties"); buttonPanel.add(systemPropertiesButton); systemPropertiesButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printSystemProperties(); } @@ -197,7 +189,6 @@ JButton classloadersButton = new JButton("Classloaders"); buttonPanel.add(classloadersButton); classloadersButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printClassLoaders(); } @@ -207,34 +198,37 @@ JButton threadListButton = new JButton("Thread List"); buttonPanel.add(threadListButton); threadListButton.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { printThreadInfo(); } }); - JButton killVmButton = new JButton("Destory VM"); - buttonPanel.add(killVmButton); - killVmButton.addActionListener(new ActionListener() { - @Override + JButton closeButton = new JButton("Close"); + buttonPanel.add(closeButton); + closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - System.exit(0); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + hideConsole(); + } + }); } - }); stdOutUpdater.start(); stdErrUpdater.start(); - consoleWindow.setMinimumSize(new Dimension(500, 400)); + consoleWindow.add(contentPanel); consoleWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); consoleWindow.pack(); + consoleWindow.setSize(new Dimension(900, 600)); + consoleWindow.setMinimumSize(new Dimension(900, 300)); initialized = true; splitPane.setDividerLocation(0.5); - + splitPane.setResizeWeight(0.5); } public void showConsole() { @@ -315,7 +309,6 @@ if (toShowConsole) { SwingUtilities.invokeLater(new Runnable() { - @Override public void run() { console.showConsole(); }
--- a/plugin/icedtea/sun/applet/PluginStreamHandler.java Wed Feb 25 13:34:13 2009 -0500 +++ b/plugin/icedtea/sun/applet/PluginStreamHandler.java Wed Feb 25 16:38:54 2009 -0500 @@ -52,6 +52,8 @@ import java.util.Date; import java.util.LinkedList; +import javax.swing.SwingUtilities; + public class PluginStreamHandler { @@ -60,6 +62,8 @@ private BufferedWriter pluginOutputWriter; private RequestQueue queue = new RequestQueue(); + + private JavaConsole console = new JavaConsole(); LinkedList<String> writeQueue = new LinkedList<String>(); @@ -378,8 +382,11 @@ AppletSecurityContextManager.dumpStore(0); PluginDebug.debug("APPLETVIEWER: exiting appletviewer"); System.exit(0); + } else if (message.equals("showconsole")) { + showConsole(); + } else if (message.equals("hideconsole")) { + hideConsole(); } - } catch (IOException e) { e.printStackTrace(); } @@ -428,7 +435,7 @@ */ } - + public boolean messageAvailable() { return writeQueue.size() != 0; } @@ -439,4 +446,20 @@ return ret; } } + + private void showConsole() { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + console.showConsole(); + } + }); + } + + private void hideConsole() { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + console.hideConsole(); + } + }); + } }