diff options
author | Andrew Haley <aph@redhat.com> | 2016-09-30 16:24:48 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2016-09-30 16:24:48 +0000 |
commit | 07b78716af6a9d7c9fd1e94d9baf94a52c873947 (patch) | |
tree | 3f22b3241c513ad168c8353805614ae1249410f4 /libjava/classpath/examples/gnu | |
parent | eae993948bae8b788c53772bcb9217c063716f93 (diff) | |
download | gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.zip gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.gz gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.bz2 |
Makefile.def: Remove libjava.
2016-09-30 Andrew Haley <aph@redhat.com>
* Makefile.def: Remove libjava.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
* configure.ac: Likewise.
* configure: Likewise.
* gcc/java: Remove.
* libjava: Likewise.
From-SVN: r240662
Diffstat (limited to 'libjava/classpath/examples/gnu')
116 files changed, 0 insertions, 23232 deletions
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java deleted file mode 100644 index f71c24f..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java +++ /dev/null @@ -1,200 +0,0 @@ -/* Demo.java -- Shows how to use Classpath transient naming service. - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.NamingService; - -import gnu.CORBA.IOR; - -import org.omg.CORBA.ORB; -import org.omg.CORBA.Object; -import org.omg.CosNaming.Binding; -import org.omg.CosNaming.BindingHolder; -import org.omg.CosNaming.BindingIterator; -import org.omg.CosNaming.BindingIteratorHolder; -import org.omg.CosNaming.BindingListHolder; -import org.omg.CosNaming.NameComponent; -import org.omg.CosNaming.NamingContext; -import org.omg.CosNaming.NamingContextExt; -import org.omg.CosNaming.NamingContextExtHelper; -import org.omg.CosNaming.NamingContextHelper; - -/** - * A simple test of the naming service. - * - * The main class of the GNU Classpath transient naming service is - * {@link gnu.CORBA.NamingService}. This class must be started - * before starting this example. - * - * This example should interoperate as with GNU Classpath naming - * service, as with Sun Microsystems transient and persistent - * naming services, included in releases 1.3 and 1.4 (tnameserv and - * orbd). To work with this example, the naming service must - * be started on the local host, at the port 900. - * - * The persistent naming service is currently under development. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class Demo -{ - public static void main(String[] an_args) - { - // We create the following naming graph: - // <ROOT CONTEXT> - // | - // +--- <c.d context> - // | | - // | +--- obj - // | - // +--- xobj - // - // Where both obj and xobj are CORBA objects, representing the - // default naming service. - // - System.out.println("Starting the GNU Classpath " + - "built-in transient naming service" - ); - - final String[] args = an_args; - - new Thread() - { - public void run() - { - gnu.classpath.tools.tnameserv.Main.main(args); - } - }.start(); - - System.out.println("Waiting for three seconds for naming service to start:"); - try - { - Thread.sleep(3000); - } - catch (InterruptedException ex) - { - } - - try - { - ORB orb = ORB.init(args, null); - - Object no = orb.resolve_initial_references("NameService"); - - System.out.println("Naming service IOR:" + orb.object_to_string(no)); - - System.out.println(IOR.parse(orb.object_to_string(no))); - - NamingContextExt namer = NamingContextExtHelper.narrow(no); - - System.out.println("Naming service: " + namer.getClass().getName()); - - NamingContext second = namer.new_context(); - - namer.rebind_context(namer.to_name("c.d"), second); - namer.rebind(namer.to_name("xobj"), no); - - second.rebind(namer.to_name("obj"), no); - - NamingContext nsec = - NamingContextHelper.narrow(namer.resolve_str("c.d")); - - System.out.println(namer.resolve(namer.to_name("c.d/obj"))); - - // In all cases, this must be the same object (the naming - // service itself). - System.out.println(nsec.resolve(new NameComponent[] - { - new NameComponent("obj", "") - } - ) - ); - System.out.println(namer.resolve_str("xobj")); - - // In all cases, this must be the same object (the naming - // service itself). - System.out.println(namer.resolve(new NameComponent[] - { - new NameComponent("c", "d"), - new NameComponent("obj", "") - } - ) - ); - - System.out.println(namer.resolve_str("c.d/obj")); - - System.out.println("Test binding list iterator:"); - - BindingListHolder lh = new BindingListHolder(); - BindingIteratorHolder lih = new BindingIteratorHolder(); - - namer.list(0, lh, lih); - - BindingIterator iter = lih.value; - BindingHolder binding = new BindingHolder(); - - while (iter.next_one(binding)) - { - Binding b = binding.value; - System.out.println("NAME: " + namer.to_string(b.binding_name) + - " TYPE " + b.binding_type.value() - ); - } - - System.out.println("Testing binding list:"); - - iter.destroy(); - - namer.list(Integer.MAX_VALUE, lh, lih); - - for (int i = 0; i < lh.value.length; i++) - { - Binding b = lh.value [ i ]; - System.out.println("NAME: " + namer.to_string(b.binding_name) + - " TYPE " + b.binding_type.value() - ); - } - } - catch (Exception ex) - { - ex.printStackTrace(); - System.exit(1); - } - - System.exit(0); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java deleted file mode 100644 index 944f661..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java +++ /dev/null @@ -1,102 +0,0 @@ -/* Demo.java -- Demonstrates simple CORBA client-server communications. - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication; - -import java.io.File; - -import gnu.classpath.examples.CORBA.SimpleCommunication.communication.DirectTest; -import gnu.classpath.examples.CORBA.SimpleCommunication.communication.RequestTest; - - -/** - * This sample illustrates the CORBA communication between server - * and client. In this simple example both server and client are - * started on the same virtual machine. For the real interoperability - * tests, however, the server is started on the platform (library+jvm) of - * one vendor, and the client on the platform of another vendor. - * - * The interoperability is currently tested with Sun Microystems - * jre 1.4. - * - * This example required the current folder to be writable to pass - * the IOR references via shared file. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class Demo -{ - public static void main(final String[] args) - { - File ior = new File("IOR.txt"); - if (ior.exists()) - ior.delete(); - - // Start the server. - new Thread() - { - public void run() - { - DemoServer.start_server(args); - } - }.start(); - - System.out.print("Waiting for the server to start "); - while (!ior.exists()) - { - // Pause some time for the server to start. - try - { - Thread.sleep(200); - } - catch (InterruptedException ex) - { - } - System.out.print("."); - } - System.out.println("ok."); - System.out.println(); - - // Test the stream oriented communication. - DirectTest.main(args); - // Test the request oriented communication. - RequestTest.main(args); - - System.exit(0); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/DemoServer.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/DemoServer.java deleted file mode 100644 index d7b1a77..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/DemoServer.java +++ /dev/null @@ -1,118 +0,0 @@ -/* DemoServer.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication; - -import gnu.classpath.examples.CORBA.SimpleCommunication.communication.DemoServant; - -import org.omg.CORBA.ORB; - -import java.io.FileOutputStream; -import java.io.PrintStream; - -/** - * This is the server class that handles the client requests, - * delegating the functionality to the {@link DemoServant}. - * - * When starting, the server writes the IOR.txt file into the current - * folder. With the information, stored in this file, the server - * should be reachable over Internet, unless blocked by security tools. - * - * This code is tested for interoperability with Sun Microsystems - * java implementation 1.4.2 (08.b03). Server, client of both can - * be started either on Sun's or on Classpath CORBA implementation, - * in any combinations. - * - * BE SURE TO START THIS SERVER BEFORE STARTING THE CLIENT. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class DemoServer -{ - - public static void main(String[] args) - { - start_server(args); - } - - public static ORB start_server(String[] args) - { - try - { - // Create and initialize the ORB. - final ORB orb = org.omg.CORBA.ORB.init(args, null); - - // Create the servant and register it with the ORB. - DemoServant tester = new DemoServant(); - orb.connect(tester); - - // Storing the IOR reference. - String ior = orb.object_to_string(tester); - System.out.println("IOR: " + ior); - - gnu.CORBA.IOR ii = gnu.CORBA.IOR.parse(ior); - System.out.println(ii); - - // The file IOR.txt in the current folder will be used - // to find the object by clients. - FileOutputStream f = new FileOutputStream("IOR.txt"); - PrintStream p = new PrintStream(f); - p.print(ior); - p.close(); - - System.out.println("The test server ready and waiting ..."); - - new Thread() - { - public void run() - { - // Start the thread, serving the invocations from clients. - orb.run(); - } - }.start(); - - return orb; - } - catch (Exception e) - { - System.err.println("ERROR: " + e); - e.printStackTrace(System.out); - return null; - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java deleted file mode 100644 index 9af20d2..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java +++ /dev/null @@ -1,230 +0,0 @@ -/* DemoServant.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ByteHolder; -import org.omg.CORBA.CompletionStatus; -import org.omg.CORBA.DoubleHolder; -import org.omg.CORBA.ShortHolder; -import org.omg.CORBA.StringHolder; - -/** - * This class handles the actual server functionality in this test - * application. When the client calls the remote method, this - * finally results calling the method of this class. - * - * The parameters, passed to the server only, are just parameters of the - * java methods. The parameters that shuld be returned to client - * are wrapped into holder classes. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class DemoServant - extends _DemoTesterImplBase -{ - /** - * The field, that can be set and checked by remote client. - */ - private int m_theField = 17; - - /** - * Passes wide (UTF-16) string and narrow (ISO8859_1) string. - * @see gnu.CORBA.GIOP.CharSets_OSF for supported and default - * encodings. Returs they generalization as a wide string. - */ - public String passCharacters(String wide, String narrow) - { - System.out.println("SERVER: **** Wide and narrow string test."); - System.out.println("SERVER: Received '" + narrow + "' and '" + wide + - "'" - ); - - return "return '" + narrow + "' and '" + wide + "'"; - } - - /** - * Accept and return parameters, having various types. - */ - public int passSimple(ByteHolder an_octet, int a_long, ShortHolder a_short, - StringHolder a_string, DoubleHolder a_double - ) - { - System.out.println("SERVER: ***** Test passing multiple parameters"); - System.out.println("SERVER: Received:"); - System.out.println("SERVER: octet " + an_octet.value); - System.out.println("SERVER: short " + a_short.value); - System.out.println("SERVER: string " + a_string.value); - - // Returning incremented values. - an_octet.value++; - a_short.value++; - - // OUT parameter, return only. - a_double.value = 1; - a_string.value += " [return]"; - return 452572; - } - - /** - * Accept and return the string arrays. - */ - public String[] passStrings(String[] args) - { - System.out.println("SERVER: ***** Transferring string arrays"); - - String[] rt = new String[ args.length ]; - for (int i = 0; i < args.length; i++) - { - System.out.println("SERVER: " + args [ i ]); - - // Returning the changed content. - rt [ i ] = args [ i ] + ":" + args [ i ]; - } - return rt; - } - - /** - * Accept and return the structures. - */ - public StructureToReturn passStructure(StructureToPass in_structure) - { - System.out.println("SERVER: ***** Transferring structures"); - System.out.println("SERVER: Received " + in_structure.a + ":" + - in_structure.b - ); - - // Create and send back the returned structure. - StructureToReturn r = new StructureToReturn(); - r.c = in_structure.a + in_structure.b; - r.n = 555; - r.arra = new int[] { 11, 22, 33 }; - return r; - } - - /** - * Pass and return the tree structure - */ - public void passTree(TreeNodeHolder tree) - { - System.out.println("SERVER: ***** Transferring tree"); - - StringBuilder b = new StringBuilder(); - - // This both creates the tree string representation - // and changes the TreeNode names. - getImage(b, tree.value); - System.out.println("SERVER: The tree was: " + b + ", returning changed."); - } - - /** - * Just prints the hello message. - */ - public void sayHello() - { - System.out.println("SERVER: ***** Hello, world!"); - } - - /** - * Get the value of our field. - */ - public int theField() - { - System.out.println("SERVER: ***** Getting the field value, " + m_theField); - return m_theField; - } - - /** - * Set the value of our field. - */ - public void theField(int a_field) - { - System.out.println("SERVER: ***** Setting the field value to " + a_field); - m_theField = a_field; - } - - /** - * Throw an exception. - * - * @param parameter specifies which exception will be thrown. - * - * @throws WeThrowThisException for the non negative parameter. - * @throws BAD_OPERATION for the negative parameter. - */ - public void throwException(int parameter) - throws WeThrowThisException - { - System.out.println("SERVER: ***** Testing exceptions"); - if (parameter > 0) - { - System.out.println("SERVER: Throwing the user exception, " + - "specific field = "+parameter - ); - throw new WeThrowThisException(parameter); - } - else - { - System.out.println("SERVER: Throwing " + - "the BAD_OPERATION, minor 456, completed" - ); - throw new BAD_OPERATION(456, CompletionStatus.COMPLETED_YES); - } - } - - /** - * Visit all tree nodes, getting the string representation - * and adding '++' to the TreeNode names. - * - * @param b the buffer to collect the string representation. - * @param n the rott tree TreeNode. - */ - private void getImage(StringBuilder b, TreeNode n) - { - b.append(n.name); - n.name = n.name + "++"; - b.append(": ("); - - for (int i = 0; i < n.children.length; i++) - { - getImage(b, n.children [ i ]); - b.append(' '); - } - b.append(") "); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoTester.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoTester.java deleted file mode 100644 index f3766f3..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoTester.java +++ /dev/null @@ -1,111 +0,0 @@ -/* DemoTester.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.ByteHolder; -import org.omg.CORBA.DoubleHolder; -import org.omg.CORBA.ShortHolder; -import org.omg.CORBA.StringHolder; - -/** - * The interface of our remote object. Some IDL compiles split it - * into "DemoTester" and "comTesterOperations", but we do not see - * much sense in doing this here. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public interface DemoTester -{ - /** - * Passes wide (UTF-16) string and narrow (ISO8859_1) string. - * Both types are mapped into java String. - * - * @see gnu.CORBA.GIOP.CharSets_OSF for supported and default - * encodings. - */ - String passCharacters(String wide, String narrow); - - /** - * Passes various parameters in both directions. - * The parameters that must return the value are wrapped in holders. - */ - int passSimple(ByteHolder an_octet, int a_long, ShortHolder a_short, - StringHolder a_string, DoubleHolder a_double - ); - - /** - * Passes and returns the string sequence (flexible length). - */ - String[] passStrings(String[] arg); - - /** - * Passes and returns the structures. - */ - StructureToReturn passStructure(StructureToPass in_structure); - - /** - * Pass and return the tree structure - * - * @param tree the root TreeNode of the tree. - */ - void passTree(TreeNodeHolder tree); - - /** - * Just prints the "Hello" message. - */ - void sayHello(); - - /** - * Gets the value of the field in our object. - */ - int theField(); - - /** - * Sets the value for the field in our object. - */ - void theField(int newTheField); - - /** - * Throws either 'WeThrowThisException' with the 'ourField' field - * initialised to the passed positive value - * or system exception (if the parameter is zero or negative). - */ - void throwException(int parameter) - throws WeThrowThisException; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java deleted file mode 100644 index 843530d..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java +++ /dev/null @@ -1,344 +0,0 @@ -/* DirectTest.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ByteHolder; -import org.omg.CORBA.DoubleHolder; -import org.omg.CORBA.ORB; -import org.omg.CORBA.ShortHolder; -import org.omg.CORBA.StringHolder; -import org.omg.CORBA.UserException; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -/** - * This code uses CORBA to call various methods of the remote object, - * passing data structures in both directions. It finds the server by - * reading the IOR.txt file that must be present in the folder, - * where the program has been started. - * - * The IOR.txt file is written by the server - * {@link gnu.classpath.examples.CORBA.SimpleCommunication.DemoServer}. - * The server should be reachable over Internet, unless blocked by - * security tools. - * - * This code is tested for interoperability with Sun Microsystems - * java implementation 1.4.2 (08.b03). Server, client of both can - * be started either on Sun's or on Classpath CORBA implementation, - * in any combinations. - * - * BE SURE TO START THE SERVER BEFORE STARTING THE CLIENT. - * - * This version uses direct casting. This is the most convenient - * method, but it is normally used together with the IDL compiler. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class DirectTest -{ - /* - * The IOR.txt file, used to find the server and the object on the server. is written when starting the accompanying - */ - public static final String IOR_FILE = "IOR.txt"; - - /** - * The invocation target. - */ - DemoTester object; - - /** - * Get the object reference. - */ - public static void main(String[] args) - { - try - { - ORB orb = org.omg.CORBA.ORB.init(args, null); - - File f = new File(IOR_FILE); - char[] c = new char[ (int) f.length() ]; - FileReader fr = new FileReader(f); - fr.read(c); - fr.close(); - - String ior = new String(c); - DirectTest we = new DirectTest(); - we.object = (DemoTester) orb.string_to_object(ior); - we.Demo(); - orb.shutdown(false); - } - catch (IOException ex) - { - System.out.println("Cannot find or read the IOR file " + - "in the current folder" - ); - ex.printStackTrace(); - } - } - - /** Run all demos. */ - public void Demo() - { - testHello(); - testField(); - testParameters(); - testStringArray(); - testStructure(); - testWideNarrowStrings(); - testTree(); - testSystemException(); - testUserException(); - } - - /** - * Test the field getter/setter. - */ - public void testField() - { - System.out.println("***** Test the remote field getter/setter."); - System.out.println("The field value is now " + object.theField()); - System.out.println("Setting it to 555"); - object.theField(555); - System.out.println("The field value is now " + object.theField()); - } - - /** The simple invocation of the parameterless remote method. */ - public void testHello() - { - System.out.println("***** Say hello (see the server console)."); - object.sayHello(); - } - - /** - * Test passing multiple parameters in both directions. - */ - public void testParameters() - { - System.out.println("***** Pass multiple parameters."); - - // Holder classes are required to simulate passing - // "by reference" (modification is returned back to the server). - ByteHolder a_byte = new ByteHolder((byte) 0); - ShortHolder a_short = new ShortHolder((short) 3); - StringHolder a_string = new StringHolder("[string 4]"); - - // This is an 'out' parameter; the value must not be passed to servant. - DoubleHolder a_double = new DoubleHolder(56.789); - - int returned = object.passSimple(a_byte, 2, a_short, a_string, a_double); - - System.out.println(" Returned value " + returned); - System.out.println(" Returned parameters: "); - System.out.println(" octet " + a_byte.value); - System.out.println(" short " + a_short.value); - System.out.println(" string '" + a_string.value+"'"); - System.out.println(" double " + a_double.value); - } - - /** - * Test passing the string array, flexible size. - */ - public void testStringArray() - { - System.out.println("***** Pass string array."); - - String[] x = new String[] { "one", "two" }; - - // The array is passed as CORBA sequence, variable size is supported. - String[] y = object.passStrings(x); - - for (int i = 0; i < y.length; i++) - { - System.out.println(" Passed " + x [ i ] + ", returned: " + y [ i ]); - } - } - - /** - * Test passing the structures. - */ - public void testStructure() - { - System.out.println("***** Pass structure"); - - StructureToPass arg = new StructureToPass(); - arg.a = "A"; - arg.b = "B"; - - StructureToReturn r = object.passStructure(arg); - - System.out.println(" Fields of the returned structure:"); - - System.out.println(" c: " + r.c); - System.out.println(" n: " + r.n); - - // The field r.arra is declared as the fixed size CORBA array. - System.out.println(" r[0]: " + r.arra [ 0 ]); - System.out.println(" r[1]: " + r.arra [ 1 ]); - System.out.println(" r[3]: " + r.arra [ 2 ]); - } - - /** - * Test catching the system exception, thrown on the remote side. - */ - public void testSystemException() - { - System.out.println("**** Test system exception:"); - try - { - // Negative parameter = system exception. - object.throwException(-55); - } - catch (BAD_OPERATION ex) - { - System.out.println(" The expected BAD_OPERATION, minor code " + - ex.minor + ", has been thrown on remote side." - ); - } - catch (UserException uex) - { - throw new InternalError(); - } - } - - /** - * Test passing the tree structure. Any shape of the tree is - * supported without rewriting the code. - */ - public void testTree() - { - // Manually create the tree of nodes: - // Root - // +-- a - // | - // +-- b - // +-- ba - // | | - // | +-- bac - // | - // +-- bb - System.out.println("***** Pass and return the tree."); - - TreeNode n = nod("Root"); - - n.children = new TreeNode[] { nod("a"), nod("b") }; - n.children [ 1 ].children = new TreeNode[] { nod("ba"), nod("bb") }; - n.children [ 1 ].children [ 0 ].children = new TreeNode[] { nod("bac") }; - - TreeNodeHolder nh = new TreeNodeHolder(n); - - // The server should add '++' to each TreeNode name. - object.passTree(nh); - - // Convert the returned tree to some strig representation. - StringBuilder img = new StringBuilder(); - getImage(img, nh.value); - - System.out.println("Returned tree: " + img.toString()); - } - - /** - * Test catching the user exception, thrown on the remote side. - */ - public void testUserException() - { - System.out.println("**** Test user exception:"); - try - { - // The user exception contains one user-defined field that will - // be initialised to the passed parameter. - object.throwException(123); - throw new InternalError(); - } - catch (WeThrowThisException uex) - { - System.out.println(" The user exception with field " + uex.ourField + - ", has been thrown on remote side." - ); - } - } - - /** - * Passes wide (UTF-16) string and narrow (ISO8859_1) string. - * @see gnu.CORBA.GIOP.CharSets_OSF for supported and default - * encodings. - */ - public void testWideNarrowStrings() - { - System.out.println("**** Test 8 bit and 16 bit char strings"); - - String r = object.passCharacters("wide string", "narrow string"); - System.out.println(" returned: '" + r + "'"); - } - - /** - * Get the string representation of the passed tree. - * @param b the string buffer to accumulate the representation. - * @param n the tree (root TreeNode). - */ - private void getImage(StringBuilder b, TreeNode n) - { - b.append(n.name); - b.append(": ("); - - for (int i = 0; i < n.children.length; i++) - { - getImage(b, n.children [ i ]); - b.append(' '); - } - b.append(") "); - } - - /** - * Create a TreeNode with the given header. - * - * @param hdr the TreeNode header. - * @return the created TreeNode. - */ - private TreeNode nod(String hdr) - { - TreeNode n = new TreeNode(); - n.children = new TreeNode[ 0 ]; - n.name = hdr; - - return n; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/RequestTest.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/RequestTest.java deleted file mode 100644 index 9c908e5..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/RequestTest.java +++ /dev/null @@ -1,284 +0,0 @@ -/* RequestTest.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ExceptionList; -import org.omg.CORBA.NVList; -import org.omg.CORBA.ORB; -import org.omg.CORBA.Request; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.UnknownUserException; - -/** - * This code uses CORBA to call various methods of the remote object, - * passing data structures in both directions. It finds the server by - * reading the IOR.txt file that must be present in the folder, - * where the program has been started. - * - * The IOR.txt file is written by the server - * {@link gnu.classpath.examples.CORBA.SimpleCommunication.DemoServer}. - * The server should be reachable over Internet, unless blocked by - * security tools. - * - * This code is tested for interoperability with Sun Microsystems - * java implementation 1.4.2 (08.b03). Server, client of both can - * be started either on Sun's or on Classpath CORBA implementation, - * in any combinations. - * - * BE SURE TO START THE SERVER BEFORE STARTING THE CLIENT. - * - * Test invocations using org.omg.CORBA.Request. The methods are - * called by "name", like in java.lang.reflect. - * No need to have the local pre-compiled stub classes. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class RequestTest -{ - /* - * The IOR.txt file, used to find the server and the object on the server. is written when starting the accompanying - */ - public static final String IOR_FILE = "IOR.txt"; - - /** - * The Object Request Brocker, used for various CORBA operations. - */ - ORB orb; - - /** - * Our remote object - the invocation target. - */ - org.omg.CORBA.Object object; - - /** - * Prepare for work. Read the file IOR.txt in the current folder - * and find the server using its information. - */ - public static void main(String[] args) - { - RequestTest we = new RequestTest(); - - we.orb = org.omg.CORBA.ORB.init(new String[ 0 ], null); - - char[] c = null; - try - { - File f = new File(IOR_FILE); - c = new char[ (int) f.length() ]; - - FileReader fr = new FileReader(f); - fr.read(c); - fr.close(); - } - catch (IOException ex) - { - System.out.println("Unable to write the IOR.txt into the current folder"); - ex.printStackTrace(); - } - - String ior = new String(c); - - we.object = we.orb.string_to_object(ior); - we.Demo(); - we.orb.shutdown(false); - } - - /** Run all demos. */ - public void Demo() - { - testHello(); - try - { - testParameters(); - } - catch (Exception ex) - { - // Not expected. - throw new InternalError(); - } - testSystemException(); - testWideNarrowStrings(); - } - - /** - * Send the hello message, one way. - */ - public void testHello() - { - System.out.println("***** Test 'HELLO WORLD' (see the server console)."); - - Request hello = - object._create_request(null, "sayHello", orb.create_list(0), null); - - // No response expected. - hello.send_oneway(); - } - - /** - * Test passing various parameters in both directions. - */ - public void testParameters() - throws Exception - { - System.out.println("***** Test passing multiple parameters:"); - - Request r = - object._create_request(null, "passSimple", orb.create_list(0), null); - - r.add_inout_arg().insert_octet((byte) 0); - r.add_in_arg().insert_long(2); - r.add_inout_arg().insert_short((short) 3); - r.add_inout_arg().insert_string("[string 4]"); - r.add_out_arg().type(orb.get_primitive_tc(TCKind.tk_double)); - - NVList para = r.arguments(); - - System.out.println(" --- Parameters before invocation: "); - - System.out.println(" octet " + para.item(0).value().extract_octet()); - System.out.println(" long (in parameter) " + - para.item(1).value().extract_long() - ); - System.out.println(" short " + para.item(2).value().extract_short()); - System.out.println(" string " + para.item(3).value().extract_string()); - - // For the last parameter, the value is not set. - r.set_return_type(orb.get_primitive_tc(TCKind.tk_long)); - - r.invoke(); - - para = r.arguments(); - - System.out.println(" --- Parameters after invocation:"); - - System.out.println(" octet " + para.item(0).value().extract_octet()); - System.out.println(" long (in parameter, must not be changed) " + - para.item(1).value().extract_long() - ); - System.out.println(" short " + para.item(2).value().extract_short()); - System.out.println(" string " + para.item(3).value().extract_string()); - System.out.println(" double " + para.item(4).value().extract_double()); - - System.out.println(" Returned value " + r.result().value().extract_long()); - } - - /** - * Test catching the system exception, thrown on the remote side. - */ - public void testSystemException() - { - System.out.println("**** Test system exception:"); - try - { - ExceptionList exList = orb.create_exception_list(); - exList.add(WeThrowThisExceptionHelper.type()); - - Request rq = - object._create_request(null, "throwException", orb.create_list(1), - null, exList, null - ); - - rq.add_in_arg().insert_long(-55); - - rq.invoke(); - - throw new InternalError(); - } - catch (BAD_OPERATION ex) - { - System.out.println(" The expected BAD_OPERATION, minor code " + - ex.minor + ", has been thrown on remote side." - ); - } - } - - /** - * Test catching the user exception, thrown on the remote side. - */ - public void testUserException() - { - System.out.println("**** Test user exception:"); - - ExceptionList exList = orb.create_exception_list(); - exList.add(WeThrowThisExceptionHelper.type()); - - Request rq = - object._create_request(null, "throwException", orb.create_list(1), null, - exList, null - ); - - rq.add_in_arg().insert_long(123); - rq.invoke(); - - UnknownUserException uku = (UnknownUserException) rq.env().exception(); - WeThrowThisException our_exception = WeThrowThisExceptionHelper.extract(uku.except); - - System.out.println(" Our user exception, field " + our_exception.ourField + - ", has been thrown on remote side." - ); - } - - /** - * Passes wide (UTF-16) string and narrow (ISO8859_1) string. - * @see gnu.CORBA.GIOP.CharSets_OSF for supported and default - * encodings. - */ - public void testWideNarrowStrings() - throws BAD_OPERATION - { - System.out.println("**** Test 8 bit and 16 bit char strings"); - - Request rq = - object._create_request(null, "passCharacters", orb.create_list(0), null); - - rq.add_in_arg().insert_wstring("wide string"); - rq.add_in_arg().insert_string("narrow string"); - - rq.set_return_type(orb.get_primitive_tc(TCKind.tk_wstring)); - - rq.invoke(); - - System.out.println(" Returned ' " + rq.result().value().extract_wstring()); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java deleted file mode 100644 index eecf6f3..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java +++ /dev/null @@ -1,66 +0,0 @@ -/* StructureToPass.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - - -/** - * The data structure, passed from to the server from client in our tests. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class StructureToPass - implements org.omg.CORBA.portable.IDLEntity -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * The first string, stored in this structure (defined as - * "narrow string"). - */ - public String a; - - /** - * The second string, stored in this structure (define as - * "wide" (usually Unicode) string. - */ - public String b; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java deleted file mode 100644 index 155ad17..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java +++ /dev/null @@ -1,103 +0,0 @@ -/* StructureToPassHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import gnu.CORBA.OrbRestricted; - -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; - -/** - * The helper operations for the {@link StructureToPass}. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class StructureToPassHelper -{ - /** - * The repository ID of the {@link StructureToPass}. - */ - private static String id = - "IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass:1.0"; - - /** - * Get the repository id. - */ - public static String id() - { - return id; - } - - /** - * Read the structure from the CDR stram. - */ - public static StructureToPass read(InputStream istream) - { - StructureToPass value = new StructureToPass(); - value.a = istream.read_string(); - value.b = istream.read_wstring(); - return value; - } - - /** - * Get the type code of this structure. - */ - public static synchronized TypeCode type() - { - StructMember[] members = new StructMember[2]; - TypeCode member = null; - member = OrbRestricted.Singleton.create_string_tc(0); - members[0] = new StructMember("a", member, null); - member = OrbRestricted.Singleton.create_string_tc(0); - members[1] = new StructMember("b", member, null); - return OrbRestricted.Singleton.create_struct_tc(StructureToPassHelper.id(), - "StructureToPass", members); - } - - /** - * Write the structure into the CDR stream. - */ - public static void write(OutputStream ostream, StructureToPass value) - { - ostream.write_string(value.a); - ostream.write_wstring(value.b); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHolder.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHolder.java deleted file mode 100644 index 5bbe690..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHolder.java +++ /dev/null @@ -1,37 +0,0 @@ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.Streamable; - -public final class StructureToPassHolder - implements Streamable -{ - public StructureToPass value; - - public StructureToPassHolder() - { - } - - public StructureToPassHolder(StructureToPass initialValue) - { - value = initialValue; - } - - public void _read(InputStream i) - { - value = StructureToPassHelper.read(i); - } - - public org.omg.CORBA.TypeCode _type() - { - return StructureToPassHelper.type(); - } - - public void _write(OutputStream o) - { - StructureToPassHelper.write(o, value); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java deleted file mode 100644 index 2f497cb..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java +++ /dev/null @@ -1,71 +0,0 @@ -/* StructureToReturn.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.portable.IDLEntity; - -/** - * This data structure is returned from the server to client in our tests. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class StructureToReturn - implements IDLEntity -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * The string field. - */ - public String c; - - /** - * The CORBA array field. This field is handled as the fixed - * size CORBA array, but structures can also have the variable - * size CORBA sequences. - */ - public int[] arra = new int[3]; - - /** - * The int (CORBA long) field. - */ - public int n; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java deleted file mode 100644 index 83f422c..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java +++ /dev/null @@ -1,116 +0,0 @@ -/* StructureToReturnHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import gnu.CORBA.OrbRestricted; - -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; - -/** - * This class defines the helper operations for {@link StructureToReturn}. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class StructureToReturnHelper -{ - /** - * The repository id. - */ - private static String _id = - "IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn:1.0"; - - /** - * Return the repository id. - */ - public static String id() - { - return _id; - } - - /** - * Read the structure from the CDR stream. - */ - public static StructureToReturn read(InputStream istream) - { - StructureToReturn value = new StructureToReturn(); - value.n = istream.read_long(); - value.c = istream.read_wstring(); - value.arra = new int[ 3 ]; - - // Read the fixed size array. - for (int i = 0; i < 3; i++) - value.arra [ i ] = istream.read_long(); - return value; - } - - /** - * Create the typecode. - */ - public static synchronized TypeCode type() - { - StructMember[] members = new StructMember[3]; - TypeCode member = OrbRestricted.Singleton.get_primitive_tc(TCKind.tk_long); - members[0] = new StructMember("n", member, null); - member = OrbRestricted.Singleton.create_string_tc(0); - members[1] = new StructMember("c", member, null); - member = OrbRestricted.Singleton.get_primitive_tc(TCKind.tk_long); - member = OrbRestricted.Singleton.create_array_tc(3, member); - members[2] = new StructMember("arra", member, null); - return OrbRestricted.Singleton.create_struct_tc( - StructureToReturnHelper.id(), - "StructureToReturn", - members); - } - - /** - * Write the structure to the CDR stream. - */ - public static void write(OutputStream ostream, StructureToReturn value) - { - ostream.write_long(value.n); - ostream.write_wstring(value.c); - - // Write the fixed size array. - for (int i = 0; i < 3; i++) - ostream.write_long(value.arra [ i ]); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHolder.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHolder.java deleted file mode 100644 index c70f9cf..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHolder.java +++ /dev/null @@ -1,60 +0,0 @@ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.Streamable; - -/** - * The holder for the structure, returned from the server. - */ -public final class StructureToReturnHolder - implements Streamable -{ - /** - * The enclosed structure. - */ - public StructureToReturn value = null; - - /** - * Create the empty holder. - */ - public StructureToReturnHolder() - { - } - - /** - * Crate the holder with the defined initial value. - */ - public StructureToReturnHolder(StructureToReturn initialValue) - { - value = initialValue; - } - - /** - * Read the value from the CDR stream. - */ - public void _read(InputStream in) - { - value = StructureToReturnHelper.read(in); - } - - /** - * Get the typecode of this structure. - */ - public TypeCode _type() - { - return StructureToReturnHelper.type(); - } - - /** - * Write the value from the CDR stream. - * @param out - */ - public void _write(OutputStream out) - { - StructureToReturnHelper.write(out, value); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java deleted file mode 100644 index 4fb2834..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java +++ /dev/null @@ -1,60 +0,0 @@ -/* TreeNode.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -/** - * The support for the tree structure, used in the test of - * ability to pass and return the tree structure. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class TreeNode - implements org.omg.CORBA.portable.IDLEntity -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** The TreeNode name */ - public String name = null; - - /** The TreeNode children. */ - public TreeNode[] children = null; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java deleted file mode 100644 index eac1c9a..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java +++ /dev/null @@ -1,162 +0,0 @@ -/* TreeNodeHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - - -import gnu.CORBA.OrbRestricted; - -import org.omg.CORBA.Any; -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; - -/** - * This class is used for various helper operations around the - * tree {@link} structure. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class TreeNodeHelper -{ - /** - * The TreeNode repository id, used to identify the structure. - */ - private static String _id = - "IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode:1.0"; - - /** - * Caches the typecode, allowing to compute it only once. - */ - private static TypeCode typeCode; - - /** - * This is used to handle the recursive object references in - * CORBA - supported way. The tree TreeNode definition is recursive, - * as the TreeNode contains the sequence of the nodes as its field. - */ - private static boolean active; - - /** - * Extract the tree TreeNode from the unversal CORBA wrapper, Any. - */ - public static TreeNode extract(Any a) - { - return read(a.create_input_stream()); - } - - /** - * Get the TreeNode string identifer. - */ - public static String id() - { - return _id; - } - - /** - * Insert the TreeNode into the universal CORBA wrapper, Any. - */ - public static void insert(Any a, TreeNode that) - { - OutputStream out = a.create_output_stream(); - a.type(type()); - write(out, that); - a.read_value(out.create_input_stream(), type()); - } - - /** - * Read the TreeNode from the common data reprentation (CDR) stream. - */ - public static TreeNode read(InputStream istream) - { - TreeNode value = new TreeNode(); - value.name = istream.read_string(); - - int _len0 = istream.read_long(); - value.children = new TreeNode[ _len0 ]; - for (int i = 0; i < value.children.length; ++i) - value.children [ i ] = TreeNodeHelper.read(istream); - return value; - } - - /** - * Get the TreeNode type code definition. - */ - public static synchronized TypeCode type() - { - // Compute the type code only once. - if (typeCode == null) - { - synchronized (TypeCode.class) - { - if (typeCode == null) - { - // To avoid the infinite recursion loop, the - // recursive reference is handled in specific way. - if (active) - return OrbRestricted.Singleton.create_recursive_tc(_id); - active = true; - - // List all memebers of the TreeNode structure. - StructMember[] members = new StructMember[ 2 ]; - TypeCode memberType; - memberType = OrbRestricted.Singleton.create_string_tc(0); - members [ 0 ] = new StructMember("name", memberType, null); - memberType = OrbRestricted.Singleton.create_recursive_tc(""); - members [ 1 ] = new StructMember("children", memberType, null); - typeCode = - OrbRestricted.Singleton.create_struct_tc(TreeNodeHelper.id(), "TreeNode", members); - active = false; - } - } - } - return typeCode; - } - - /** - * Write the TreeNode into the common data reprentation (CDR) stream. - */ - public static void write(OutputStream ostream, TreeNode value) - { - ostream.write_string(value.name); - ostream.write_long(value.children.length); - for (int i = 0; i < value.children.length; ++i) - TreeNodeHelper.write(ostream, value.children [ i ]); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHolder.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHolder.java deleted file mode 100644 index ec180ce..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHolder.java +++ /dev/null @@ -1,100 +0,0 @@ -/* TreeNodeHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.Streamable; - -/** - * The TreeNode holder is a wrapper about the TreeNode data structure. It - * can be used where the TreeNode must be passed both to and from - * the method being called. The same structure holds the tree, - * as it can be represented as a root TreeNode with children. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class TreeNodeHolder - implements Streamable -{ - /** - * Stores the TreeNode value. - */ - public TreeNode value; - - /** - * Creates the TreeNode holder with the null initial value. - */ - public TreeNodeHolder() - { - } - - /** - * Creates the TreeNode holder with the given initial value. - */ - public TreeNodeHolder(TreeNode initialValue) - { - value = initialValue; - } - - /** - * Reads the TreeNode value from the common data representation (CDR) - * stream. - */ - public void _read(InputStream in) - { - value = TreeNodeHelper.read(in); - } - - /** - * Writes the TreeNode value into common data representation (CDR) - * stream. - * @return - */ - public TypeCode _type() - { - return TreeNodeHelper.type(); - } - - public void _write(OutputStream out) - { - TreeNodeHelper.write(out, value); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java deleted file mode 100644 index fcf632b..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java +++ /dev/null @@ -1,75 +0,0 @@ -/* WeThrowThisException.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.UserException; -import org.omg.CORBA.portable.IDLEntity; - -/** - * Our user exception, thrown in the tests of handling the exceptions, - * thrown on remote side. The exception contains the user - defined - * data field that is transferred from client to the server when the - * exception is thrown. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class WeThrowThisException - extends UserException - implements IDLEntity -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * Our specific field, transferred to client. - */ - public int ourField; - - /** - * Create the exception. - * - * @param _ourField the value of our specific field. - */ - public WeThrowThisException(int _ourField) - { - ourField = _ourField; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java deleted file mode 100644 index 23ebc82..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java +++ /dev/null @@ -1,117 +0,0 @@ -/* WeThrowThisExceptionHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import gnu.CORBA.OrbRestricted; - -import org.omg.CORBA.Any; -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.TypeCode; - -/** - * The class, providing various helper operations with our user - * exception. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class WeThrowThisExceptionHelper -{ - /** - * The exception repository id. This name is also used to find the - * mapping local CORBA class. - */ - private static String _id = - "IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException:1.0"; - - /** - * Get the exception repository id. - */ - public static String id() - { - return _id; - } - - /** - * Extract the exception from the given Any where it might be - * wrapped. - */ - public static WeThrowThisException extract(Any a) - { - return read(a.create_input_stream()); - } - - /** - * Read the exception from the CDR stream. - */ - public static WeThrowThisException read(org.omg.CORBA.portable.InputStream istream) - { - WeThrowThisException value = new WeThrowThisException(0); - - // The repository ID is not used - istream.read_string(); - value.ourField = istream.read_long(); - return value; - } - - /** - * Create the type code of this exception. - */ - public static synchronized TypeCode type() - { - StructMember[] members = new StructMember[ 1 ]; - TypeCode member = null; - member = OrbRestricted.Singleton.get_primitive_tc(TCKind.tk_long); - members [ 0 ] = new StructMember("ourField", member, null); - return OrbRestricted.Singleton.create_struct_tc(WeThrowThisExceptionHelper.id(), - "WeThrowThisException", members - ); - } - - /** - * Write the exception into the CDR stream. - */ - public static void write(org.omg.CORBA.portable.OutputStream ostream, - WeThrowThisException value - ) - { - ostream.write_string(id()); - ostream.write_long(value.ourField); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java deleted file mode 100644 index 02e5e1a..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java +++ /dev/null @@ -1,209 +0,0 @@ -/* _DemoTesterImplBase.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ByteHolder; -import org.omg.CORBA.CompletionStatus; -import org.omg.CORBA.DoubleHolder; -import org.omg.CORBA.ShortHolder; -import org.omg.CORBA.StringHolder; -import org.omg.CORBA.StringSeqHelper; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.InvokeHandler; -import org.omg.CORBA.portable.ObjectImpl; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ResponseHandler; - -/** - * The base for the class that is actually implementing the functionality - * of the object on the server side ({@link DemoServant} of our case). - * - * Following CORBA standards, the name of this class must start from - * underscore and end by the "ImplBase". - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class _DemoTesterImplBase - extends ObjectImpl - implements DemoTester, InvokeHandler -{ -/** - * When the server receives the request message from client, it - * calls this method. - * - * @param a_method the method name. - * @param in the CDR stream, from where the implementing code must - * read the method parameters. - * @param rh the response handler, used to get the stream where - * the returned values must be written. - * - * @return the stream, obtained from the response handler. - */ - public OutputStream _invoke(String a_method, InputStream in, - ResponseHandler rh - ) - { - OutputStream out; - - /* Get the field value. */ - if (a_method.equals("_get_theField")) - { - int result = (int) 0; - result = theField(); - out = rh.createReply(); - out.write_long(result); - } - else - /* Set the field value. */ - if (a_method.equals("_set_theField")) - { - int newTheField = in.read_long(); - theField(newTheField); - out = rh.createReply(); - } - else - /* Logs calls to the file. */ - if (a_method.equals("sayHello")) - { - sayHello(); - out = rh.createReply(); - } - else - /* Passes various parameters in both directions. */ - if (a_method.equals("passSimple")) - { - ByteHolder an_octet = new ByteHolder(); - an_octet.value = in.read_octet(); - - int a_long = in.read_long(); - ShortHolder a_short = new ShortHolder(); - a_short.value = in.read_short(); - - StringHolder a_string = new StringHolder(); - a_string.value = in.read_string(); - - DoubleHolder a_double = new DoubleHolder(); - int result = passSimple(an_octet, a_long, a_short, a_string, a_double); - out = rh.createReply(); - out.write_long(result); - out.write_octet(an_octet.value); - out.write_short(a_short.value); - out.write_string(a_string.value); - out.write_double(a_double.value); - } - else - /* Passes the 'wide' (usually Unicode) string and the ordinary string. */ - if (a_method.equals("passCharacters")) - { - String wide = in.read_wstring(); - String narrow = in.read_string(); - String result = null; - result = passCharacters(wide, narrow); - out = rh.createReply(); - out.write_wstring(result); - } - else - /* - Throws either 'WeThrowThisException' with the 'ourField' field - initialised to the passed positive value - or system exception (if the parameter is zero or negative). - */ - if (a_method.equals("throwException")) - { - try - { - int parameter = in.read_long(); - throwException(parameter); - out = rh.createReply(); - } - catch (WeThrowThisException exception) - { - out = rh.createExceptionReply(); - WeThrowThisExceptionHelper.write(out, exception); - } - } - else - /* Passes and returns the structures. */ - if (a_method.equals("passStructure")) - { - StructureToPass in_structure = StructureToPassHelper.read(in); - StructureToReturn result = null; - result = passStructure(in_structure); - out = rh.createReply(); - StructureToReturnHelper.write(out, result); - } - else - /* Passes and returns the string sequence. */ - if (a_method.equals("passStrings")) - { - String[] arg = StringSeqHelper.read(in); - String[] result = null; - result = passStrings(arg); - out = rh.createReply(); - StringSeqHelper.write(out, result); - } - else - /** Pass and return the tree structure */ - if (a_method.equals("passTree")) - { - TreeNodeHolder tree = new TreeNodeHolder(); - tree.value = TreeNodeHelper.read(in); - passTree(tree); - out = rh.createReply(); - TreeNodeHelper.write(out, tree.value); - } - - else - throw new BAD_OPERATION("No method: " + a_method, 0, - CompletionStatus.COMPLETED_MAYBE - ); - - return out; - } - - /** - * Return an array of this object repository ids. - */ - public String[] _ids() - { - // They are the same as for the stub. - return _DemoTesterStub._ids; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java deleted file mode 100644 index 7481c4e..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java +++ /dev/null @@ -1,429 +0,0 @@ -/* _DemoTesterStub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.SimpleCommunication.communication; - -import org.omg.CORBA.ByteHolder; -import org.omg.CORBA.DoubleHolder; -import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ShortHolder; -import org.omg.CORBA.StringHolder; -import org.omg.CORBA.StringSeqHelper; -import org.omg.CORBA.portable.ApplicationException; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.ObjectImpl; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.RemarshalException; - -/** - * The stub (proxy) class, representing the remote object on the client - * side. It has all the same methods as the actual implementation - * on the server side. These methods contain the code for remote - * invocation. - * - * Following CORBA standards, the name of this class must start from - * underscore and end by the "Stub". - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class _DemoTesterStub - extends ObjectImpl - implements DemoTester -{ - /** - * A string array of DemoTester repository ids. - */ - public static String[] _ids = - { - "IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoTester:1.0" - }; - - /** - * Return an array of DemoTester repository ids. - */ - public String[] _ids() - { - return _ids; - } - - /** - * Passes wide (UTF-16) string and narrow (ISO8859_1) string. - * @see gnu.CORBA.GIOP.CharSets_OSF for supported and default - * encodings. - */ - public String passCharacters(String wide, String narrow) - { - InputStream in = null; - try - { - // Get the output stream. - OutputStream out = _request("passCharacters", true); - - // Write the parameters. - - // The first string is passed as "wide" - // (usually 16 bit UTF-16) string. - out.write_wstring(wide); - - // The second string is passed as "narrow" - // (usually 8 bit ISO8859_1) string. - out.write_string(narrow); - - // Do the invocation. - in = _invoke(out); - - // Read the method return value. - String result = in.read_wstring(); - return result; - } - catch (ApplicationException ex) - { - // The exception has been throws on remote side, but we - // do not expect any. Throw the MARSHAL exception. - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - // This exception means that the parameters must be re-written. - return passCharacters(wide, narrow); - } - finally - { - // Release the resources, associated with the reply stream. - _releaseReply(in); - } - } - - /** - * Passes various parameters in both directions. The parameters that - * shoud also return the values are wrapped into holders. - */ - public int passSimple(ByteHolder an_octet, int a_long, ShortHolder a_short, - StringHolder a_string, DoubleHolder a_double - ) - { - InputStream in = null; - try - { - // Get the stream where the parameters must be written: - OutputStream out = _request("passSimple", true); - - // Write the parameters. - out.write_octet(an_octet.value); - out.write_long(a_long); - out.write_short(a_short.value); - out.write_string(a_string.value); - - // Invoke the method. - in = _invoke(out); - - // Read the returned values. - int result = in.read_long(); - - // Read the inout and out parameters. - an_octet.value = in.read_octet(); - a_short.value = in.read_short(); - a_string.value = in.read_string(); - a_double.value = in.read_double(); - return result; - } - catch (ApplicationException ex) - { - // Handle excepion on remote side. - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - // Handle instruction to resend the parameters. - return passSimple(an_octet, a_long, a_short, a_string, a_double); - } - finally - { - _releaseReply(in); - } - } - - /** - Passes and returns the string sequence. - */ - public String[] passStrings(String[] arg) - { - InputStream in = null; - try - { - // Get the stream where the parameters must be written: - OutputStream out = _request("passStrings", true); - - // Wrap the string array using the string sequence helper. - StringSeqHelper.write(out, arg); - - // Invoke the method. - in = _invoke(out); - - // Read the returned result using the string sequence helper. - String[] result = StringSeqHelper.read(in); - return result; - } - catch (ApplicationException ex) - { - // Handle the exception, thrown on remote side. - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - return passStrings(arg); - } - finally - { - _releaseReply(in); - } - } - - /** - Passes and returns the structures. - */ - public StructureToReturn passStructure(StructureToPass in_structure) - { - InputStream in = null; - try - { - // Get the stream where the parameters must be written. - OutputStream out = _request("passStructure", true); - - // Write the structure, using its helper. - StructureToPassHelper.write(out, in_structure); - - // Invoke the method. - in = _invoke(out); - - // Read the returned structer, using another helper. - StructureToReturn result = StructureToReturnHelper.read(in); - return result; - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - return passStructure(in_structure); - } - finally - { - _releaseReply(in); - } - } - - /** - * Pass and return the tree structure - */ - public void passTree(TreeNodeHolder tree) - { - InputStream in = null; - try - { - // Get the stream where the parameters must be written. - OutputStream out = _request("passTree", true); - - // Write the tree (TreeNode with its chilred, grandchildren and so on), - // using the appropriate helper. - TreeNodeHelper.write(out, tree.value); - - // Call the method. - in = _invoke(out); - - // Read the returned tree. - tree.value = TreeNodeHelper.read(in); - } - catch (ApplicationException ex) - { - // Handle eception on remote side. - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - passTree(tree); - } - finally - { - _releaseReply(in); - } - } - - /** - * One way call of the remote method. - */ - public void sayHello() - { - InputStream in = null; - try - { - // As we do not expect any response, the second - // parameter is 'false'. - OutputStream out = _request("sayHello", false); - in = _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - sayHello(); - } - finally - { - _releaseReply(in); - } - } - - /** - * Get the field value. - */ - public int theField() - { - InputStream in = null; - try - { - // The special name of operation instructs just to get - // the field value rather than calling the method. - OutputStream out = _request("_get_theField", true); - in = _invoke(out); - - int result = in.read_long(); - return result; - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - return theField(); - } - finally - { - _releaseReply(in); - } - } - - /** - * Set the field value. - */ - public void theField(int newTheField) - { - InputStream in = null; - try - { - // The special name of operation instructs just to set - // the field value rather than calling the method. - OutputStream out = _request("_set_theField", true); - out.write_long(newTheField); - in = _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - throw new MARSHAL(ex.getId()); - } - catch (RemarshalException _rm) - { - theField(newTheField); - } - finally - { - _releaseReply(in); - } - } - - /** - * The server side exception tests. - * - * @param parameter the server throws the user exception in the case - * of the positive value of this argument, and system - * exception otherwise. - * - * @throws WeThrowThisException - */ - public void throwException(int parameter) - throws WeThrowThisException - { - InputStream in = null; - try - { - // Get stream. - OutputStream out = _request("throwException", true); - - // Write parameter. - out.write_long(parameter); - - // Call method. - in = _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - // Get the exception id. - String id = ex.getId(); - - // If this is the user exception we expect to catch, read and throw - // it here. The system exception, if thrown, is handled by _invoke. - if (id.equals("IDL:gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException:1.0") - ) - throw WeThrowThisExceptionHelper.read(in); - else - throw new MARSHAL(id); - } - catch (RemarshalException _rm) - { - throwException(parameter); - } - finally - { - _releaseReply(in); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/README.html b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/README.html deleted file mode 100644 index a3a9e62..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/README.html +++ /dev/null @@ -1,493 +0,0 @@ -<html> - <head> - <title>Five-in-a-row v 0.0</title> - </head> - <body LANG="en-US"> - <h1> - <i>Five-in-a-row - </i> 0.0 supplementary documentation - </h1> - <h3>Introduction and rules - </h3> - <p> - <i>Five-in-a-row - </i> is a two player strategy game. The players - are connected via network using CORBA-based RMI/IIOP protocol and - make they moves with the help of the Swing-based - interface. While playing, the users can also chat. - </p> - <p>The system consists of the single server and any number of - interconnected players. The person, willing to play, starts the - client and connects the server. The server redirects call to the - partner that has previously connected the same server, also willing - to play. - </p> - <p>The game desk is a field where it is possible to set O's - and X'es, one per move. The goal is to get five O's in a row while - preventing your partner from getting five X's in a row. Vertical, - horizontal and diagonal rows are allowed. The system detects the - loss-victory situation on the desk, but currently does not serve as a - playing partner, requiring at least two human players for this game. - </p> - <p>Both players can at any time reset the game (restarting it with - the same player) or leave the game (disconnecting). The disconnected - player can contact the game manager again, requesting to find another - partner. - </p> - <p>Simple as it is, the application has some features of the typical - role playing game that frequently just has more states, actions, - possible moves and also provides far richer graphics environment. The - game manger serves as a World-Wide-Pub where you can always find a - partner to play. - - The players can made both unsynchronized (chatting, game reset and - leaving) and synchronized (moves) actions. The game state changes - while playing, and the set of the available actions depends on the - current state. Finally, the mouse and canvas are involved. However - using RMI/IIOP machinery allowed to implement all this functionality - with just 13 classes (plus 4 generated), all of them being rather - simple. - - This example refers to the standard classes only and must be buildable - from your IDE as long as it has any java 1.4 compiler. - </p> - <p> - The used IIOP protocol must ensure interoperability, allowing players - to use different java virtual machines and operating systems. - The processors may have the opposite byte order. - </p> - <h3>Configuration and run - </h3> - <p>The game manager server executable class is - <i>gnu.classpath.examples.CORBA.swing.x5.X5Server - </i>. After start, - it will print to console the Internet address that must be entered to - the client to reach the manager. - </p> - <p>The client executable class it - <i>gnu.classpath.examples.CORBA.swing.x5.Demo - </i>. - </p> - <p>The game should run with GNU Classpath - 0.19 and Sun Microsystems java 1.5.0_04. Due later fixed bugs it will - not run with the older versions of these two implementations. - </p> - <p>The game manager HTTP server uses port - 1500. Hence all firewalls between the server and the player must be - configured to allow HTTP on 1500. The ports, used by the RMI/IIOP are - not persistent. GNU Classpath is configured to take ports 1501, 1502 - and 1503 (the firewalls must allow to use them for RMI/IIOP). The - CORBA implementation other than Classpath may use different port - values. Unfortunately, there is no standard method to configure the - used port range in a vendor-independent way. - </p> - <h3>The game server - </h3> - <p>The game manager is first reachable via http:// protocol (for - instance http://123.456.7.89:1500). The simple server at this port - always serves much longer string, representing the CORBA stringified - object reference (IOR). The - <i>Five-in-a-row - </i>client uses - this reference to find and access the remote game server object. - </p> - <p>If the server player queue is empty, it simply queues this player. - If the queue is not empty, the server introduces the arrived player - and queued player to each other as leaves the them alone. When - playing, the two clients communicate with each other directly, so the - server is just a “meeting point” where the players can - find each other. The game server is a console-only application. - </p> - <p>The initial server http:// address must be transferred to players - by some other means of communication (web chat, E-mail, link in a web - site and so on). The server writes this address to the specified - file, and the client can also take the default value from the same - file. This is convenient when all applications run on a single - machine, but also may be used to transfer the address via shared - filesystem. - </p> - <h3>The game client - </h3> - <p>The clients are Swing-based GUI applications, capable for remote - communication with each other and with the game manager. They have a - set of predefined states and switch between these states in - accordance to the preprogrammed logic. The client states are defined - in the - <i>State - </i> interface. They are displayed in the bottom left - corner of the window and are summarized in the following table: - </p> - <table BORDER=1 CELLPADDING=4 CELLSPACING=0 WIDTH="100%"> - <thead> - <tr BGCOLOR="#ccccff"> - <th BGCOLOR="#e6e6ff"> - Our state - </th> - <th BGCOLOR="#e6e6ff"> - Partner state - </th> - <th BGCOLOR="#e6e6ff"> - Possible actions - </th> - <th BGCOLOR="#e6e6ff"> - Comment - </th> - </tr> - </thead> - <tbody> - <tr> - <td> - Disconnected - </td> - <td> - Partner not accessible - </td> - <td> - Connect - </td> - <td> - Initial state. - </td> - </tr> - <tr> - <td> - Queued - </td> - <td> - Partner not accessible - </td> - <td> - Leave - </td> - <td> - Queued by the game manager. - </td> - </tr> - <tr> - <td> - I think. - </td> - <td> - I wait for your move - </td> - <td> - Make move, reset game, leave, chat. - </td> - <td> - The person who waited for another player to come starts - the game first. - </td> - </tr> - <tr> - <td> - I wait for your move - </td> - <td> - I think - </td> - <td> - Chat, reset game, leave. - </td> - <td> - After the partner makes the move, the state changes to - <i>I think - </i>, unless the end of game situation is detected by - the desk analyzer. - </td> - </tr> - <tr> - <td> - I have lost - </td> - <td> - I have won - </td> - <td> - Chat, reset game, leave. - </td> - <td> - Can be entered with the help of the desk analyzer only. - </td> - </tr> - <tr> - <td> - I have won - </td> - <td> - I have lost - </td> - <td> - Chat, reset game, leave - </td> - <td> - Can be entered with the help of the desk analyzer only. - </td> - </tr> - <tr> - <td> - Error - </td> - <td> - Any - </td> - <td> - Chat, leave - </td> - <td> - This should never happen under normal work, but the demo - program may be modified by the user. - </td> - </tr> - </tbody> - </table> - <br> - <br> - As it is seen, being in one of the states, the client expects to - be the partner client in a certain defined state, and both clients - change they states in a synchronized manner. Each state has its own - set of the available actions and each action either preserves the - current state (chat, reset) or changes it following the rules. For - this simple example, the state change rules are obvious. - <h3>The used RMI-IIOP architecture - </h3> - Both player and game manager servants are derived from the - <i>org.omg.PortableServer.Servant - </i> and, being servants, are simply - connected to the - <i>POA - </i>with - <i>POA.servant_to_reference - </i>. The - first remote object (game manager) is found using the stringified - object reference. No naming service is involved. -</p> -Where required, the CORBA objects are narrowed into required -player and game manager interfaces using method -<i>PortableRemoteObject.narrow(org.omg.CORBA.Object object, Class - interface_class) -</i>, passing the actual interface of the object as -the second parameter. After narrowing, the remote side obtains -possibility to invoke remote methods, defined in the interface of -this object. After the first remote object is found, other objects -can be simply passed as the method parameters. For instance, the game -manager introduces another player by passing its reference as a -parameter to the method -<i>Player.start_game. -</i> -<h3>Class and interface summary -</h3> -<table BORDER=1 CELLPADDING=3 CELLSPACING=0 WIDTH="100%"> - <col> - <col> - <tr> - <th COLSPAN=2 BGCOLOR="#e6e6ff"> - Executables classes - </th> - </tr> - <tr> - <td> - Demo - </td> - <td> - The main executable class of the game client. - </td> - </tr> - <tr> - <td> - X5Server - </td> - <td> - The main executable class of the game manager server. - </td> - </tr> -</table> -<p></p> -<table BORDER=1 CELLPADDING=3 CELLSPACING=0 WIDTH="100%"> - <tr BGCOLOR="#ccccff"> - <th COLSPAN=2 BGCOLOR="#e6e6ff"> - Interface Summary - </th> - </tr> - <tr> - <td> - GameManager - </td> - <td> - The game manager interface. - </td> - </tr> - <tr> - <td> - Player - </td> - <td> - Defines remote methods that are invoked by another player or by - the challenge server. - </td> - </tr> - <tr> - <td> - State - </td> - <td> - Defines the states in that the player can be. - </td> - </tr> -</table> - -<table BORDER=1 CELLPADDING=3 CELLSPACING=0 WIDTH="100%"> - <col> - <col> - <tr BGCOLOR="#ccccff"> - <th COLSPAN=2 BGCOLOR="#e6e6ff"> - Class Summary - </th> - </tr> - <tr> - <td> - _GameManager_Stub - </td> - <td> - Normally generated with rmic compiler, this class represents - the GameManager Stub on the client side. - </td> - </tr> - <tr> - <td> - _GameManagerImpl_Tie - </td> - <td> - Normally generated with rmic compiler, this class represents - the GameManager Tie on the client side. - </td> - </tr> - <tr> - <td> - _Player_Stub - </td> - <td> - Generate with rmic, command line rmic -iiop -poa -keep - gnu.classpath.examples.CORBA.swing.x5.PlayerImpl (the compiled - package must be present in the current folder). - </td> - </tr> - <tr> - <td> - _PlayerImpl_Tie - </td> - <td> - Generate with rmic, command line rmic -iiop -poa -keep - gnu.classpath.examples.CORBA.swing.x5.PlayerImpl (the compiled - package must be present in the current folder). - </td> - </tr> - <tr> - <td> - ChatConstants - </td> - <td> - The chat color code constants, used to indicate who is talking. - </td> - </tr> - <tr> - <td> - ClientFrame - </td> - <td> - The JFrame of the GUI client. - </td> - </tr> - <tr> - <td> - GameManagerImpl - </td> - <td> - The manager connects two players into the game. - </td> - </tr> - <tr> - <td> - IorReader - </td> - <td> - Reads the remote URL. - </td> - </tr> - <tr> - <td> - OrbStarter - </td> - <td> - Starts the ORBs, involved into this application. - </td> - </tr> - <tr> - <td> - PlayerImpl - </td> - <td> - The implementation of the PlayerCommunicator, providing the - local functionality. - </td> - </tr> - <tr> - <td> - PlayingDesk - </td> - <td> - Manages actions, related to the game rules and also does all - painting. - </td> - </tr> -</table> -<h3>See also -</h3> -<p> - <a HREF="http://www.javascripter.net/games/xo/xo.htm">http://www.javascripter.net/games/xo/xo.htm - </a> -</p> -<p> - <a HREF="http://www.leepoint.net/notes-java/45examples/55games/five/five.html">http://www.leepoint.net/notes-java/45examples/55games/five/five.html - </a> -</p> -<p>Copyright -</p> -<p> - <font COLOR="#b3b3b3">Copyright (C) 2005 Free Software Foundation, - Inc. This file is part of GNU Classpath. GNU Classpath is free - software; you can redistribute it and/or modify it under the terms of - the GNU General Public License as published by the Free Software - Foundation; either version 2, or (at your option) any later version. - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. You should have received a - copy of the GNU General Public License along with GNU Classpath; see - the file COPYING. If not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. As a special exception, the copyright holders of this - library give you permission to link this library with independent - modules to produce an executable, regardless of the license terms of - these independent modules, and to copy and distribute the resulting - executable under terms of your choice, provided that you also meet, - for each linked independent module, the terms and conditions of the - license of that module. An independent module is a module which is - not derived from or based on this library. If you modify this - library, you may extend this exception to your version of the - library, but you are not obligated to do so. If you do not wish to do - so, delete this exception statement from your version. - </font> -</p> -<p> - <br> - <br> -</p> -<p> -First version written by <a href="http://savannah.gnu.org/users/audriusa"> -Audrius Meškauskas</a> -</p> -</body> -</html> diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java deleted file mode 100644 index 5ec902d..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java +++ /dev/null @@ -1,307 +0,0 @@ -/* CanvasWorld.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JScrollPane; - -/** - * The purpose of this simple example is to check if the mouse events are - * correctly received in a scrollable canvas and also if the canvas are - * correctly repainted. The similar canvas are used in various games and - * interactive demonstrations. - * - * The user can set one of the three possible figures with the different - * mouse buttons. The figure must be set where the user have clicked the - * mouse. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class CanvasWorld - extends JComponent - implements MouseListener, State -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * Red oval, set by the left mouse button. - */ - public static final int RED = 0; - - /** - * Black cross, set by the right mouse button. - */ - public static final int BLACK = 1; - - /** - * Blue and smaller oval, set by the middle mouse button. - */ - public static final int HINT = 2; - - /** - * The message string is displayed at the top of the window. - */ - String message = "Click left, right or middle button in to set the figure"; - - /** - * The additinal message, related to the mouse events. - */ - String mouse = "No mouse event so far"; - - /** - * The grid spacing. - */ - static int W = 16; - - /** - * The radius of the dots being painted. - */ - static int R = W / 3; - - /** - * The collection of the red dots. - */ - ArrayList reds = new ArrayList(); - - /** - * The collection of the black crosses. - */ - ArrayList blacks = new ArrayList(); - - /** - * The collection of the smaller blue crosses. - */ - ArrayList hints = new ArrayList(); - - public CanvasWorld() - { - try - { - addMouseListener(this); - } - catch (Exception e) - { - throw new AssertionError(e); - } - } - - /** - * Paint this component. - */ - public void paintComponent(Graphics g) - { - int w = getWidth(); - int h = getHeight(); - - g.setColor(Color.white); - g.fillRect(0, 0, w, h); - - drawGrid(w, h, g); - - g.setColor(Color.black); - - g.drawString(message, W, W); - g.drawString(mouse, W, 2*W); - - drawFigures(g); - } - - /** - * Check for the presence of the given point in the collection. - */ - public final boolean pointPresent(int x, int y, Collection in) - { - Iterator iter = in.iterator(); - Point p; - while (iter.hasNext()) - { - p = (Point) iter.next(); - if (p.x == x && p.y == y) - return true; - } - return false; - } - - public void drawGrid(int w, int h, Graphics g) - { - g.setColor(Color.lightGray); - - int xs = 2*W+W/2; - - // Draw vertical lines: - for (int x = 0; x < w; x += W) - { - g.drawLine(x, xs, x, h); - } - - // Draw horizontal lines: - for (int y = 3*W; y < h; y += W) - { - g.drawLine(0, y, w, y); - } - - g.setColor(Color.gray); - } - - public void drawFigures(Graphics g) - { - g.setColor(Color.red); - drawDots(reds, g, RED); - - g.setColor(Color.black); - drawDots(blacks, g, BLACK); - - g.setColor(Color.blue); - drawDots(hints, g, HINT); - } - - public Point makePoint(int x, int y) - { - return new Point(x / W, y / W); - } - - /** - * Draw a collection of dots (the collor must be set before calling the - * method). - */ - public void drawDots(Collection dots, Graphics g, int mode) - { - Iterator iter = dots.iterator(); - int x; - int y; - - int hW = W / 2; - int RR = R * 2; - int hR = R / 2; - Point p; - while (iter.hasNext()) - { - p = (Point) iter.next(); - x = p.x * W + hW; - y = p.y * W + hW; - - if (mode == RED) - g.drawOval(x - R, y - R, RR, RR); - else if (mode == BLACK) - { - g.drawLine(x - R, y - R, x + R, y + R); - g.drawLine(x - R, y + R, x + R, y - R); - } - else - { - // Hint. - g.drawOval(x - hR, y - hR, R, R); - } - } - } - - public void mouseClicked(MouseEvent e) - { - int x = e.getX(); - int y = e.getY(); - - Point p = makePoint(x, y); - - // Ignore clicks on the occupied cells. - if (pointPresent(p.x, p.y, reds) || (pointPresent(p.x, p.y, blacks))) - { - message = "Clicked on the occupied cell."; - return; - } - else - message = "Figure set at ["+p.x+","+p.y+"]"; - - if (e.getButton() == MouseEvent.BUTTON1) - reds.add(p); - else if (e.getButton() == MouseEvent.BUTTON3) - blacks.add(p); - else if (e.getButton() == MouseEvent.BUTTON2) - hints.add(p); - repaint(); - } - - public void mouseEntered(MouseEvent m) - { - mouse = "Mouse entered."; - repaint(); - } - - public void mousePressed(MouseEvent m) - { - mouse = "Mouse pressed at "+m.getX()+","+m.getY(); - repaint(); - } - - public void mouseReleased(MouseEvent m) - { - mouse = "Mouse released at "+m.getX()+","+m.getY(); - repaint(); - } - - public void mouseExited(MouseEvent m) - { - mouse = "Mouse exited"; - repaint(); - } - - public static void main(String[] args) - { - JFrame frame = new JFrame(); - CanvasWorld world = new CanvasWorld(); - world.setPreferredSize(new Dimension(1000,1000)); - frame.add(new JScrollPane(world)); - frame.setSize(400, 200); - frame.setVisible(true); - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java deleted file mode 100644 index 5b3d755..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java +++ /dev/null @@ -1,80 +0,0 @@ -/* ChatConstants.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Color; - -/** - * The chat color code constants, used to indicate who is talking. - * Additionally, the red color is reseved for the most important messages, - * related to the start and end of the game. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class ChatConstants -{ - /** - * Messages from the local system. - */ - public static byte SYSTEM = 0; - - /** - * Mirrored messsages from the local player. - */ - public static byte SELF = 1; - - /** - * Messages from the remote player. - */ - public static byte REMOTE_PLAYER = 2; - - /** - * Messages from the game server/ - */ - public static byte GAME_SERVER = 3; - - /** - * The array of the used colors. - */ - public static Color[] colors = - new Color[] - { - Color.black, new Color(0, 80, 0), new Color(0, 0, 128), Color.blue - }; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java deleted file mode 100644 index 04b8dd9..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java +++ /dev/null @@ -1,417 +0,0 @@ -/* ClientFrame.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.GridLayout; -import java.awt.event.*; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; - -import java.rmi.RemoteException; - -import javax.rmi.PortableRemoteObject; - -import javax.swing.*; -import java.awt.Dimension; - -/** - * The JFrame of the GUI client. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class ClientFrame - extends JFrame -{ - /** - * The size of the playing field. - */ - public final Dimension DESK_SIZE = - new Dimension(624, 352-PlayingDesk.W); - - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - // Define the application components: - - /** - * Central panel where the main action takes place. - */ - PlayingDesk desk = new PlayingDesk(); - - /** - * The scroll pane for canvas. - */ - JScrollPane scroll = new JScrollPane(); - - /** - * Will remember the manager IOR. - */ - String mior = ""; - - // The bottom panel contains the area that is used both to enter URL and - // for chatting. - JPanel pnBottom = new JPanel(); - - BorderLayout layBottom = new BorderLayout(); - - JTextField taUrl = new JTextField(); - - // The top primitive chatting panel, composed from labels. - JPanel pnChat = new JPanel(); - - GridLayout layChat = new GridLayout(); - - JLabel lbC3 = new JLabel(); - - JLabel lbC2 = new JLabel(); - - JLabel lbC1 = new JLabel(); - - // The button panel. - JPanel pnButtons = new JPanel(); - - GridLayout layButtons = new GridLayout(); - - JButton bLeave = new JButton(); - - JButton bConnect = new JButton(); - - JButton bExit = new JButton(); - - JButton bReset = new JButton(); - - JLabel lbState = new JLabel(); - - JButton bChat = new JButton(); - - JButton bPaste = new JButton(); - - public ClientFrame() - { - try - { - jbInit(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - private void jbInit() - throws Exception - { - desk.frame = this; - - pnBottom.setLayout(layBottom); - - pnChat.setLayout(layChat); - layChat.setColumns(1); - layChat.setRows(3); - - lbC1.setText("This program needs the game server (see README on how to start it)."); - lbC2.setText("Enter the game server address (host:port)"); - lbC3.setText("Pressing \'Connect\' with the empty address will start the server on " - + "the local machine."); - bLeave.setEnabled(true); - bLeave.setToolTipText("Leave if either you have lost or do not want longer to play with " - + "this partner."); - bLeave.setText("Leave game"); - bLeave.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bLeave_actionPerformed(e); - } - }); - bConnect.setToolTipText("Connect your playing partner"); - bConnect.setText("Connect"); - bConnect.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bConnect_actionPerformed(e); - } - }); - pnButtons.setLayout(layButtons); - bExit.setToolTipText("Exit this program"); - bExit.setText("Exit"); - bExit.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bExit_actionPerformed(e); - } - }); - layButtons.setHgap(2); - bReset.setToolTipText("Restart the game. The partner may choose to exit!"); - bReset.setText("Reset game"); - bReset.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bReset_actionPerformed(e); - } - }); - lbState.setText("Disconnected"); - bChat.setToolTipText("Send message to player. Reuse the address "+ - "field to enter the message."); - bChat.setText("Chat"); - bChat.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bChat_actionPerformed(e); - } - }); - - bPaste.setText("Paste"); - bPaste.setToolTipText("Paste, same as Ctrl-V"); - bPaste.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - bPaste_actionPerformed(e); - } - }); - - desk.setMaximumSize(DESK_SIZE); - desk.setPreferredSize(DESK_SIZE); - - scroll.getViewport().add(desk, null); - getContentPane().add(scroll, BorderLayout.CENTER); - getContentPane().add(pnBottom, BorderLayout.SOUTH); - - pnBottom.add(taUrl, BorderLayout.CENTER); - pnBottom.add(pnChat, BorderLayout.NORTH); - - pnChat.add(lbC1, null); - pnChat.add(lbC2, null); - pnChat.add(lbC3, null); - pnBottom.add(pnButtons, BorderLayout.SOUTH); - pnButtons.add(lbState, null); - pnButtons.add(bConnect, null); - pnButtons.add(bChat, null); - pnButtons.add(bLeave, null); - pnButtons.add(bReset, null); - pnButtons.add(bExit, null); - pnButtons.add(bPaste, null); - - desk.player.set_current_state(State.DISCONNECTED); - } - - /** - * Handles exit procedure. - */ - protected void processWindowEvent(WindowEvent e) - { - super.processWindowEvent(e); - if (e.getID() == WindowEvent.WINDOW_CLOSING) - { - bExit_actionPerformed(null); - } - } - - /** - * Handles the connection procedure. - */ - void bConnect_actionPerformed(ActionEvent e) - { - try - { - int state = desk.player.get_current_state(); - - if (state == State.DISCONNECTED || state == State.ERROR) - { - talk(ChatConstants.colors[0], "Connecting..."); - - if (desk.manager == null) - { - mior = taUrl.getText().trim(); - - // Obtain the manager object: - org.omg.CORBA.Object object = null; - - try - { - object = desk.orb.string_to_object(mior); - } - catch (Exception exc) - { - // Maybe CORBA 3.0.3 is not completely implemented? - if (mior.startsWith("http://") || mior.startsWith("ftp://") - || mior.startsWith("file://")) - object = desk.orb.string_to_object(IorReader.readUrl(mior)); - else - throw exc; - } - - desk.manager = (GameManager) PortableRemoteObject.narrow( - object, GameManager.class); - - // Export the desk.player as a remote object. - PortableRemoteObject.exportObject(desk.player); - } - - desk.player.set_current_state(State.QUEUED); - desk.manager.requestTheGame(desk.player); - } - - // Save the specified IOR for the future use: - File gmf = new File(OrbStarter.WRITE_URL_TO_FILE); - FileWriter f = new FileWriter(gmf); - BufferedWriter b = new BufferedWriter(f); - - b.write(mior); - b.close(); - } - catch (Exception ex) - { - talk(Color.red, "The manager is not reachable by this address."); - talk(Color.red, ex.getMessage()); - desk.player.set_current_state(State.DISCONNECTED); - } - } - - /** - * Display the new message with the given color. Shift the other messages over - * the labels. - */ - public void talk(Color color, String text) - { - lbC1.setText(lbC2.getText()); - lbC1.setForeground(lbC2.getForeground()); - - lbC2.setText(lbC3.getText()); - lbC2.setForeground(lbC3.getForeground()); - - lbC3.setText(text); - lbC3.setForeground(color); - } - - /** - * Exit this program. - */ - void bExit_actionPerformed(ActionEvent e) - { - try - { - if (desk.player.get_current_state() != State.DISCONNECTED - && desk.player.partner != null) - { - desk.player.partner.receive_chat(ChatConstants.REMOTE_PLAYER, - "I close the program!"); - desk.player.partner.disconnect(); - } - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application that - // may be modified for learning purposes. - ex.printStackTrace(); - } - System.exit(0); - } - - void bReset_actionPerformed(ActionEvent e) - { - if (desk.player.partner != null) - { - try - { - desk.player.partner.receive_chat(ChatConstants.REMOTE_PLAYER, - "Your partner restarted the game."); - - desk.player.start_game(desk.player.partner, false); - desk.player.partner.start_game(desk.player, true); - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application - // that - // may be modified for learning purposes. - ex.printStackTrace(); - } - } - else - talk(Color.black, "You have not started the game yet."); - } - - void bLeave_actionPerformed(ActionEvent e) - { - desk.player.leave(); - } - - void bChat_actionPerformed(ActionEvent e) - { - try - { - if (desk.player.partner != null) - { - String message = taUrl.getText(); - desk.player.partner.receive_chat(ChatConstants.REMOTE_PLAYER, message); - talk(ChatConstants.colors[ChatConstants.SELF], message); - taUrl.setText(""); - } - else - { - talk(Color.black, "Sorry, not connected to anybody"); - } - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application that - // may be modified for learning purposes. - ex.printStackTrace(); - } - } - - /** - * Work around our keyboard shortcut handling that is still not working - * properly. - */ - void bPaste_actionPerformed(ActionEvent e) - { - taUrl.paste(); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java deleted file mode 100644 index 3461f02..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java +++ /dev/null @@ -1,99 +0,0 @@ -/* Demo.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Dimension; -import java.awt.Toolkit; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; - -/** - * The main executable class of the game client. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class Demo -{ - - public static void main(String[] args) - { - ClientFrame frame = new ClientFrame(); - frame.setSize(new Dimension(640, 480)); - frame.setTitle("Make vertical, horizontal or diagonal line of 5 dots. " - + "Click mouse to set the dot."); - frame.validate(); - - // Center the window - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension frameSize = frame.getSize(); - if (frameSize.height > screenSize.height) - { - frameSize.height = screenSize.height; - } - if (frameSize.width > screenSize.width) - { - frameSize.width = screenSize.width; - } - frame.setLocation((screenSize.width - frameSize.width) / 2, - (screenSize.height - frameSize.height) / 2); - frame.setVisible(true); - - // Set the ior. - try - { - if (OrbStarter.WRITE_URL_TO_FILE != null) - { - File saved_ior = new File(OrbStarter.WRITE_URL_TO_FILE); - if (saved_ior.exists()) - { - FileReader f = new FileReader(saved_ior); - String s = new BufferedReader(f).readLine(); - frame.taUrl.setText(s); - } - } - } - catch (Exception e) - { - // We will print the exception, because this is a demo program - - // expected to be modified by user. - e.printStackTrace(); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java deleted file mode 100644 index c08f49a..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java +++ /dev/null @@ -1,68 +0,0 @@ -/* GameManager.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.rmi.Remote; -import java.rmi.RemoteException; - -/** - * The game manager interface. - * - * Defines the operations of the game server that connects two players into - * the game. The game server does not participate in the game itself. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public interface GameManager extends Remote -{ - /** - * Register the newPlayer as the person who is willing to play. When another - * player calls this method, the Manager connects them by calling - * {@link PlayerCommunicator#start_game}. The manager provides the partner - * and sets (randomly) the starting side. - */ - void requestTheGame(Player newPlayer) throws RemoteException; - - /** - * Unregister the player that left and is no longer waiting for a playing - * partner to come. - * @throws RemoteException - */ - void unregister(Player player) throws RemoteException; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java deleted file mode 100644 index cf30531..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java +++ /dev/null @@ -1,135 +0,0 @@ -/* GameManagerImpl.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.rmi.RemoteException; - -import org.omg.CORBA.ORB; -import org.omg.CORBA.Object; - -/** - * The manager connects two players into the game. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class GameManagerImpl - implements GameManager -{ - /** - * The game manager IOR. - */ - static String ior; - - /** - * The game manager ORB. - */ - static ORB orb; - - /** - * True if the manager started ok. - */ - static boolean ok; - - /** - * Another player that is already waiting for the game. - */ - Player queuedPlayer = null; - - public synchronized void requestTheGame(Player newPlayer) - throws RemoteException - { - System.out.println("Game requested"); - - if (queuedPlayer == null) - { - // No other player so far. - newPlayer.receive_chat(ChatConstants.GAME_SERVER, - "Request registered, waiting for the other player to come..."); - System.out.println("Player queued."); - queuedPlayer = newPlayer; - } - else if (queuedPlayer.equals(newPlayer)) - { - // The same player applies again. - newPlayer.receive_chat(ChatConstants.GAME_SERVER, - "No other player so far... Please wait."); - } - else - { - // As the queued player waited for the game, we allow him/her - // to start the game. This is a reward for waiting. - newPlayer.receive_chat(ChatConstants.GAME_SERVER, - "The other player is waiting. The game started, your " - + "partner begins..."); - queuedPlayer.receive_chat(ChatConstants.GAME_SERVER, - "The other player arrived. Lets play, you begin the game now..."); - - newPlayer.start_game(queuedPlayer, false); - queuedPlayer.start_game(newPlayer, true); - - queuedPlayer = null; - System.out.println("Players connected."); - } - } - - /** - * Unregister the player who left and is no longer waiting for another side. - */ - public void unregister(Player player) - throws RemoteException - { - if (queuedPlayer != null) - { - // We need to verify the identity of the player being unregistered. - // The stubs, being derived from the org.omg.CORBA.Object, have the - // method for this. This method compares the player host address, - // used port and the object key. - if (player instanceof Object && queuedPlayer instanceof Object) - { - Object a = (Object) player; - Object b = (Object) queuedPlayer; - - if (a._is_equivalent(b)) - queuedPlayer = null; - } - else - queuedPlayer = null; - } - System.out.println("Unregistering player"); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java deleted file mode 100644 index 4afd475..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java +++ /dev/null @@ -1,124 +0,0 @@ -/* IorReader.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; - -import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.DATA_CONVERSION; - -/** - * Reads the remote URL. Following formal/04-03-12, CORBA should be able to do - * this without the help of this class. However some popular class libraries - * are written using the older CORBA specifications and may not handle - * functionality, require by this game. This class substitutes the functionality, - * ensuring that these implementations will also start and we will be able - * to test the interoperability. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class IorReader -{ - /** - * Read IOR from the remote URL. - */ - public static String readUrl(String url) - { - URL u; - try - { - u = new URL(url); - } - catch (MalformedURLException mex) - { - throw new BAD_PARAM("Malformed URL: '" + url + "'"); - } - - try - { - InputStreamReader r = new InputStreamReader(u.openStream()); - - StringBuilder b = new StringBuilder(); - int c; - - while ((c = r.read()) > 0) - b.append((char) c); - - return b.toString().trim(); - } - catch (Exception exc) - { - DATA_CONVERSION d = new DATA_CONVERSION("Reading " + url + " failed."); - throw d; - } - } - - /** - * Read IOR from the file in the local file system. - */ - public static String readFile(String file) - { - File f = new File(file); - if (!f.exists()) - { - DATA_CONVERSION err = new DATA_CONVERSION(f.getAbsolutePath() - + " does not exist."); - throw err; - } - try - { - char[] c = new char[(int) f.length()]; - FileReader fr = new FileReader(f); - fr.read(c); - fr.close(); - return new String(c).trim(); - } - catch (IOException ex) - { - DATA_CONVERSION d = new DATA_CONVERSION(); - d.initCause(ex); - throw (d); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java deleted file mode 100644 index 5463265..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java +++ /dev/null @@ -1,236 +0,0 @@ -/* OrbStarter.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.rmi.RemoteException; -import java.util.Properties; - -import javax.rmi.PortableRemoteObject; -import javax.rmi.CORBA.Tie; - -import org.omg.CORBA.ORB; -import org.omg.PortableServer.POA; -import org.omg.PortableServer.POAHelper; -import org.omg.PortableServer.Servant; - -/** - * Starts the ORBs, involved into this application. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class OrbStarter -{ - /** - * The game manager name server port. This server allows to access the game - * manager by host (IP) and port rather than by the rather long IOR string. - */ - static int MANAGER_NAMER_PORT = 1500; - - /** - * The used port range (understood and used by GNU Classpath only). - */ - static String USED_PORT_RANGE = "1501-1503"; - - /** - * Specify the file where under start the game manager writes its IOR. - * You may specify the path if the game manager and player clients have - * access to some share file system or if you prefer to write IOR to - * floppy and then read from the floppy on the client side. Both clients - * and server will use this constant. Set to null not to write the IOR. - */ - static String WRITE_URL_TO_FILE = "game_manager_ior.txt"; - - /** - * Start the manager ORB. - * @return the manager URL if it starts. - */ - public static String startManager(final String[] args) - { - GameManagerImpl.ior = null; - GameManagerImpl.ok = false; - - final Properties p = new Properties(); - p.put("gnu.CORBA.ListenerPort", USED_PORT_RANGE); - - try - { - new Thread() - { - public void run() - { - try - { - GameManagerImpl.orb = ORB.init(args, p); - - // Obtain the root poa: - POA rootPOA = POAHelper.narrow(GameManagerImpl.orb.resolve_initial_references("RootPOA")); - - GameManagerImpl impl = new GameManagerImpl(); - - PortableRemoteObject.exportObject(impl); - - // Construct the tie that is also the servant. - Tie tie = new _GameManagerImpl_Tie(); - - // Set the invocation target for this tie. - tie.setTarget(impl); - - // Obtain the reference to the corresponding CORBA object: - org.omg.CORBA.Object object = rootPOA.servant_to_reference((Servant) tie); - - GameManagerImpl.ok = true; - - // Activate the root POA. - rootPOA.the_POAManager().activate(); - - // Get the IOR URL that must be passed to clients. - GameManagerImpl.ior = GameManagerImpl.orb.object_to_string(object); - - GameManagerImpl.orb.run(); - } - catch (Exception exc) - { - exc.printStackTrace(); - GameManagerImpl.ior = "Unable to start the ORB: " + exc; - } - } - }.start(); - - // Wait the thread to enter orb.run. - long t = System.currentTimeMillis(); - while (GameManagerImpl.ior == null - && System.currentTimeMillis() - t < 20000) - { - Thread.sleep(100); - } - - return GameManagerImpl.ior; - } - catch (Exception e) - { - e.printStackTrace(); - return "Exception: " + e; - } - } - - /** - * Start the client ORB. - */ - public static String startPlayer(final Player player, final PlayingDesk desk) - { - desk.ior = null; - desk.ok = false; - - final Properties p = new Properties(); - p.put("gnu.CORBA.ListenerPort", USED_PORT_RANGE); - - try - { - new Thread() - { - public void run() - { - try - { - desk.orb = ORB.init(new String[0], p); - - POA rootPOA = POAHelper.narrow(desk.orb.resolve_initial_references("RootPOA")); - rootPOA.the_POAManager().activate(); - - // Construct the tie. - Tie tie = new _PlayerImpl_Tie(); - - // Set the implementing class (invocation target). - tie.setTarget(new PlayerImpl()); - - // Connect the tie as POA servant. - org.omg.CORBA.Object object = rootPOA.servant_to_reference((Servant) tie); - - // Get the stringified reference. - desk.ior = desk.orb.object_to_string(object); - - // Mark that the object was created OK. - desk.ok = true; - desk.orb.run(); - } - catch (Exception exc) - { - exc.printStackTrace(); - desk.ior = "Unable to start the ORB: " + exc; - } - } - }.start(); - - long t = System.currentTimeMillis(); - while (desk.ior == null && System.currentTimeMillis() - t < 20000) - { - Thread.sleep(100); - } - } - catch (Exception e) - { - e.printStackTrace(); - return "Exception: " + e; - } - - // Add shutdown hook to unregister from the manager. - Runtime.getRuntime().addShutdownHook(new Thread() - { - public void run() - { - if (desk.manager != null && player != null) - { - try - { - desk.manager.unregister(player); - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo - // application that - // may be modified for learning purposes. - ex.printStackTrace(); - } - desk.manager = null; - } - } - }); - return desk.ior; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java deleted file mode 100644 index ced7d5d..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java +++ /dev/null @@ -1,96 +0,0 @@ -/* Player.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Point; - -import java.rmi.Remote; -import java.rmi.RemoteException; - -/** - * Defines remote methods that are invoked by another player or by the - * challenge server. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public interface Player extends Remote -{ - /** - * Receive the invitation to play from the patner or the game manager. - * - * @param address the address (host and port) of the remote partner. - * @param youStart if true, the game manager instructs to start - * the game first (another side is instructed to start the game second). - * - * @return true on success. - */ - boolean start_game(Player otherPlayer, boolean youStart) - throws RemoteException; - - /** - * Get the state of the local player (one of the constants, defined - * in this interface). - */ - int get_current_state() throws RemoteException; - - /** - * Receive the chat message from the friend or challenge server (remote). - * Possible at any state, always remote. - * - * @param color the color code, used to highlight the message. - * @param text the message text. - */ - void receive_chat(byte color, String test) throws RemoteException; - - /** - * Indicated that the remote side leaves the game (capitulating). - */ - void disconnect() throws RemoteException; - - /** - * Receive friends move (possible at I_WAIT_FOR_YOUR_MOVE). - * - * @param x grid position. - * @param y grid position. - * - * @param sessionId the session id, must match (otherwise the call is ignored). - * @param victory if not a null, the friend thinks that it has won, the parameter - * containing the ends of the builded line. - */ - void receive_move(int x, int y, Point[] victory) throws RemoteException; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java deleted file mode 100644 index 30b32c4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java +++ /dev/null @@ -1,275 +0,0 @@ -/* PlayerImpl.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Color; -import java.awt.Point; - -import java.rmi.RemoteException; - -/** - * The implementation of the PlayerCommunicator, providing the local - * functionality. Apart remote methods, the class also defines some local - * methods, needed for the co-ordinated work with the game user interface. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class PlayerImpl - implements Player, State -{ - /** - * The playing table. - */ - PlayingDesk desk; - - /** - * The state of this player (one of the constants, defined in the player - * interface. - */ - private int state = DISCONNECTED; - - /** - * The other player. - */ - Player partner; - - /** - * Called when the local player refuses to continue the game. - */ - public void leave() - { - try - { - if (state == I_THINK || state == I_WAIT_FOR_YOUR_MOVE) - { - partner.receive_chat(ChatConstants.REMOTE_PLAYER, - "Your partner has left the game."); - partner.disconnect(); - } - else if (state == State.QUEUED) - { - if (desk.manager != null) - desk.manager.unregister(desk.player); - receive_chat(ChatConstants.SYSTEM, - "Do not be so pessimistic, try to play first!"); - } - set_current_state(State.DISCONNECTED); - - desk.frame.bChat.setEnabled(false); - desk.frame.bLeave.setEnabled(false); - desk.frame.bConnect.setEnabled(true); - desk.frame.taUrl.setText(desk.frame.mior); - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application that - // may be modified for learning purposes. - ex.printStackTrace(); - } - } - - /** - * Called when we make the move. The PlayingTable is responsible for checking - * the correctness of the move and detecting the victory. - * - * @param x x position of the new dot. - * @param y y position of the new dot. - * - * @param victory array of two memebers, representing the endpoints of the - * drawn line (victory detected) or null if no such yet exists. - */ - public void we_move(int x, int y, Point[] victory) - { - try - { - set_current_state(I_WAIT_FOR_YOUR_MOVE); - partner.receive_move(x, y, victory); - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application that - // may be modified for learning purposes. - ex.printStackTrace(); - - state = ERROR; - } - } - - /** - * Set the current state. - */ - public void set_current_state(int new_state) - { - state = new_state; - - if (state == DISCONNECTED) - { - setStatus("Disconnected"); - } - else if (state == I_THINK) - { - setStatus("Our move"); - } - else if (state == I_WAIT_FOR_YOUR_MOVE) - { - setStatus("Partner's move"); - } - else if (state == ERROR) - { - setStatus("Error."); - } - else if (state == I_HAVE_LOST) - { - setStatus("We lost"); - } - else if (state == I_HAVE_WON) - { - setStatus("Victory"); - } - else if (state == QUEUED) - { - setStatus("Queued"); - } - else - { - setStatus("State " + state); - } - - boolean connected = state != State.DISCONNECTED; - - desk.frame.bConnect.setEnabled(!connected && state != State.QUEUED); - desk.frame.bReset.setEnabled(connected); - desk.frame.bLeave.setEnabled(connected); - desk.frame.bChat.setEnabled(connected); - } - - /** - * Show the state in the status line. - */ - public void setStatus(String status) - { - desk.frame.lbState.setText(status); - } - - /** - * Receive the invitation to play from the patner or the game manager. - * - * @param address the address (host and port) of the remote partner. - * @param youStart if true, the game manager instructs to start the game first - * (another side is instructed to start the game second). - * - * Game server may also chat a little bit with both players, saying that the - * game has started. - * - * @return true on success. - */ - public boolean start_game(Player otherPlayer, boolean youStart) - throws RemoteException - { - partner = otherPlayer; - desk.reset(); - - if (youStart) - { - set_current_state(I_THINK); - } - else - { - set_current_state(I_WAIT_FOR_YOUR_MOVE); - } - - desk.frame.taUrl.setText(""); - - return true; - } - - /** - * Get the state of the local player (one of the constants, defined in this - * interface). - */ - public int get_current_state() - throws RemoteException - { - return state; - } - - /** - * Receive the chat message from the friend or challenge server (remote). - * Possible at any state, always remote. - * - * @param color the color code, used to highlight the message. - * @param text the message text. - */ - public void receive_chat(byte color, String text) - throws RemoteException - { - if (color >= ChatConstants.colors.length) - color = ChatConstants.REMOTE_PLAYER; - - desk.frame.talk(ChatConstants.colors[color], text); - } - - /** - * Indicated that the remote side leaves the game (capitulating). - */ - public void disconnect() - throws RemoteException - { - desk.frame.talk(Color.red, "The partner leaves the game."); - partner = null; - set_current_state(DISCONNECTED); - - desk.frame.taUrl.setText(desk.frame.mior); - } - - /** - * Receive friends move (possible at I_WAIT_FOR_YOUR_MOVE). - * - * @param x grid position. - * @param y grid position. - * @param victory if not a null, the friend thinks that it has won, the - * parameter containing the ends of the builded line. - */ - public void receive_move(int x, int y, Point[] victory) - throws RemoteException - { - // The state changes are handled by the PlayingTable - desk.friendsMove(x, y, victory); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java deleted file mode 100644 index 681d42e..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java +++ /dev/null @@ -1,512 +0,0 @@ -/* PlayingDesk.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import javax.swing.JComponent; - -import org.omg.CORBA.ORB; - -/** - * Manages actions, related to the game rules and also does all painting. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class PlayingDesk - extends JComponent - implements MouseListener, State -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * Indicates that the field point state is the red oval. - */ - public static final int RED = 0; - - /** - * Indicates that the field point state is the black cross. - */ - public static final int BLACK = 1; - - /** - * Indicates that the field point state is the hint, suggested by the fan. - */ - public static final int HINT = 2; - - /** - * The access to the main frame methods. - */ - ClientFrame frame; - - /** - * The access to the player communicator. - */ - PlayerImpl player; - - /** - * The game manager. - */ - GameManager manager; - - /** - * The player ORB. - */ - ORB orb; - - /** - * The player IOR. - */ - String ior; - - /** - * True if the player ORB started ok. - */ - boolean ok; - - /** - * The grid spacing. - */ - static int W = 16; - - /** - * The radius of the dots being painted. - */ - static int R = W / 3; - - /** - * The collection of the red dots. - */ - ArrayList reds = new ArrayList(); - - /** - * The collection of the black dots. - */ - ArrayList blacks = new ArrayList(); - - /** - * The array of hints. - */ - ArrayList hints = new ArrayList(); - - /** - * When the game is completed, obtains the value of the two end points of the - * created line. - */ - Point[] endOfGame; - - public PlayingDesk() - { - try - { - player = new PlayerImpl(); - player.desk = this; - - OrbStarter.startPlayer(player, this); - - jbInit(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - /** - * Paint this component. - */ - public void paintComponent(Graphics g) - { - int w = getWidth(); - int h = getHeight(); - - g.setColor(Color.white); - g.fillRect(0, 0, w, h); - - drawGrid(w, h, g); - drawFigures(g); - } - - /** - * Check maybe a game is finished after setting the point N - */ - public Point[] checkFinished(Collection x, Point N) - { - Iterator iter = x.iterator(); - Point p; - - // The victory, if happens, must occur inside these boundaries: - int ax = N.x - 5; - int bx = N.x + 5; - - int ay = N.y - 5; - int by = N.y + 5; - - while (iter.hasNext()) - { - p = (Point) iter.next(); - - if (p.x > ax && p.x < bx && p.y > ay && p.y < by) - { - // Check the vertical line down - if (pointPresent(p.x, p.y + 1, x)) - if (pointPresent(p.x, p.y + 2, x)) - if (pointPresent(p.x, p.y + 3, x)) - if (pointPresent(p.x, p.y + 4, x)) - return new Point[] { p, new Point(p.x, p.y + 4) }; - - // Check the horizontal line left - if (pointPresent(p.x + 1, p.y, x)) - if (pointPresent(p.x + 2, p.y, x)) - if (pointPresent(p.x + 3, p.y, x)) - if (pointPresent(p.x + 4, p.y, x)) - return new Point[] { p, new Point(p.x + 4, p.y) }; - - // Check the diagonal line right down. - if (pointPresent(p.x + 1, p.y + 1, x)) - if (pointPresent(p.x + 2, p.y + 2, x)) - if (pointPresent(p.x + 3, p.y + 3, x)) - if (pointPresent(p.x + 4, p.y + 4, x)) - return new Point[] { p, new Point(p.x + 4, p.y + 4) }; - - // Check the diagonal line left down. - if (pointPresent(p.x - 1, p.y + 1, x)) - if (pointPresent(p.x - 2, p.y + 2, x)) - if (pointPresent(p.x - 3, p.y + 3, x)) - if (pointPresent(p.x - 4, p.y + 4, x)) - return new Point[] { p, new Point(p.x - 4, p.y + 4) }; - } - } - return null; - } - - /** - * Called when the "end of the game" situation is detected. - */ - public void drawFinishLine(int xa, int ya, int xb, int yb, Graphics g) - { - g.setColor(Color.blue); - - int hW = W / 2; - g.drawLine(xa * W + hW, ya * W + hW, xb * W + hW, yb * W + hW); - } - - /** - * Check for the presence of the given point in the collection. - */ - public final boolean pointPresent(int x, int y, Collection in) - { - Iterator iter = in.iterator(); - Point p; - while (iter.hasNext()) - { - p = (Point) iter.next(); - if (p.x == x && p.y == y) - return true; - } - return false; - } - - public void drawGrid(int w, int h, Graphics g) - { - g.setColor(Color.lightGray); - - // Draw vertical lines: - for (int x = 0; x < w; x += W) - { - g.drawLine(x, 0, x, h); - } - - // Draw horizontal lines: - for (int y = 0; y < h; y += W) - { - g.drawLine(0, y, w, y); - } - - g.setColor(Color.gray); - g.drawRect(0,0, frame.DESK_SIZE.width, frame.DESK_SIZE.height); - g.drawRect(0,0, frame.DESK_SIZE.width+3, frame.DESK_SIZE.height+3); - } - - public void drawFigures(Graphics g) - { - g.setColor(Color.red); - drawDots(reds, g, RED); - - g.setColor(Color.black); - drawDots(blacks, g, BLACK); - - g.setColor(Color.lightGray); - drawDots(hints, g, HINT); - - if (endOfGame != null) - drawFinishLine(endOfGame[0].x, endOfGame[0].y, endOfGame[1].x, - endOfGame[1].y, g); - } - - public Point makePoint(int x, int y) - { - return new Point(x / W, y / W); - } - - /** - * Draw a collection of dots (the collor must be set before calling the - * method). - */ - public void drawDots(Collection dots, Graphics g, int mode) - { - Iterator iter = dots.iterator(); - int x; - int y; - - int hW = W / 2; - int RR = R * 2; - int hR = R / 2; - Point p; - while (iter.hasNext()) - { - p = (Point) iter.next(); - x = p.x * W + hW; - y = p.y * W + hW; - - if (mode == RED) - g.drawOval(x - R, y - R, RR, RR); - else if (mode == BLACK) - { - g.drawLine(x - R, y - R, x + R, y + R); - g.drawLine(x - R, y + R, x + R, y - R); - } - else - { - // Hint. - g.drawOval(x - hR, y - hR, R, R); - } - } - } - - private void jbInit() - throws Exception - { - addMouseListener(this); - } - - public void mouseClicked(MouseEvent e) - { - try - { - int state = player.get_current_state(); - - // Check if the state is correct. - if (state == I_WAIT_FOR_YOUR_MOVE) - { - frame.talk(Color.black, - "It is now time for our partner's move, not ours. Please wait."); - } - else if (state == DISCONNECTED) - { - frame.talk(Color.black, - "We are not connected to the playing partner yet."); - } - else if (state == I_HAVE_LOST) - { - frame.talk(Color.black, - "We have already lost this battle, but why not to try again?"); - } - else if (state == I_HAVE_WON) - { - frame.talk(Color.black, - "The victory is ours, nothing more to do here."); - } - else if (player.partner == null) - frame.talk(Color.black, "No other player so far."); - else - { - int x = e.getX(); - int y = e.getY(); - - if (x>frame.DESK_SIZE.width || - y>frame.DESK_SIZE.height) - { - frame.talk(Color.black,"Outside the game area."); - return; - } - - Point p = makePoint(x, y); - - // Ignore clicks on the occupied cells. - if (pointPresent(p.x, p.y, reds) - || (pointPresent(p.x, p.y, blacks))) - { - frame.talk(Color.black, - "This is against the rules, select the unoccupied cell."); - return; - } - - reds.add(p); - - endOfGame = checkFinished(reds, p); - repaint(); - - if (endOfGame != null) - { - frame.talk(Color.red, "Our move " + p.x + "-" + p.y - + " and we win!"); - player.set_current_state(I_HAVE_WON); - } - else - { - frame.talk(Color.black, "Our move " + p.x + "-" + p.y - + ". Waiting for the other side move..."); - player.set_current_state(I_WAIT_FOR_YOUR_MOVE); - } - - player.partner.receive_move(p.x, p.y, endOfGame); - } - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application - // that may be modified for learning purposes. - ex.printStackTrace(); - } - } - - /** - * Handle the move of the other playing side. - */ - public void friendsMove(int x, int y, Point[] victory) - { - try - { - int state = player.get_current_state(); - if (state != I_WAIT_FOR_YOUR_MOVE || pointPresent(x, y, blacks)) - { - stateFailed("Move " + x + "-" + y); - } - else - { - blacks.add(new Point(x, y)); - - if (victory != null) - { - frame.talk(Color.red, - " We have lost this time, unfortunately.."); - player.set_current_state(I_HAVE_LOST); - endOfGame = victory; - } - else - { - frame.talk(Color.black, "Partner goes " + x + "-" + y - + ". Your move?"); - player.set_current_state(I_THINK); - } - repaint(); - } - } - catch (RemoteException rex) - { - rex.printStackTrace(); - } - } - - /** - * Prepare for the new game. - */ - public void reset() - { - blacks.clear(); - reds.clear(); - hints.clear(); - endOfGame = null; - repaint(); - } - - public void mouseEntered(MouseEvent m) - { - // Nothing to do. - } - - public void mousePressed(MouseEvent m) - { - // Nothing to do. - } - - public void mouseReleased(MouseEvent m) - { - // Nothing to do. - } - - public void mouseExited(MouseEvent m) - { - // Nothing to do. - } - - /** - * The systems detected the error conditions. The game cannot continue (the - * chat is still possible). - */ - public void stateFailed(String reason) - { - try - { - player.receive_chat(ChatConstants.REMOTE_PLAYER, - "Wrong move, game cannot continue (our state was " - + player.get_current_state() + ")"); - frame.talk(Color.red, "The remote side violates communicating rules."); - player.set_current_state(State.ERROR); - } - catch (RemoteException ex) - { - // We will print the exception because this is a demo application - // that may be modified for learning purposes. - ex.printStackTrace(); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java deleted file mode 100644 index a759225..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java +++ /dev/null @@ -1,82 +0,0 @@ -/* State.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -/** - * Defines the states in that the player can be. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public interface State { - /** - * The initial ("disconnected") state. - */ - int DISCONNECTED = 0; - - /** - * The state, indicating that the player has been queued for the game and - * waiting for the partner to come. - */ - int QUEUED = 1; - - /** - * The "my move" state. - */ - int I_THINK = 2; - - /** - * The "friend's move" state. - */ - int I_WAIT_FOR_YOUR_MOVE = 3; - - /** - * States that we have won. - */ - int I_HAVE_WON = 4; - - /** - * States that we have lost. - */ - int I_HAVE_LOST = 5; - - /** - * The "inconsistent" state when it is not possible to continue the game. - */ - int ERROR = -1; -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java deleted file mode 100644 index 516c701..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java +++ /dev/null @@ -1,175 +0,0 @@ -/* GameManagerAddressServer.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.OutputStream; -import java.net.InetAddress; -import java.net.ServerSocket; -import java.net.Socket; - -/** - * The main executable class of the game manager server. - * - * The manager address server returns the IOR address string of the game - * manager. Hence the user does not need to enter the rather long IOR address - * string and only needs to specify the host and port of the machine where the - * game manager is running. - * - * The manager address server starts the main game manager as well. - * - * This server acts as a HTTP server that always returns the same response. This - * primitive functionality is sufficient for its task. - * - * The more complex CORBA applications should use the name service instead. We - * do not use the name service as this would require to start additional - * external application, specific for the different java platforms. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class X5Server -{ - /** - * Start the game manager. - */ - public static void main(String[] args) - { - // Start the game manager, write the IOR to the agreed location. - OrbStarter.startManager(args); - - if (!GameManagerImpl.ok) - { - System.out.println("Unable to start the game manager:"); - System.exit(1); - } - - // Print the IOR. - System.out.println(GameManagerImpl.ior); - - String manager_address = null; - - // Start the game manager server. - ServerSocket nameServer = null; - try - { - nameServer = new ServerSocket(OrbStarter.MANAGER_NAMER_PORT); - - System.out.println("The game manager is listening at:"); - manager_address = "http://" - + InetAddress.getLocalHost().getHostAddress() + ":" - + nameServer.getLocalPort(); - - System.out.println(manager_address); - - System.out.println("Enter this address to the " - + "input field of the game client."); - - System.out.println("Use ^C to stop the manager."); - } - catch (Exception ex) - { - System.out.println("The port " + OrbStarter.MANAGER_NAMER_PORT - + " is not available. The game manager namer will not start."); - System.exit(1); - } - - // Write the IOR to the local file system. - if (OrbStarter.WRITE_URL_TO_FILE != null) - { - try - { - File gmf = new File(OrbStarter.WRITE_URL_TO_FILE); - FileWriter f = new FileWriter(gmf); - BufferedWriter b = new BufferedWriter(f); - - b.write(manager_address); - b.close(); - } - catch (IOException e) - { - System.out.println("Local filesystem not accessible." - + "Read IOR from console."); - } - } - - // Do forever. - while (true) - { - try - { - Socket socket = nameServer.accept(); - - System.out.println("Connected."); - - // Set the two minutes timeout. - socket.setSoTimeout(1000 * 120); - - OutputStream out = socket.getOutputStream(); - - int length = GameManagerImpl.ior.length(); - - StringBuilder b = new StringBuilder(); - b.append("HTTP/1.0 200 OK\r\n"); - b.append("Content-Length: " + length + "\r\n"); - b.append("Connection: close\r\n"); - b.append("Content-Type: text/plain; charset=UTF-8\r\n"); - b.append("\r\n"); - - b.append(GameManagerImpl.ior); - - out.write(b.toString().getBytes("UTF-8")); - - socket.shutdownOutput(); - - if (!socket.isClosed()) - socket.close(); - - System.out.println("Completed."); - } - catch (Exception exc) - { - exc.printStackTrace(); - System.out.println("Network problem."); - } - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java deleted file mode 100644 index 54ef1e9..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java +++ /dev/null @@ -1,209 +0,0 @@ -/* _GameManagerImpl_Tie.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.rmi.Remote; - -import javax.rmi.PortableRemoteObject; -import javax.rmi.CORBA.Tie; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; -import org.omg.CORBA.SystemException; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ResponseHandler; -import org.omg.CORBA.portable.UnknownException; -import org.omg.PortableServer.Servant; - -/** - * Normally generated with rmic compiler, this class represents the GameManager - * Tie on the client side. The Game Manager methods contain the code for remote - * invocation. - * - * This class is normally generated with rmic or grmic from the - * {@link GameManagerImpl}. See tools/gnu/classpath/tools/giop/README. - * - * In this example the class was manually edited and commented for better - * understanding of functionality. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class _GameManagerImpl_Tie - extends Servant - implements Tie -{ - /** - * The target, where remote invocations are forwarded. - */ - private GameManagerImpl target = null; - - /** - * The GameManager repository Id. - */ - private static final String[] _type_ids = - { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; - - /** - * Set the target where the remote invocations are forwarded. - */ - public void setTarget(Remote a_target) - { - this.target = (GameManagerImpl) a_target; - } - - /** - * Get the target where the remote invocations are forwarded. - */ - public Remote getTarget() - { - return target; - } - - /** - * Get the CORBA object for that this Tie is currently serving the request. - * The same tie may serve multiple requests for the different objects in - * parallel threads. - */ - public org.omg.CORBA.Object thisObject() - { - return _this_object(); - } - - /** - * Deactivate this object. - */ - public void deactivate() - { - try - { - _poa().deactivate_object(_poa().servant_to_id(this)); - } - catch (org.omg.PortableServer.POAPackage.WrongPolicy exception) - { - } - catch (org.omg.PortableServer.POAPackage.ObjectNotActive exception) - { - } - catch (org.omg.PortableServer.POAPackage.ServantNotActive exception) - { - } - } - - /** - * Get the ORB for this tie. - */ - public ORB orb() - { - return _orb(); - } - - /** - * Set the ORB for this tie. - */ - public void orb(ORB orb) - { - try - { - ((org.omg.CORBA_2_3.ORB) orb).set_delegate(this); - } - catch (ClassCastException e) - { - throw new org.omg.CORBA.BAD_PARAM( - "POA Servant requires an instance of org.omg.CORBA_2_3.ORB"); - } - } - - /** - * Return all interfaces, supported by this method. - */ - public String[] _all_interfaces(org.omg.PortableServer.POA poa, - byte[] objectId) - { - return _type_ids; - } - - /** - * This method is invoked by CORBA system to handle the remote invocation. - * - * @param method the name of the method being invoked. - * @param _in the stream to read the method parameters. - * @param reply the responsed handler that can create the output stream to - * write the parameters being returned. - */ - public OutputStream _invoke(String method, InputStream _in, - ResponseHandler reply) - throws SystemException - { - try - { - org.omg.CORBA_2_3.portable.InputStream in = - (org.omg.CORBA_2_3.portable.InputStream) _in; - if (method.equals("requestTheGame")) - { - Player p = (Player) PortableRemoteObject.narrow( - in.read_Object(), Player.class); - target.requestTheGame(p); - - OutputStream out = reply.createReply(); - return out; - } - else if (method.equals("unregister")) - { - Player p = (Player) PortableRemoteObject.narrow( - in.read_Object(), Player.class); - target.unregister(p); - - OutputStream out = reply.createReply(); - return out; - } - else - throw new BAD_OPERATION(); - } - catch (SystemException ex) - { - throw ex; - } - catch (Throwable ex) - { - ex.printStackTrace(); - throw new UnknownException(ex); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java deleted file mode 100644 index 52fd103..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java +++ /dev/null @@ -1,207 +0,0 @@ -/* _GameManager_Stub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.rmi.RemoteException; -import java.rmi.UnexpectedException; - -import javax.rmi.CORBA.Stub; -import javax.rmi.CORBA.Util; - -import org.omg.CORBA.SystemException; -import org.omg.CORBA.portable.ApplicationException; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.RemarshalException; -import org.omg.CORBA.portable.ServantObject; - -/** - * Normally generated with rmic compiler, this class represents the GameManager - * Stub on the client side. The Game Manager methods contain the code for - * remote invocation. - * - * This class is normally generated with rmic from the {@link GameManagerImpl}: - * <pre> - * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl - * </pre> - * (the compiled package must be present in the current folder). - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class _GameManager_Stub extends Stub implements GameManager -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - private static final String[] _type_ids = - { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; - - public String[] _ids() - { - return _type_ids; - } - - /** - * Notify the manager that the player is no longer willing to play and - * should be removed from the queue. - */ - public void unregister(Player p) - throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA.portable.InputStream in = null; - try - { - OutputStream out = _request("unregister", true); - Util.writeRemoteObject(out, p); - _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - unregister(p); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = - _servant_preinvoke("requestTheGame", GameManager.class); - if (so == null) - { - unregister(p); - return; - } - try - { - ((GameManager) so.servant).unregister(p); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - /** - * The method that the user should invoke. - */ - public void requestTheGame(Player arg0) throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA.portable.InputStream in = null; - try - { - OutputStream out = _request("requestTheGame", true); - Util.writeRemoteObject(out, arg0); - _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - requestTheGame(arg0); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = - _servant_preinvoke("requestTheGame", GameManager.class); - if (so == null) - { - requestTheGame(arg0); - return; - } - try - { - Player arg0Copy = (Player) Util.copyObject(arg0, _orb()); - ((GameManager) so.servant).requestTheGame(arg0Copy); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java deleted file mode 100644 index bc2333c..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java +++ /dev/null @@ -1,209 +0,0 @@ -/* _PlayerImpl_Tie.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Point; -import java.rmi.Remote; - -import javax.rmi.PortableRemoteObject; -import javax.rmi.CORBA.Tie; - -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; -import org.omg.CORBA.SystemException; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ResponseHandler; -import org.omg.CORBA.portable.UnknownException; -import org.omg.PortableServer.Servant; - -/** - * Generate with rmic, command line - * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl - * (the compiled package must be present in the current folder). - * - * This class is normally generated with rmic or grmic from the - * {@link PlayerImpl}. See tools/gnu/classpath/tools/giop/README. - * - * In this example the class was manually edited and commented for better - * understanding of functionality. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class _PlayerImpl_Tie extends Servant implements Tie -{ - private PlayerImpl target = null; - private static final String[] _type_ids = - { "RMI:gnu.classpath.examples.CORBA.swing.x5.Player:0000000000000000" }; - - public void setTarget(Remote a_target) - { - this.target = (PlayerImpl) a_target; - } - - public Remote getTarget() - { - return target; - } - - public org.omg.CORBA.Object thisObject() - { - return _this_object(); - } - - public void deactivate() - { - try - { - _poa().deactivate_object(_poa().servant_to_id(this)); - } - catch (org.omg.PortableServer.POAPackage.WrongPolicy exception) - { - } - catch (org.omg.PortableServer.POAPackage.ObjectNotActive exception) - { - } - catch (org.omg.PortableServer.POAPackage.ServantNotActive exception) - { - } - } - - public ORB orb() - { - return _orb(); - } - - public void orb(ORB orb) - { - try - { - ((org.omg.CORBA_2_3.ORB) orb).set_delegate(this); - } - catch (ClassCastException e) - { - throw new org.omg.CORBA.BAD_PARAM( - "POA Servant requires an instance of org.omg.CORBA_2_3.ORB" - ); - } - } - - public String[] _all_interfaces(org.omg.PortableServer.POA poa, - byte[] objectId - ) - { - return _type_ids; - } - - public OutputStream _invoke(String method, InputStream _in, - ResponseHandler reply - ) throws SystemException - { - try - { - org.omg.CORBA_2_3.portable.InputStream in = - (org.omg.CORBA_2_3.portable.InputStream) _in; - switch (method.charAt(9)) - { - case 101 : - if (method.equals("start_game")) - { - Player arg0 = - (Player) PortableRemoteObject.narrow(in.read_Object(), - Player.class - ); - boolean arg1 = in.read_boolean(); - boolean result = target.start_game(arg0, arg1); - OutputStream out = reply.createReply(); - out.write_boolean(result); - return out; - } - - case 104 : - if (method.equals("receive_chat")) - { - byte arg0 = in.read_octet(); - String arg1 = (String) in.read_value(String.class); - target.receive_chat(arg0, arg1); - - OutputStream out = reply.createReply(); - return out; - } - - case 111 : - if (method.equals("receive_move")) - { - int arg0 = in.read_long(); - int arg1 = in.read_long(); - Point[] arg2 = (Point[]) in.read_value(Point[].class); - target.receive_move(arg0, arg1, arg2); - - OutputStream out = reply.createReply(); - return out; - } - - case 114 : - if (method.equals("_get_J_current_state")) - { - int result = target.get_current_state(); - OutputStream out = reply.createReply(); - out.write_long(result); - return out; - } - - case 116 : - if (method.equals("disconnect")) - { - target.disconnect(); - - OutputStream out = reply.createReply(); - return out; - } - } - throw new BAD_OPERATION("No such method: '"+method+"'"); - } - catch (SystemException ex) - { - throw ex; - } - catch (Throwable ex) - { - throw new UnknownException(ex); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java deleted file mode 100644 index c5a2089..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java +++ /dev/null @@ -1,397 +0,0 @@ -/* _Player_Stub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - - -package gnu.classpath.examples.CORBA.swing.x5; - -import java.awt.Point; -import java.io.Serializable; -import java.rmi.RemoteException; -import java.rmi.UnexpectedException; - -import javax.rmi.CORBA.Stub; -import javax.rmi.CORBA.Util; - -import org.omg.CORBA.SystemException; -import org.omg.CORBA.portable.ApplicationException; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.RemarshalException; -import org.omg.CORBA.portable.ServantObject; - -/** - * Generate with rmic, command line - * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl - * (the compiled package must be present in the current folder). - * - * This class is normally generated with rmic from the {@link GameManagerImpl}: - * <pre> - * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl - * </pre> - * (the compiled package must be present in the current folder). - * - * In this example the class was manually edited and commented for better - * understanding of functionality. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class _Player_Stub extends Stub implements Player -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - private static final String[] _type_ids = - { "RMI:gnu.classpath.examples.CORBA.swing.x5.Player:0000000000000000" }; - - public String[] _ids() - { - return _type_ids; - } - - public boolean start_game(Player arg0, boolean arg1) - throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA.portable.InputStream in = null; - try - { - OutputStream out = _request("start_game", true); - Util.writeRemoteObject(out, arg0); - out.write_boolean(arg1); - in = _invoke(out); - return in.read_boolean(); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - return start_game(arg0, arg1); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = _servant_preinvoke("start_game", Player.class); - if (so == null) - { - return start_game(arg0, arg1); - } - try - { - Player arg0Copy = (Player) Util.copyObject(arg0, _orb()); - return ((Player) so.servant).start_game(arg0Copy, arg1); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - public int get_current_state() throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA.portable.InputStream in = null; - try - { - OutputStream out = _request("_get_J_current_state", true); - in = _invoke(out); - return in.read_long(); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - return get_current_state(); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = - _servant_preinvoke("_get_J_current_state", Player.class); - if (so == null) - { - return get_current_state(); - } - try - { - return ((Player) so.servant).get_current_state(); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - public void receive_chat(byte arg0, String arg1) throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA_2_3.portable.InputStream in = null; - try - { - org.omg.CORBA_2_3.portable.OutputStream out = - (org.omg.CORBA_2_3.portable.OutputStream) _request("receive_chat", - true - ); - out.write_octet(arg0); - out.write_value(arg1, String.class); - _invoke(out); - } - catch (ApplicationException ex) - { - in = - (org.omg.CORBA_2_3.portable.InputStream) ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - receive_chat(arg0, arg1); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = _servant_preinvoke("receive_chat", Player.class); - if (so == null) - { - receive_chat(arg0, arg1); - return; - } - try - { - ((Player) so.servant).receive_chat(arg0, arg1); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - public void disconnect() throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA.portable.InputStream in = null; - try - { - OutputStream out = _request("disconnect", true); - _invoke(out); - } - catch (ApplicationException ex) - { - in = ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - disconnect(); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = _servant_preinvoke("disconnect", Player.class); - if (so == null) - { - disconnect(); - return; - } - try - { - ((Player) so.servant).disconnect(); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - public void receive_move(int arg0, int arg1, Point[] arg2) - throws RemoteException - { - if (!Util.isLocal(this)) - { - try - { - org.omg.CORBA_2_3.portable.InputStream in = null; - try - { - org.omg.CORBA_2_3.portable.OutputStream out = - (org.omg.CORBA_2_3.portable.OutputStream) _request("receive_move", - true - ); - out.write_long(arg0); - out.write_long(arg1); - out.write_value(cast_array(arg2), Point[].class); - _invoke(out); - } - catch (ApplicationException ex) - { - in = - (org.omg.CORBA_2_3.portable.InputStream) ex.getInputStream(); - - String id = in.read_string(); - throw new UnexpectedException(id); - } - catch (RemarshalException ex) - { - receive_move(arg0, arg1, arg2); - } - finally - { - _releaseReply(in); - } - } - catch (SystemException ex) - { - throw Util.mapSystemException(ex); - } - } - else - { - ServantObject so = _servant_preinvoke("receive_move", Player.class); - if (so == null) - { - receive_move(arg0, arg1, arg2); - return; - } - try - { - Point[] arg2Copy = (Point[]) Util.copyObject(arg2, _orb()); - ((Player) so.servant).receive_move(arg0, arg1, arg2Copy); - } - catch (Throwable ex) - { - Throwable exCopy = (Throwable) Util.copyObject(ex, _orb()); - throw Util.wrapException(exCopy); - } - finally - { - _servant_postinvoke(so); - } - } - } - - // This method is required as a work-around for - // a bug in the JDK 1.1.6 verifier. - private Serializable cast_array(Object obj) - { - return (Serializable) obj; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java b/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java deleted file mode 100644 index 20cd592..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java +++ /dev/null @@ -1,1018 +0,0 @@ -/* AnimationApplet.java -- An example of an old-style AWT applet - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.awt; - -import java.awt.BorderLayout; -import java.awt.Canvas; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.Graphics; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Label; -import java.awt.Panel; -import java.awt.Toolkit; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.net.URL; -import java.util.Iterator; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.TreeMap; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class AicasGraphicsBenchmark extends Panel -{ - /** - * Default number of test-iterations. - */ - private static final int DEFAULT_TEST_SIZE = 1000; - - /** - * Default screen size. - */ - private static final int DEFAULT_SCREEN_WIDTH = 320; - private static final int DEFAULT_SCREEN_HEIGHT = 240; - - /** - * AWT tests. - */ - private static final int AWTTEST_LINES = 1 << 0; - private static final int AWTTEST_RECT = 1 << 1; - private static final int AWTTEST_POLYLINE = 1 << 2; - private static final int AWTTEST_POLYGON = 1 << 3; - private static final int AWTTEST_ARC = 1 << 4; - private static final int AWTTEST_OVAL = 1 << 5; - private static final int AWTTEST_ROUNDRECT = 1 << 6; - private static final int AWTTEST_STRING = 1 << 7; - private static final int AWTTEST_TRANSPARENTIMAGE = 1 << 8; - private static final int AWTTEST_IMAGE = 1 << 9; - - private static final int AWTTEST_NONE = 0; - private static final int AWTTEST_ALL = AWTTEST_LINES - | AWTTEST_RECT - | AWTTEST_POLYLINE - | AWTTEST_POLYGON - | AWTTEST_ARC - | AWTTEST_OVAL - | AWTTEST_ROUNDRECT - | AWTTEST_STRING - | AWTTEST_TRANSPARENTIMAGE - | AWTTEST_IMAGE - ; - - int iterations = 1; - private int screenWidth = DEFAULT_SCREEN_WIDTH; - private int screenHeight = DEFAULT_SCREEN_HEIGHT; - boolean doubleBufferFlag = true; - private int awtTests = AWTTEST_ALL; - - private Label testLabel; - - private String testContext = ""; - - Logger logger = Logger.getLogger("AicasGraphicsBenchmark"); - - private Image pngTestImage; - private Image gifTestImage; - - private TestSet testSetMap = new TestSet(); - - public AicasGraphicsBenchmark() - { - pngTestImage = loadImage("../icons/aicas.png"); - gifTestImage = loadImage("../icons/palme.gif"); - - setLayout(new BorderLayout()); - testLabel = new Label(); - add(testLabel,BorderLayout.NORTH); - add(new GraphicsTest(),BorderLayout.CENTER); - } - - void setTestContext(String testName) - { - logger.logp(Level.INFO, "AicasGraphicsBenchmark", "recordTest", - "--- Starting new test context: " + testName); - testContext = testName; - testLabel.setText(testName); - } - - private void recordTest(String testName, long time) - { - logger.logp(Level.INFO, "AicasGraphicsBenchmark", "recordTest", - testContext + ": " + testName + " duration (ms): " + time); - TestRecorder recorder = testSetMap.getTest(testName); - if (recorder == null) - { - recorder = new TestRecorder(testName); - testSetMap.putTest(testName,recorder); - } - recorder.addRun(time); - } - - void printReport() - { - for (Iterator i = testSetMap.testIterator(); i.hasNext(); ) - { - TestRecorder recorder = testSetMap.getTest((String)i.next()); - System.out.println("TEST " + recorder.getTestName() + ": average " - + recorder.getAverage() + "ms [" - + recorder.getMinTime() + "-" + recorder.getMaxTime() - + "]"); - } - } - - public static void main(String[] args) - { - int awtTests; - int i; - boolean endOfOptionsFlag; - AicasGraphicsBenchmark speed= new AicasGraphicsBenchmark(); - - // Parse arguments. - i = 0; - endOfOptionsFlag = false; - awtTests = AWTTEST_NONE; - while (i < args.length) - { - if (!endOfOptionsFlag) - { - if (args[i].equals("--help") || args[i].equals("-help") - || args[i].equals("-h")) - { - System.out.println("Usage: AicasGraphicsBenchmark [<options>] [<test> ...]"); - System.out.println(""); - System.out.println("Options: -i|--iterations=<n|-1> - number of iterations (-1 is infinite)"); - System.out.println(" -w|--width=<n> - screen width; default "+DEFAULT_SCREEN_WIDTH); - System.out.println(" -h|--height=<n> - screen height; default "+DEFAULT_SCREEN_HEIGHT); - System.out.println(" -n|--noDoubleBuffer - disable double-buffering test"); - System.out.println(""); - System.out.println("Tests: line"); - System.out.println(" rect"); - System.out.println(" polyline"); - System.out.println(" polygon"); - System.out.println(" arc"); - System.out.println(" oval"); - System.out.println(" roundrect"); - System.out.println(" string"); - System.out.println(" transparentimage"); - System.out.println(" image"); - System.exit(1); - } - else if ((args[i].startsWith("-i=") - || args[i].startsWith("--iterations="))) - { - speed.iterations = - Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-i") || args[i].equals("--iterations"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.iterations = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].startsWith("-w=") - || args[i].startsWith("--width="))) - { - speed.screenWidth = - Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-w") || args[i].equals("--width"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.screenWidth = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].startsWith("-h=") - || args[i].startsWith("--height="))) - { - speed.screenHeight = - Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i+=1; - continue; - } - else if ((args[i].equals("-h") || args[i].equals("--height"))) - { - if ((i+1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.screenHeight = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].equals("-n") - || args[i].equals("--noDoubleBuffer"))) - { - speed.doubleBufferFlag = false; - i += 1; - continue; - } - else if (args[i].equals("--")) - { - endOfOptionsFlag = true; - i += 1; - continue; - } - else if (args[i].startsWith("-")) - { - System.err.println("ERROR: Unknown option '" + args[i] + "'!"); - System.exit(2); - } - } - StringTokenizer tokenizer = new StringTokenizer(args[i], " +,"); - while (tokenizer.hasMoreTokens()) - { - String s = tokenizer.nextToken().toLowerCase(); - if (s.equals("line")) - awtTests |= AWTTEST_LINES; - else if (s.equals("rect")) - awtTests |= AWTTEST_RECT; - else if (s.equals("polyline")) - awtTests |= AWTTEST_POLYLINE; - else if (s.equals("polygon")) - awtTests |= AWTTEST_POLYGON; - else if (s.equals("arc")) - awtTests |= AWTTEST_ARC; - else if (s.equals("oval")) - awtTests |= AWTTEST_OVAL; - else if (s.equals("roundrect")) - awtTests |= AWTTEST_ROUNDRECT; - else if (s.equals("string")) - awtTests |= AWTTEST_STRING; - else if (s.equals("transparentimage")) - awtTests |= AWTTEST_TRANSPARENTIMAGE; - else if (s.equals("image")) - awtTests |= AWTTEST_IMAGE; - else - { - System.err.println("Unknown AWT test '" + s + "'!"); - System.exit(2); - } - } - i += 1; - } - if (awtTests != AWTTEST_NONE) - speed.awtTests = awtTests; - - // Create graphics. - final Frame frame = new Frame("AicasGraphicsBenchmark"); - - frame.addWindowListener(new WindowAdapter() - { - public void windowClosing(WindowEvent e) - { - frame.setVisible(false); - System.exit(0); - } - }); - - frame.add(speed,BorderLayout.CENTER); - frame.setSize(speed.screenWidth,speed.screenHeight); - frame.setVisible(true); - - // Insets are correctly set only after the native peer was created. - Insets insets = frame.getInsets(); - // The internal size of the frame should be 320x240. - frame.setSize(320 + insets.right + insets.left, - 240 + insets.top + insets.bottom); - } - - private Image loadImage(String imageName) - { - Image result = null; - logger.logp(Level.INFO, "AicasGraphicsBenchmark", "loadImage", - "Loading image: " + imageName); - URL url = getClass().getResource(imageName); - if (url != null) - { - result = Toolkit.getDefaultToolkit().getImage(url); - prepareImage(result, this); - } - else - { - logger.logp(Level.WARNING, "AicasGraphicsBenchmark", "loadImage", - "Could not locate image resource in class path: " - + imageName); - } - return result; - } - - /** - * Executes the test methods. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - void runTestSet(Graphics g, Dimension size) - { - if ((awtTests & AWTTEST_LINES) != 0) - test_drawLine(g, size); - if ((awtTests & AWTTEST_RECT) != 0) - test_drawRect(g, size); - if ((awtTests & AWTTEST_RECT) != 0) - test_fillRect(g, size); - if ((awtTests & AWTTEST_POLYLINE) != 0) - test_drawPolyline(g, size); - if ((awtTests & AWTTEST_POLYGON) != 0) - test_drawPolygon(g, size); - if ((awtTests & AWTTEST_POLYGON) != 0) - test_fillPolygon(g,size); - if ((awtTests & AWTTEST_ARC) != 0) - test_drawArc(g,size); - if ((awtTests & AWTTEST_ARC) != 0) - test_fillArc(g,size); - if ((awtTests & AWTTEST_OVAL) != 0) - test_drawOval(g, size); - if ((awtTests & AWTTEST_OVAL) != 0) - test_fillOval(g, size); - if ((awtTests & AWTTEST_ROUNDRECT) != 0) - test_fillRoundRect(g, size); - if ((awtTests & AWTTEST_STRING) != 0) - test_drawString(g, size); - if ((awtTests & AWTTEST_TRANSPARENTIMAGE) != 0) - test_drawTransparentImage(g,size); - if ((awtTests & AWTTEST_IMAGE) != 0) - test_drawImage(g,size); - } - - /** - * Gets a new random Color. - * - * @returna new random Color - */ - private Color getNextColor() - { - return new Color((int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1); - } - - /** - * Draws random lines within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawLine(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x1 = (int) (Math.random() * (size.width-minSize)); - int y1 = (int) (Math.random() * (size.height-minSize)); - int x2 = (int) (Math.random() * (size.width-minSize)); - int y2 = (int) (Math.random() * (size.height-minSize)); - g.drawLine(x1, y1, x2, y2); - } - long endTime = System.currentTimeMillis(); - recordTest("drawLine " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random rectangles within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawRect(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x1 = (int) (Math.random() * (size.width-minSize)); - int y1 = (int) (Math.random() * (size.height-minSize)); - int x2 = (int) (Math.random() * (size.width-minSize)); - int y2 = (int) (Math.random() * (size.height-minSize)); - g.drawRect(x1, y1, x2, y2); - } - long endTime = System.currentTimeMillis(); - recordTest("drawRect " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random rectangles within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillRect(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x1 = (int) (Math.random() * (size.width-minSize)); - int y1 = (int) (Math.random() * (size.height-minSize)); - int x2 = (int) (Math.random() * (size.width-minSize)); - int y2 = (int) (Math.random() * (size.height-minSize)); - g.fillRect(x1, y1, x2, y2); - } - long endTime = System.currentTimeMillis(); - recordTest("fillRect " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random polylines within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawPolyline(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - long startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int points = (int)(Math.random() * 6) + 3; - int[] x_coords = new int[points]; - int[] y_coords = new int[points]; - for (int j = 0; j < points; j+=1) - { - x_coords[j] = (int)(Math.random() * (size.width)); - y_coords[j] = (int)(Math.random() * (size.height)); - } - g.drawPolyline(x_coords,y_coords, points); - } - long endTime = System.currentTimeMillis(); - recordTest("drawPolyline " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random polygons within the given dimensions. - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawPolygon(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - long startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int points = (int) (Math.random() * 6) + 3; - int[] xcoords = new int[points]; - int[] ycoords = new int[points]; - for(int j = 0; j < points; j+=1) - { - xcoords[j] = (int) (Math.random() * (size.width)); - ycoords[j] = (int) (Math.random() * (size.height)); - } - g.drawPolygon(xcoords, ycoords, points); - } - long endTime = System.currentTimeMillis(); - recordTest("drawPolygon " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random filled polygons within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillPolygon(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - long startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int points = (int) (Math.random() * 6) + 3; - int[] xcoords = new int[points]; - int[] ycoords = new int[points]; - for (int j = 0; j < points; j+=1) - { - xcoords[j] = (int) (Math.random() * (size.width)); - ycoords[j] = (int) (Math.random() * (size.height)); - } - g.fillPolygon(xcoords, ycoords, points); - } - long endTime = System.currentTimeMillis(); - recordTest("fillPolygon " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random arcs within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawArc(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int startAngle = (int) (Math.random() * 360); - int arcAngle = (int) (Math.random() * 360 - startAngle); - g.drawArc(x, y, width, height, startAngle, arcAngle); - } - endTime = System.currentTimeMillis(); - recordTest("drawArc " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random filled arcs within the given dimensions. - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillArc(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int)(Math.random() * (size.width - x - minSize) + minSize); - int height = (int)(Math.random() * (size.height - y - minSize) + minSize); - int startAngle = (int)(Math.random() * 360); - int arcAngle = (int)(Math.random() * 360); - g.fillArc(x, y, width, height, startAngle, arcAngle); - - } - endTime = System.currentTimeMillis(); - recordTest("fillArc " + maxTests + " times", (endTime - startTime)); - } - - /** - * Draws random ovals within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawOval(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int)(Math.random() * (size.width - minSize + 1)); - int y = (int)(Math.random() * (size.height - minSize + 1)); - int width = (int)(Math.random() * (size.width - x - minSize) + minSize); - int height = (int)(Math.random() * (size.height - y - minSize) + minSize); - g.drawOval(x, y, Math.min(width, height), Math.min(width, height)); - } - endTime = System.currentTimeMillis(); - recordTest("drawOval " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random filled ovals within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillOval(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - g.fillOval(x, y, width,height); - } - endTime = System.currentTimeMillis(); - recordTest("fillOval " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random filled rounded rectangles within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillRoundRect(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i=0; i < maxTests; i+=1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int arcWidth = (int) (Math.random() * (width - 1) + 1); - int arcHeight = (int) (Math.random() * (height - 1) + 5); - g.fillRoundRect(x, y, width, height, arcWidth, arcHeight); - } - endTime = System.currentTimeMillis(); - recordTest("fillRoundRect " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random images within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawImage(Graphics g, Dimension size) - { - if (gifTestImage == null) - { - logger.logp(Level.WARNING, "AicasGraphicsBenchmark", "runTestSet", - "Skipping 'test_drawImage' due to missing resource."); - return; - } - - int maxTests = DEFAULT_TEST_SIZE / 2; - if(maxTests == 0) - maxTests = 1; - int imageWidth = gifTestImage.getWidth(this); - int imageHeight = gifTestImage.getHeight(this); - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - imageWidth + 1)); - int y = (int) (Math.random() * (size.height - imageHeight + 1)); - g.drawImage(gifTestImage, x, y, this); - } - long endTime = System.currentTimeMillis(); - recordTest("drawImage " + maxTests + " times", (endTime-startTime)); - } - - /** - * Draws random transparent images within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawTransparentImage(Graphics g, Dimension size) - { - if (pngTestImage == null) - { - logger.logp(Level.WARNING, "AicasGraphicsBenchmark", "runTestSet", - "Skipping 'test_drawTransparentImage' due to missing resource."); - return; - } - - - int maxTests = DEFAULT_TEST_SIZE / 5; - if(maxTests == 0) - maxTests = 1; - int imageWidth = pngTestImage.getWidth(this); - int imageHeight = pngTestImage.getHeight(this); - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - int x = (int) (Math.random() * (size.width - imageWidth + 1)); - int y = (int) (Math.random() * (size.height - imageHeight + 1)); - g.drawImage(pngTestImage, x, y, this); - } - long endTime = System.currentTimeMillis(); - recordTest("draw transparent image " + maxTests + " times", - (endTime-startTime)); - } - - /** - * Draws random strings within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawString(Graphics g, Dimension size) - { - int maxTests = DEFAULT_TEST_SIZE; - String testString = "HelloWorld"; - int stringWidth = g.getFontMetrics().stringWidth(testString); - int stringHeight = g.getFontMetrics().getHeight(); - - long startTime = System.currentTimeMillis(); - for(int i = 0; i < maxTests; i += 1) - { - g.setColor(getNextColor()); - g.drawString(testString, (int) (Math.random() * (size.width - stringWidth + 1)),(int)(Math.random() * (size.height - stringHeight + 1)) + stringHeight); - } - long endTime = System.currentTimeMillis(); - recordTest("drawString " + maxTests + " times", (endTime-startTime)); - } - - private class GraphicsTest extends Canvas implements Runnable - { - Thread paintThread; - boolean done = false; - boolean doPaint = false; - boolean withClipping = false; - - public GraphicsTest() - { - paintThread = new Thread(this); - paintThread.start(); - } - - public void run() - { - int runCount = 0; - while (!done) - { - runCount++; - - try - { - synchronized (this) - { - while (!doPaint) - { - try - { - wait(200); - } - catch (InterruptedException exception) - { - return; - } - } - } - - if (iterations != 0) - System.out.println("--- run...(" + runCount + "/" + iterations - + ") ------------------------------------------------------"); - - Graphics g = getGraphics(); - Dimension size = getSize(); - logger.logp(Level.INFO, "AicasGraphicsBenchmark.GraphicsTest", "run", - "Start testing non-double-buffered drawing"); - runSet_noClipping(g,size); - runSet_zeroClipping(g, size); - runSet_withClipping(g, size); - g.dispose(); - - if (doubleBufferFlag) - { - logger.logp(Level.INFO, "AicasGraphicsBenchmark.GraphicsTest", - "run", "Start testing double-buffered drawing"); - Graphics canvas = getGraphics(); - Image doublebuffer = createImage(size.width,size.height); - g = doublebuffer.getGraphics(); - runSet_noClipping(g,size); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - - g = doublebuffer.getGraphics(); - runSet_withClipping(g, size); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - - g = doublebuffer.getGraphics(); - runSet_zeroClipping(g, size); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - canvas.dispose(); - } - - printReport(); - - if (iterations != 0) - { - if (iterations != -1) - iterations--; - } - else - { - System.out.println("--- done --------------------------------------------------------"); - synchronized (this) - { - doPaint = false; - } - done = true; - } - } - catch (Error error) - { - System.err.println("Error: " + error); - System.exit(129); - } - } - System.exit(0); - } - - private void runSet_zeroClipping(Graphics g, Dimension size) - { - int clipped_width; - int clipped_height; - int clipped_x; - int clipped_y; - - clipped_width = 0; - clipped_height = 0; - clipped_x = (size.width) / 2; - clipped_y = (size.height) / 2; - g.setClip(0, 0, size.width, size.height); - g.setColor(Color.BLACK); - g.fillRect(0, 0, size.width, size.height); - g.setColor(Color.WHITE); - g.drawRect(0, 0, size.width - 1, size.height - 1); - g.fillRect(clipped_x - 1, clipped_y - 1, clipped_width + 2, clipped_height + 2); - - g.clipRect(clipped_x, clipped_y, clipped_width, clipped_height); - g.setColor(Color.BLACK); - g.fillRect(0, 0, size.width, size.height); - - setTestContext("clipping to zero"); - - runTestSet(g, size); - } - - private void runSet_withClipping(Graphics g, Dimension size) - { - int clipped_width = 2 * size.width / 3; - int clipped_height = 2 * size.height / 3; - int clipped_x = (size.width - clipped_width) / 2; - int clipped_y = (size.height - clipped_height) / 2; - - g.setClip(0,0,size.width,size.height); - - g.setColor(Color.BLACK); - g.fillRect(0, 0, size.width, size.height); - g.setColor(Color.GREEN); - g.drawRect(0, 0, size.width - 1, size.height - 1); - g.setColor(Color.WHITE); - g.fillRect(clipped_x - 1, clipped_y - 1, clipped_width + 2, clipped_height + 2); - - g.clipRect(clipped_x, clipped_y, clipped_width, clipped_height); - g.setColor(Color.BLACK); - g.fillRect(0, 0, size.width, size.height); - - setTestContext("with clipping"); - - runTestSet(g, size); - } - - public void runSet_noClipping(Graphics g, Dimension size) - { - g.setColor(Color.BLACK); - g.fillRect(0, 0, size.width, size.height); - - setTestContext("without clipping"); - - runTestSet(g, size); - } - - public void paint(Graphics g) - { - synchronized(this) - { - doPaint=true; - notify(); - } - } - } -} - -class TestContext -{ -} - -class TestSet -{ - private Map testsMap = new TreeMap(); - - public void putTest(String testName, TestRecorder recoder) - { - testsMap.put(testName,recoder); - } - - public TestRecorder getTest(String testName) - { - return (TestRecorder)testsMap.get(testName); - } - - public Iterator testIterator() - { - return testsMap.keySet().iterator(); - } -} - -class TestRecorder -{ - String test; - long totalTime = 0; - long minTime = Long.MAX_VALUE; - long maxTime = Long.MIN_VALUE; - int runCount = 0; - - /** - * @return Returns the maxTime. - */ - public final long getMaxTime() - { - return maxTime; - } - - /** - * @return Returns the minTime. - */ - public final long getMinTime() - { - return minTime; - } - - /** - * @return Returns the test name. - */ - public final String getTestName() - { - return test; - } - - public final double getAverage() - { - return ((double)totalTime) / ((double)runCount); - } - - public TestRecorder(String testName) - { - test = testName; - } - - public void addRun(long time) - { - totalTime += time; - if(minTime > time) - minTime = time; - if(maxTime < time) - maxTime = time; - runCount += 1; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java b/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java deleted file mode 100644 index aea8cd4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java +++ /dev/null @@ -1,232 +0,0 @@ -/* AnimationApplet.java -- An example of an old-style AWT applet - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.awt; - -import java.awt.*; -import java.applet.*; - - -/** - * AnimationApplet demonstrates the need for Xflush calls in - * GdkGraphics.c. To see how this demo can fail in their absence, - * remove the contents of schedule_flush in GdkGraphics.c. The - * animation will be so choppy that it is effectively stopped. - */ -public class AnimationApplet - extends Applet - implements Runnable -{ - boolean going = false; - Thread animThread = null; - int SPEED = 5; - int circleX = 0; - int circleY = 0; - int circleXold = 0; - int circleYold = 0; - int circleXdelta = 0; - int circleYdelta = 0; - int circleDiameter = 0; - int autoCircleX = 0; - int autoCircleY = 0; - int autoCircleXold = 0; - int autoCircleYold = 0; - int autoCircleXdelta = (int) (0.66 * SPEED); - int autoCircleYdelta = (int) (1.33 * SPEED); - int boardWidth = 0; - int boardHeight = 0; - int CIRCLE_SIZE = 5; - - private Graphics appletGraphics; - - // Update the circles' location values. - private void moveCircles() - { - circleX += circleXdelta; - if (circleX < 0) - circleX = 0; - if (circleX > boardWidth - circleDiameter) - circleX = boardWidth - circleDiameter; - - circleY += circleYdelta; - if (circleY < 0) - circleY = 0; - if (circleY > boardHeight - circleDiameter) - circleY = boardHeight - circleDiameter; - - autoCircleX += autoCircleXdelta; - if (autoCircleX < 0) - { - autoCircleX = 0; - autoCircleXdelta = -autoCircleXdelta; - } - if (autoCircleX > boardWidth - circleDiameter) - { - autoCircleX = boardWidth - circleDiameter; - autoCircleXdelta = -autoCircleXdelta; - } - - autoCircleY += autoCircleYdelta; - if (autoCircleY < 0) - { - autoCircleY = 0; - autoCircleYdelta = -autoCircleYdelta; - } - if (autoCircleY > boardHeight - circleDiameter) - { - autoCircleY = boardHeight - circleDiameter; - autoCircleYdelta = -autoCircleYdelta; - } - } - - // Clear the circle in the old location and paint a new circle - // in the new location. - private void paintCircles() - { - appletGraphics.setColor(Color.BLUE); - appletGraphics.fillOval(circleXold, circleYold, circleDiameter, - circleDiameter); - appletGraphics.setColor(Color.YELLOW); - appletGraphics.fillOval(circleX, circleY, circleDiameter, - circleDiameter); - - appletGraphics.setColor(Color.BLUE); - appletGraphics.fillOval(autoCircleXold, autoCircleYold, circleDiameter, - circleDiameter); - appletGraphics.setColor(Color.WHITE); - appletGraphics.fillOval(autoCircleX, autoCircleY, circleDiameter, - circleDiameter); - } - - // Override Applet.run. - public void run() - { - while (animThread != null) - { - circleXold = circleX; - circleYold = circleY; - autoCircleXold = autoCircleX; - autoCircleYold = autoCircleY; - - moveCircles(); - paintCircles(); - - if (animThread != null) - { - try - { - Thread.sleep(20); - } - catch (InterruptedException e) - { - } - } - } - } - - // Override Applet.paint. - public void paint(Graphics g) - { - boardWidth = this.getSize().width; - boardHeight = this.getSize().height; - g.setColor(Color.BLUE); - g.fillRect(0, 0, boardWidth, boardHeight); - if (!going) - { - FontMetrics fm = appletGraphics.getFontMetrics(); - appletGraphics.setColor(Color.WHITE); - String msg = "Click to Start"; - appletGraphics.drawString(msg, - (boardWidth >> 1) - (fm.stringWidth(msg) >> 1), - (boardHeight >> 1) - (fm.getHeight() >> 1)); - } - } - - // Override Applet.destroy. - public void destroy() - { - // animThread.stop(); - animThread = null; - } - - // Override Applet.init. - public void init() - { - boardWidth = this.getSize().width; - boardHeight = this.getSize().height; - going = false; - appletGraphics = getGraphics(); - appletGraphics.setFont(new Font(appletGraphics.getFont().getName(), - Font.BOLD, 15)); - } - - // Override Component.preferredSize for when we're run standalone. - public Dimension preferredSize () - { - return new Dimension (400, 400); - } - - // Override Applet.handleEvent, the old-style AWT-event handler. - public boolean handleEvent(Event event) - { - switch (event.id) - { - case Event.MOUSE_DOWN: - if (!going) - { - going = true; - circleDiameter = boardWidth / CIRCLE_SIZE; - circleX = (boardWidth - circleDiameter) >> 1; - circleY = (boardHeight - circleDiameter) >> 1; - circleXdelta = 0; - circleYdelta = 0; - repaint(); - animThread = new Thread(this); - animThread.start(); - } - break; - case Event.KEY_ACTION: - case Event.KEY_PRESS: - if (event.key == Event.LEFT) - circleXdelta = -SPEED; - else if (event.key == Event.RIGHT) - circleXdelta = SPEED; - else if (event.key == Event.UP) - circleYdelta = -SPEED; - else if (event.key == Event.DOWN) - circleYdelta = SPEED; - break; - case Event.KEY_ACTION_RELEASE: - case Event.KEY_RELEASE: - if (event.key == Event.LEFT && circleXdelta < 0) - circleXdelta = 0; - else if (event.key == Event.RIGHT && circleXdelta > 0) - circleXdelta = 0; - else if (event.key == Event.UP && circleYdelta < 0) - circleYdelta = 0; - else if (event.key == Event.DOWN && circleYdelta > 0) - circleYdelta = 0; - break; - default: - break; - } - return false; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java deleted file mode 100644 index 62bee8f..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java +++ /dev/null @@ -1,1189 +0,0 @@ -/* Demo.java -- Shows examples of AWT components - Copyright (C) 1998, 1999, 2002, 2004, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.awt; - -import java.awt.BorderLayout; -import java.awt.Button; -import java.awt.Canvas; -import java.awt.Checkbox; -import java.awt.CheckboxGroup; -import java.awt.CheckboxMenuItem; -import java.awt.Choice; -import java.awt.Color; -import java.awt.Cursor; -import java.awt.Dialog; -import java.awt.Dimension; -import java.awt.DisplayMode; -import java.awt.FileDialog; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.Frame; -import java.awt.Graphics; -import java.awt.GraphicsDevice; -import java.awt.GraphicsEnvironment; -import java.awt.GridLayout; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Label; -import java.awt.List; -import java.awt.Menu; -import java.awt.MenuBar; -import java.awt.MenuItem; -import java.awt.MenuShortcut; -import java.awt.Panel; -import java.awt.ScrollPane; -import java.awt.TextField; -import java.awt.Toolkit; -import java.awt.Window; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.StringSelection; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureListener; -import java.awt.dnd.DragSource; -import java.awt.dnd.DragSourceContext; -import java.awt.dnd.DragSourceDragEvent; -import java.awt.dnd.DragSourceDropEvent; -import java.awt.dnd.DragSourceEvent; -import java.awt.dnd.DragSourceListener; -import java.awt.dnd.DropTarget; -import java.awt.dnd.DropTargetDragEvent; -import java.awt.dnd.DropTargetDropEvent; -import java.awt.dnd.DropTargetEvent; -import java.awt.dnd.DropTargetListener; -import java.awt.dnd.InvalidDnDOperationException; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.net.URL; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -class Demo -{ - public static void main(String args[]) - { - MainWindow f = new MainWindow(); - f.show(); - } - - static interface SubWindow - { - public void init (); - } - - static class PrettyPanel extends Panel - { - Insets myInsets; - - public PrettyPanel () - { - myInsets = new Insets (10, 10, 10, 10); - } - public Insets getInsets () - { - return myInsets; - } - } - - static abstract class PrettyFrame extends Frame - { - public PrettyFrame () - { - ((BorderLayout) getLayout ()).setHgap (5); - ((BorderLayout) getLayout ()).setVgap (5); - } - - public Insets getInsets() - { - Insets oldInsets = super.getInsets (); - return new Insets (oldInsets.top+10, - oldInsets.left+10, - oldInsets.bottom+10, - oldInsets.right+10); - } - } - - static abstract class SubFrame extends PrettyFrame implements SubWindow - { - boolean initted = false; - - public void setVisible (boolean visible) - { - if (!initted && visible) - init(); - super.setVisible (visible); - } - } - - static class MainWindow extends PrettyFrame implements ActionListener - { - Button closeButton; - - Hashtable windows; - Vector buttons; - - void addSubWindow (String name, SubWindow w) - { - Button b = new Button (name); - b.addActionListener (this); - - buttons.addElement (b); - windows.put (b, w); - } - - MainWindow () - { - MenuBar mb = new MenuBar (); - Menu menu = new Menu ("File"); - Menu submenu = new Menu ("Testing", true); - submenu.add (new CheckboxMenuItem ("FooBar")); - submenu.add (new CheckboxMenuItem ("BarFoo")); - menu.add (submenu); - menu.add (new MenuItem("Orange")); - MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); - quit.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - System.exit(0); - } - }); - menu.add(quit); - mb.add (menu); - - menu = new Menu("Edit", true); - menu.add(new MenuItem("Cut")); - menu.add(new MenuItem("Copy")); - menu.add(new MenuItem("Paste")); - mb.add (menu); - - Menu helpMenu = new Menu("Help"); - helpMenu.add(new MenuItem("About")); - mb.add(helpMenu); - mb.setHelpMenu(helpMenu); - - setMenuBar (mb); - - String version = System.getProperty("gnu.classpath.version"); - add (new Label ("GNU Classpath " + version), "North"); - - closeButton = new Button ("Close"); - closeButton.addActionListener (this); - closeButton.setFont (new Font ("Serif", Font.BOLD | Font.ITALIC, 18)); - add (closeButton, "South"); - - windows = new Hashtable (); - buttons = new Vector (); - - addSubWindow ("Buttons", new ButtonsWindow ()); - addSubWindow ("Cursors", new CursorsWindow ()); - addSubWindow ("Dialog", new DialogWindow (this)); - addSubWindow ("File", new FileWindow (this)); - addSubWindow ("Labels", new LabelWindow ()); - addSubWindow ("List", new ListWindow ()); - addSubWindow ("Radio Buttons", new RadioWindow ()); - addSubWindow ("TextField", new TextFieldWindow ()); - addSubWindow ("RandomTests", new TestWindow (this)); - addSubWindow ("RoundRect", new RoundRectWindow ()); - addSubWindow ("Animation", new AnimationWindow ()); - addSubWindow ("Resolution", new ResolutionWindow ()); - addSubWindow ("Fullscreen", new FullscreenWindow ()); - addSubWindow ("Drag n' Drop", new DragDropWindow ()); - - Panel sp = new Panel(); - PrettyPanel p = new PrettyPanel(); - p.setLayout (new GridLayout (windows.size(), 1)); - - for (Enumeration e = buttons.elements (); e.hasMoreElements (); ) - { - p.add ((Button) e.nextElement ()); - } - - sp.add (p); - add (sp, "Center"); - - setTitle ("AWT Demo"); - pack(); - } - - public void actionPerformed (ActionEvent evt) - { - Button source = (Button) evt.getSource (); - - if (source==closeButton) - { - dispose(); - System.exit (0); - } - - Window w = (Window) windows.get (source); - if (w.isVisible ()) - w.dispose (); - else - { - if (w instanceof Dialog) - { - w.show(); - } - else - { - w.setVisible (true); - } - } - } - } - - static class ButtonsWindow extends SubFrame implements ActionListener - { - Button b[] = new Button [9]; - - public void init () - { - initted = true; - Panel p = new Panel (); - p.setLayout (new GridLayout (0, 3, 5, 5)); - - for (int i=0; i<9; i++) - { - b[i]=new Button ("button" + (i+1)); - b[i].addActionListener (this); - } - - p.add (b[0]); - p.add (b[6]); - p.add (b[4]); - p.add (b[8]); - p.add (b[1]); - p.add (b[7]); - p.add (b[3]); - p.add (b[5]); - p.add (b[2]); - - add (p, "North"); - - Button cb = new Button ("close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - add (cb, "South"); - setTitle ("Buttons"); - pack(); - } - - public void actionPerformed (ActionEvent evt) - { - Button source = (Button) evt.getSource (); - - for (int i = 0; i < 9; i++) - { - if (source == b[i]) - { - int i2 = ((i + 1) == 9) ? 0 : (i + 1); - if (b[i2].isVisible()) - b[i2].setVisible(false); - else - b[i2].setVisible(true); - } - } - } - } - - - static class DialogWindow extends Dialog implements SubWindow - { - Label text; - Frame parent; - boolean initted = false; - - public DialogWindow (Frame f) - { - super (f, true); - - this.parent = f; - - addWindowListener (new WindowAdapter () - { - public void windowClosing (WindowEvent e) - { - text.setVisible (false); - hide (); - } - }); - } - - public void setVisible (boolean visible) - { - if (!initted && visible) - init(); - super.setVisible (visible); - } - - public void show () - { - if (!initted) - init(); - super.show (); - } - - public void init () - { - text = new Label ("Dialog Test"); - text.setAlignment (Label.CENTER); - - add (text, "North"); - text.setVisible (false); - - Panel p = new PrettyPanel(); - - Button cb = new Button ("OK"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) - { - text.setVisible (false); - hide(); - } - }); - - p.setLayout (new GridLayout (1, 3)); - ((GridLayout) p.getLayout ()).setHgap (5); - ((GridLayout) p.getLayout ()).setVgap (5); - p.add (cb); - - Button toggle = new Button ("Toggle"); - p.add (toggle); - - toggle.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) - { - if (text.isVisible ()) - text.setVisible (false); - else - text.setVisible (true); - doLayout(); - } - }); - - Button subdlg = new Button ("SubDialog"); - p.add (subdlg); - - subdlg.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) - { - DialogWindow sw = new DialogWindow (parent); - sw.show (); - } - }); - - add (p, "South"); - setTitle ("Dialog"); - pack(); - } - } - - static class CursorsWindow extends SubFrame implements ItemListener - { - Choice cursorChoice; - Canvas cursorCanvas; - - public void init () - { - cursorChoice = new Choice(); - cursorChoice.add ("Default"); - cursorChoice.add ("Crosshair"); - cursorChoice.add ("Text"); - cursorChoice.add ("Wait"); - cursorChoice.add ("Southwest Resize"); - cursorChoice.add ("Southeast Resize"); - cursorChoice.add ("Northwest Resize"); - cursorChoice.add ("Northeast Resize"); - cursorChoice.add ("North Resize"); - cursorChoice.add ("South Resize"); - cursorChoice.add ("West Resize"); - cursorChoice.add ("East Resize"); - cursorChoice.add ("Hand"); - cursorChoice.add ("Move"); - - cursorChoice.addItemListener(this); - - add (cursorChoice, "North"); - - cursorCanvas = new Canvas () - { - public void paint (Graphics g) - { - Dimension d = this.getSize(); - g.setColor(Color.white); - g.fillRect(0, 0, d.width, d.height/2); - g.setColor(Color.black); - g.fillRect(0, d.height/2, d.width, d.height/2); - g.setColor(this.getBackground()); - g.fillRect(d.width/3, d.height/3, d.width/3, - d.height/3); - } - }; - - cursorCanvas.setSize (80,80); - - add (cursorCanvas, "Center"); - - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - add (cb, "South"); - setTitle ("Cursors"); - pack(); - } - - public void itemStateChanged (ItemEvent e) - { - int index = cursorChoice.getSelectedIndex(); - cursorCanvas.setCursor(Cursor.getPredefinedCursor(index)); - } - } - - static class TextFieldWindow extends SubFrame implements ItemListener - { - Checkbox editable, visible, sensitive; - TextField text; - - public void init () - { - initted = true; - text = new TextField ("hello world"); - add (text, "North"); - - Panel p = new Panel(); - p.setLayout (new GridLayout (3, 1)); - ((GridLayout) p.getLayout ()).setHgap (5); - ((GridLayout) p.getLayout ()).setVgap (5); - - editable = new Checkbox("Editable", true); - p.add (editable); - editable.addItemListener (this); - - visible = new Checkbox("Visible", true); - p.add (visible); - visible.addItemListener (this); - - sensitive = new Checkbox("Sensitive", true); - p.add (sensitive); - sensitive.addItemListener (this); - - add (p, "Center"); - - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - add (cb, "South"); - setTitle ("TextField"); - pack(); - } - - public void itemStateChanged (ItemEvent e) - { - boolean on=true; - - if (e.getStateChange () == ItemEvent.DESELECTED) - on=false; - if (e.getSource() == editable) - text.setEditable (on); - if (e.getSource() == visible) - if (on) - text.setEchoChar ((char) 0); - else - text.setEchoChar ('*'); - if (e.getSource() == sensitive) - text.setEnabled (on); - - } - } - - static class FileWindow extends FileDialog implements SubWindow - { - boolean initted = false; - - public FileWindow (MainWindow mw) - { - super (mw); - } - - public void setVisible (boolean visible) - { - if (!initted && visible) - init(); - super.setVisible (visible); - } - - public void init() - { - initted = true; - } - } - - static class LabelWindow extends SubFrame - { - public void init () - { - initted = true; - - Panel p = new Panel(); - p.setLayout (new GridLayout (3, 1)); - ((GridLayout) p.getLayout ()).setHgap (5); - ((GridLayout) p.getLayout ()).setVgap (5); - - p.add (new Label ("left justified label", Label.LEFT)); - p.add (new Label ("center justified label", Label.CENTER)); - p.add (new Label ("right justified label", Label.RIGHT)); - - add (p, "Center"); - - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - add (cb, "South"); - setTitle ("Labels"); - pack(); - } - } - - static class ListWindow extends SubFrame - { - public void init () - { - initted = true; - - Panel p = new Panel (); - p.setLayout (new GridLayout (3, 1)); - - List l = new List (5, true); - for (int i = 0; i < 10; i++) - l.add ("List item " + i); - - p.add (l); - - add (p, "Center"); - - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - add (cb, "South"); - setTitle ("List"); - pack(); - } - } - - - static class RadioWindow extends SubFrame - { - public void init () - { - initted = true; - - Panel p = new Panel(); - p.setLayout (new GridLayout (3, 1)); - ((GridLayout) p.getLayout ()).setHgap (5); - ((GridLayout) p.getLayout ()).setVgap (5); - - final CheckboxGroup cg = new CheckboxGroup(); - final Checkbox[] boxes = new Checkbox[3]; - for (int i = 0; i < 3; ++i) - { - boxes[i] = new Checkbox("button" + i, cg, i == 0); - p.add(boxes[i]); - } - - add (p, "North"); - - p = new Panel(); - p.setLayout (new GridLayout (1, 3)); - ((GridLayout) p.getLayout ()).setHgap (5); - ((GridLayout) p.getLayout ()).setVgap (5); - - for (int i = 0; i < 3; ++i) - { - final int val = i; - Button tweak = new Button ("Set " + i); - tweak.addActionListener(new ActionListener () - { - public void actionPerformed (ActionEvent e) - { - cg.setSelectedCheckbox(boxes[val]); - } - }); - p.add(tweak); - } - - add (p, "Center"); - - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - add (cb, "South"); - setTitle ("Radio Buttons"); - pack(); - } - } - - static class TestWindow extends SubFrame - { - static int xs = 5, ys = 5; - final Frame parent; - - public TestWindow(Frame f) - { - parent = f; - } - - public void init() - { - initted = true; - - addWindowListener (new WindowAdapter () - { - public void windowClosing (WindowEvent e) - { - hide (); - } - }); - - Panel pan = new Panel(); - - final Label l = new Label ("Pithy Message:"); - l.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); - pan.add (l); - - TextField tf = new TextField("Hello world!"); - pan.add(tf); - add(pan,"North"); - - final Image img; - URL imageurl; - imageurl = this.getClass() - .getResource("/gnu/classpath/examples/icons/big-warning.png"); - img = Toolkit.getDefaultToolkit().createImage(imageurl); - - final Canvas ch = new Canvas() - { - public void paint (Graphics g) - { - g.drawImage(img, xs + 25, ys + 25, this); - - Font font = new Font ("Serif", Font.PLAIN, 18); - g.setFont (font); - g.setXORMode (Color.red); - - g.drawString("Hi Red!", xs + 15, ys + 10); - g.setColor (Color.blue); - g.drawLine (xs, ys, xs + 100, ys + 100); - - } - }; - ch.setSize(150, 150); - add(ch, "Center"); - - final ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS); - final Panel p = new Panel(); - p.add(new Button("Stop")); - p.add(new Button("evil")); - p.add(new Button("hoarders")); - p.add(new Button("use")); - p.add(new Button("GNU!")); - - sp.add(p); - add(sp, "South"); - - Panel east_panel = new Panel(); - east_panel.setLayout(new GridLayout (0,1)); - - CheckboxGroup group = new CheckboxGroup(); - Checkbox cb = new Checkbox("one", group, true); - east_panel.add(cb); - cb = new Checkbox("two", group, false); - east_panel.add(cb); - - add(east_panel,"East"); - - final Button wb = new Button(); - wb.setLabel("Hello World!"); - wb.addActionListener(new ActionListener() - { - public void actionPerformed (ActionEvent e) - { - l.setText ("Hello World!"); - - final Dialog d = new Dialog(parent); - d.setLayout(new FlowLayout()); - d.setModal(true); - Button b = new Button("foobar"); - b.addMouseListener(new MouseAdapter() - { - public void mousePressed (MouseEvent me) - { - d.hide (); - } - }); - d.add (b); - - List ch = new List(); - ch.add("Ding"); - ch.add("September"); - ch.add("Red"); - ch.add("Quassia"); - ch.add("Pterodactyl"); - d.add(ch); - - d.pack (); - d.show (); - } - }); - - wb.addMouseListener(new MouseAdapter() - { - public void mousePressed(MouseEvent e) { - xs++; - ys++; - ch.repaint (); - } - }); - - add(wb,"West"); - - pack(); - show(); - - sp.setScrollPosition (10,0); - - Toolkit t = Toolkit.getDefaultToolkit(); - t.beep(); - } - } - - static class ResolutionWindow extends SubFrame - { - GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); - - public void init () - { - initted = true; - - setTitle("Change Screen Resolution"); - final List list = new List(); - DisplayMode[] modes = gd.getDisplayModes(); - - for (int i=0;i<modes.length;i++ ) - list.add(modes[i].getWidth() + "x" - + modes[i].getHeight() - + ((modes[i].getBitDepth() != DisplayMode.BIT_DEPTH_MULTI) - ? "x" + modes[i].getBitDepth() + "bpp" - : "") - + ((modes[i].getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN) - ? "@" + modes[i].getRefreshRate() + "Hz" - : "")); - - ActionListener al = new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - int i = list.getSelectedIndex(); - gd.setDisplayMode(gd.getDisplayModes()[i]); - } - }; - - Button b = new Button("Switch"); - Button c = new Button("Close"); - - list.addActionListener(al); - b.addActionListener(al); - - c.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - - setLayout(new GridLayout(3, 1, 5, 5)); - add(list); - add(b); - add(c); - - pack(); - } - } - - static class DragDropWindow - extends SubFrame - implements ActionListener, DropTargetListener - { - DragLabel source = new DragLabel("Drag and drop me to the following Button", - Label.CENTER); - - Button target = new Button(); - - public void init() - { - source.setForeground(Color.red); - add(source, BorderLayout.NORTH); - - target.addActionListener(this); - add(target, BorderLayout.SOUTH); - - new DropTarget(target, DnDConstants.ACTION_COPY_OR_MOVE, this); - - setSize(205, 100); - - pack(); - } - - public void actionPerformed(ActionEvent e) - { - Button b = (Button) e.getSource(); - b.setLabel(""); - } - - public void dragEnter(DropTargetDragEvent e) - { - } - - public void dragExit(DropTargetEvent e) - { - } - - public void dragOver(DropTargetDragEvent e) - { - } - - public void drop(DropTargetDropEvent e) - { - try - { - Transferable t = e.getTransferable(); - - if (e.isDataFlavorSupported(DataFlavor.stringFlavor)) - { - e.acceptDrop(e.getDropAction()); - - String s; - s = (String) t.getTransferData(DataFlavor.stringFlavor); - - target.setLabel(s); - - e.dropComplete(true); - } - else - e.rejectDrop(); - } - catch (java.io.IOException e2) - { - } - catch (UnsupportedFlavorException e2) - { - } - } - - public void dropActionChanged(DropTargetDragEvent e) - { - } - - class DragLabel - extends Label - implements DragGestureListener, DragSourceListener - { - private DragSource ds = DragSource.getDefaultDragSource(); - - public DragLabel(String s, int alignment) - { - super(s, alignment); - int action = DnDConstants.ACTION_COPY_OR_MOVE; - ds.createDefaultDragGestureRecognizer(this, action, this); - } - - public void dragGestureRecognized(DragGestureEvent e) - { - try - { - Transferable t = new StringSelection(getText()); - e.startDrag(DragSource.DefaultCopyNoDrop, t, this); - } - catch (InvalidDnDOperationException e2) - { - System.out.println(e2); - } - } - - public void dragDropEnd(DragSourceDropEvent e) - { - if (e.getDropSuccess() == false) - return; - - int action = e.getDropAction(); - if ((action & DnDConstants.ACTION_MOVE) != 0) - setText(""); - } - - public void dragEnter(DragSourceDragEvent e) - { - DragSourceContext ctx = e.getDragSourceContext(); - - int action = e.getDropAction(); - if ((action & DnDConstants.ACTION_COPY) != 0) - ctx.setCursor(DragSource.DefaultCopyDrop); - else - ctx.setCursor(DragSource.DefaultCopyNoDrop); - } - - public void dragExit(DragSourceEvent e) - { - } - - public void dragOver(DragSourceDragEvent e) - { - } - - public void dropActionChanged(DragSourceDragEvent e) - { - } - } - } - - static class FullscreenWindow extends SubFrame - { - GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); - - public void init () - { - initted = true; - - setTitle("Fullscreen Exclusive Mode"); - - ActionListener al = new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - if (gd.getFullScreenWindow() == FullscreenWindow.this) - gd.setFullScreenWindow(null); - else - gd.setFullScreenWindow(FullscreenWindow.this); - } - }; - - Button b = new Button("Toggle Fullscreen"); - Button c = new Button("Close"); - - b.addActionListener(al); - - c.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - gd.setFullScreenWindow(null); - dispose(); - } - }); - - setLayout(new GridLayout(3, 1, 5, 5)); - add(b); - add(c); - - pack(); - } - } - - static class RoundRectWindow extends SubFrame - { - public void init () - { - initted = true; - setTitle("RoundRect"); - setLayout(new BorderLayout()); - add(new DrawRoundRect(), "West"); - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) { - dispose(); - } - }); - add(cb, "Center"); - add(new FillRoundRect(), "East"); - pack(); - } - - static class DrawRoundRect extends Panel - { - - public Dimension getPreferredSize() - { - return new Dimension(500, 500); - } - - public void paint( Graphics g ) - { - // left side - - // rectangles should be identical - g.setColor(Color.red); - g.drawRect(50, 50, 300, 100); - g.setColor(Color.black); - g.drawRoundRect(50, 50, 300, 100, 0, 0); - - // small round corners - g.setColor(Color.red); - g.drawRect(50, 200, 300, 100); - g.setColor(Color.black); - g.drawRoundRect(50, 200, 300, 100, 25, 25); - - // round ends - g.setColor(Color.red); - g.drawRect(50, 350, 300, 100); - g.setColor(Color.black); - g.drawRoundRect(50, 350, 300, 100, 25, 100); - - // right side - - // circle only - g.setColor(Color.blue); - g.drawOval(375, 50, 100, 100); - - // round rectangle should exactly cover circle - g.setColor(Color.blue); - g.drawOval(375, 200, 100, 100); - g.setColor(Color.black); - g.drawRoundRect(375, 200, 100, 100, 100, 100); - - // round rectangle should look like a circle - g.setColor(Color.red); - g.drawRect(375, 350, 100, 100); - g.setColor(Color.black); - g.drawRoundRect(375, 350, 100, 100, 100, 100); - } - } - - static class FillRoundRect extends Panel - { - - public Dimension getPreferredSize() - { - return new Dimension(500, 500); - } - - public void paint( Graphics g ) - { - // left side - - // rectangles should be identical - g.setColor(Color.red); - g.fillRect(50, 50, 300, 100); - g.setColor(Color.black); - g.fillRoundRect(50, 50, 300, 100, 0, 0); - - // small round corners - g.setColor(Color.red); - g.fillRect(50, 200, 300, 100); - g.setColor(Color.black); - g.fillRoundRect(50, 200, 300, 100, 25, 25); - - // round ends - g.setColor(Color.red); - g.fillRect(50, 350, 300, 100); - g.setColor(Color.black); - g.fillRoundRect(50, 350, 300, 100, 25, 100); - - // right side - - // circle only - g.setColor(Color.blue); - g.fillOval(375, 50, 100, 100); - - // round rectangle should exactly cover circle - g.setColor(Color.blue); - g.fillOval(375, 200, 100, 100); - g.setColor(Color.black); - g.fillRoundRect(375, 200, 100, 100, 100, 100); - - // round rectangle should look like a circle - g.setColor(Color.red); - g.fillRect(375, 350, 100, 100); - g.setColor(Color.black); - g.fillRoundRect(375, 350, 100, 100, 100, 100); - } - } - } - - static class AnimationWindow extends SubFrame - { - AnimationApplet a; - public void init () - { - initted = true; - setTitle("Animation"); - Button cb = new Button ("Close"); - cb.addActionListener(new ActionListener () { - public void actionPerformed (ActionEvent e) - { - if (a != null) - { - a.destroy(); - dispose(); - } - } - }); - a = new AnimationApplet(); - add(a, "Center"); - add(cb, "South"); - pack(); - } - - public void show() - { - super.show(); - a.init(); - a.run(); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java b/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java deleted file mode 100644 index 5ba44f6..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java +++ /dev/null @@ -1,420 +0,0 @@ -/* Demo.java -- Shows examples of AWT components - Copyright (C) 1998, 1999, 2002, 2004, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.awt; - -import gnu.java.awt.font.FontDelegate; -import gnu.java.awt.font.GNUGlyphVector; -import gnu.java.awt.font.opentype.OpenTypeFontFactory; - -import java.awt.BasicStroke; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GridLayout; -import java.awt.Insets; -import java.awt.RenderingHints; -import java.awt.Shape; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.font.FontRenderContext; -import java.io.File; -import java.io.RandomAccessFile; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.text.StringCharacterIterator; - -import javax.swing.BoxLayout; -import javax.swing.JCheckBox; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JSpinner; -import javax.swing.JTextField; -import javax.swing.border.TitledBorder; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -public class HintingDemo extends JFrame { - - FontDelegate font; - GNUGlyphVector glyph; - GlyphPreview glyphPreview; - HintPanel hintPanel; - StringViewer stringViewer; - Chooser chooser; - char character; - Options options; - boolean antiAlias; - boolean showGrid; - boolean showOriginal; - boolean showHinted; - int flags; - - class StringViewer extends JPanel - implements ActionListener - { - JTextField input; - GNUGlyphVector gv; - Viewer viewer; - StringViewer() - { - setLayout(new GridLayout(0, 1)); - setBorder(new TitledBorder("Use this field to render complete strings")); - input = new JTextField(); - input.addActionListener(this); - add(input); - viewer = new Viewer(); - add(viewer); - } - - public void actionPerformed(ActionEvent event) - { - refresh(); - } - - void refresh() - { - gv = (GNUGlyphVector) - font.createGlyphVector(new Font("Dialog", 0, 12), - new FontRenderContext(null, false, false), - new StringCharacterIterator(input.getText())); - viewer.repaint(); - } - - class Viewer extends JPanel - { - protected void paintComponent(Graphics g) - { - if (gv != null && g instanceof Graphics2D) - { - Graphics2D g2d = (Graphics2D) g; - if (antiAlias) - { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - } - else - { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_OFF); - } - g2d.clearRect(0, 0, getWidth(), getHeight()); - g2d.setColor(Color.BLACK); - Shape outline = gv.getOutline(0, 0, - flags | FontDelegate.FLAG_FITTED); - g2d.translate(20, Math.floor(outline.getBounds2D().getHeight()) + 2); - g2d.fill(outline); - } - } - } - } - - class HintPanel extends JPanel - { - - HintPanel() - { - setBorder(new TitledBorder("Detailed glyph view")); - } - protected void paintComponent(Graphics g) - { - if (glyph != null && g instanceof Graphics2D) - { - Graphics2D g2d = (Graphics2D) g.create(); - Insets i = getInsets(); - g2d.clearRect(i.left, i.top, getWidth() - i.left - i.right, - getHeight() - i.top - i.bottom); - if (showGrid) - { - g2d.setColor(Color.GRAY); - for (int x = 20; x < getWidth(); x += 20) - { - g2d.drawLine(x, i.top, x, getHeight() - i.top - i.bottom); - } - for (int y = 20; y < getHeight(); y += 20) - { - g2d.drawLine(i.left, y, getWidth() - i.left - i.right, y); - } - } -// g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, -// RenderingHints.VALUE_ANTIALIAS_ON); - g2d.translate(40, 300); - g2d.scale(20., 20.); - g2d.setStroke(new BasicStroke((float) (1/10.))); - if (showOriginal) - { - g2d.setColor(Color.RED); - g2d.draw(glyph.getOutline(0, 0, - flags & ~FontDelegate.FLAG_FITTED)); - } - if (showHinted) - { - g2d.setColor(Color.RED); - g2d.draw(glyph.getOutline(0, 0, - flags | FontDelegate.FLAG_FITTED)); - } - } - } - - } - - class GlyphPreview extends JPanel - { - protected void paintComponent(Graphics g) - { - if (glyph != null && g instanceof Graphics2D) - { - Graphics2D g2d = (Graphics2D) g; - if (antiAlias) - { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - } - else - { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_OFF); - } - g2d.clearRect(0, 0, getWidth(), getHeight()); - g2d.setColor(Color.BLACK); - Shape outline = glyph.getOutline(0, 0, - flags | FontDelegate.FLAG_FITTED); - g2d.translate(20, outline.getBounds2D().getHeight() + 2); - g2d.fill(outline); - } - } - - } - - HintingDemo() - { - File file = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf"); - loadFont(file); - setLayout(new BorderLayout()); - chooser = new Chooser(); - add(chooser, BorderLayout.NORTH); - hintPanel = new HintPanel(); - character = 'A'; - add(hintPanel); - - options = new Options(); - add(options, BorderLayout.EAST); - - stringViewer = new StringViewer(); - add(stringViewer, BorderLayout.SOUTH); - refresh(); - - JMenuBar mb = new JMenuBar(); - setJMenuBar(mb); - JMenu fileMenu = new JMenu("File"); - mb.add(fileMenu); - JMenuItem loadFont = new JMenuItem("Load font"); - loadFont.addActionListener(new ActionListener(){ - public void actionPerformed(ActionEvent ev) - { - JFileChooser fc = new JFileChooser() - { - public boolean accept(File f) - { - return f.isDirectory() || f.getName().endsWith(".ttf"); - } - }; - int status = fc.showOpenDialog(HintingDemo.this); - if (status == JFileChooser.APPROVE_OPTION) - { - File file = fc.getSelectedFile(); - loadFont(file); - } - } - }); - fileMenu.add(loadFont); - } - - void refresh() - { - if (chooser != null) - chooser.refresh(); - if (glyphPreview != null) - glyphPreview.repaint(); - if (hintPanel != null) - hintPanel.repaint(); - if (stringViewer != null) - stringViewer.refresh(); - } - - class Options extends JPanel - implements ActionListener - { - JCheckBox antiAliasOpt; - JCheckBox showGridOpt; - JCheckBox showOriginalOpt; - JCheckBox showHintedOpt; - JCheckBox hintHorizontalOpt; - JCheckBox hintVerticalOpt; - JCheckBox hintEdgeOpt; - JCheckBox hintStrongOpt; - JCheckBox hintWeakOpt; - Options() - { - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - setBorder(new TitledBorder("Hinting options")); - antiAliasOpt = new JCheckBox("Antialias"); - antiAliasOpt.setSelected(true); - antiAliasOpt.addActionListener(this); - add(antiAliasOpt); - showGridOpt = new JCheckBox("Show grid"); - showGridOpt.setSelected(true); - showGridOpt.addActionListener(this); - add(showGridOpt); - showOriginalOpt = new JCheckBox("Show original"); - showOriginalOpt.setSelected(true); - showOriginalOpt.addActionListener(this); - add(showOriginalOpt); - showHintedOpt = new JCheckBox("Show hinted"); - showHintedOpt.setSelected(true); - showHintedOpt.addActionListener(this); - add(showHintedOpt); - hintHorizontalOpt = new JCheckBox("Hint horizontal"); - hintHorizontalOpt.setSelected(true); - hintHorizontalOpt.addActionListener(this); - add(hintHorizontalOpt); - hintVerticalOpt = new JCheckBox("Hint vertical"); - hintVerticalOpt.setSelected(true); - hintVerticalOpt.addActionListener(this); - add(hintVerticalOpt); - hintEdgeOpt = new JCheckBox("Hint edge points"); - hintEdgeOpt.setSelected(true); - hintEdgeOpt.addActionListener(this); - add(hintEdgeOpt); - hintStrongOpt = new JCheckBox("Hint strong points"); - hintStrongOpt.setSelected(true); - hintStrongOpt.addActionListener(this); - add(hintStrongOpt); - hintWeakOpt = new JCheckBox("Hint weak points"); - hintWeakOpt.setSelected(true); - hintWeakOpt.addActionListener(this); - add(hintWeakOpt); - sync(); - } - - void sync() - { - antiAlias = antiAliasOpt.isSelected(); - showGrid = showGridOpt.isSelected(); - showOriginal = showOriginalOpt.isSelected(); - showHinted = showHintedOpt.isSelected(); - if (hintHorizontalOpt.isSelected()) - flags &= ~FontDelegate.FLAG_NO_HINT_HORIZONTAL; - else - flags |= FontDelegate.FLAG_NO_HINT_HORIZONTAL; - if (hintVerticalOpt.isSelected()) - flags &= ~FontDelegate.FLAG_NO_HINT_VERTICAL; - else - flags |= FontDelegate.FLAG_NO_HINT_VERTICAL; - if (hintEdgeOpt.isSelected()) - flags &= ~FontDelegate.FLAG_NO_HINT_EDGE_POINTS; - else - flags |= FontDelegate.FLAG_NO_HINT_EDGE_POINTS; - if (hintStrongOpt.isSelected()) - flags &= ~FontDelegate.FLAG_NO_HINT_STRONG_POINTS; - else - flags |= FontDelegate.FLAG_NO_HINT_STRONG_POINTS; - if (hintWeakOpt.isSelected()) - flags &= ~FontDelegate.FLAG_NO_HINT_WEAK_POINTS; - else - flags |= FontDelegate.FLAG_NO_HINT_WEAK_POINTS; - - refresh(); - } - - public void actionPerformed(ActionEvent event) - { - sync(); - } - } - - class Chooser extends JPanel - { - JSpinner spin; - Chooser() - { - setLayout(new GridLayout(1, 0)); - setBorder(new TitledBorder("Choose and preview the character to render")); - spin = new JSpinner(); - spin.addChangeListener(new ChangeListener() - { - - public void stateChanged(ChangeEvent event) - { - int val = ((Integer) spin.getValue()).intValue(); - setGlyph((char) val); - } - }); - add(spin); - glyphPreview = new GlyphPreview(); - add(glyphPreview); - } - void refresh() - { - spin.setValue(new Integer(character)); - repaint(); - } - } - - private void loadFont(File file) - { - try - { - RandomAccessFile raf = new RandomAccessFile(file, "r"); - FileChannel chan = raf.getChannel(); - ByteBuffer buf = chan.map(FileChannel.MapMode.READ_ONLY, 0, raf.length()); - FontDelegate[] fonts = OpenTypeFontFactory.createFonts(buf); - font = fonts[0]; - setGlyph(character); - refresh(); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - - void setGlyph(char ch) - { - character = ch; - glyph = (GNUGlyphVector) - font.createGlyphVector(new Font("Dialog", 0, 12), - new FontRenderContext(null, false, false), - new StringCharacterIterator(new String(new char[]{ch}))); - refresh(); - } - - public static void main(String[] args) { - HintingDemo f = new HintingDemo(); - f.setSize(500, 500); - f.setVisible(true); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/datatransfer/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/datatransfer/Demo.java deleted file mode 100644 index 3bf9431..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/datatransfer/Demo.java +++ /dev/null @@ -1,652 +0,0 @@ -/* Demo.java -- And example of copy/paste datatransfer - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.datatransfer; - -import java.awt.*; -import java.awt.event.*; -import java.awt.datatransfer.*; - -import java.io.*; -import java.net.URL; -import java.util.Arrays; -import java.util.Iterator; -import java.util.Random; - -/** - * An example how datatransfer works for copying and pasting data to - * and from other programs. - */ -class Demo - extends Frame - implements ActionListener, ItemListener, FlavorListener -{ - public static void main(String args[]) - { - new Demo(); - } - - private TextArea text; - private Button copyText; - private Button pasteText; - - private ImageComponent image; - private Button copyImage; - private Button pasteImage; - - private ObjectComponent object; - private Button copyObject; - private Button pasteObject; - - private FilesComponent files; - private Button copyFiles; - private Button pasteFiles; - - private FlavorsComponent flavors; - private FlavorDetailsComponent details; - - private Demo() - { - super("GNU Classpath datatransfer"); - - /* Add all the different panel to the main window in one row. */ - setLayout(new GridLayout(5, 1, 10, 10)); - add(createTextPanel()); - add(createImagePanel()); - add(createObjectPanel()); - add(createFilesPanel()); - add(createFlavorsPanel()); - - /* Add listeners for the various buttons and events we are - interested in. */ - addWindowListener(new WindowAdapter () - { - public void windowClosing (WindowEvent e) - { - dispose(); - } - }); - flavors.addItemListener(this); - Toolkit t = Toolkit.getDefaultToolkit(); - Clipboard c = t.getSystemClipboard(); - c.addFlavorListener(this); - - /* Show time! */ - pack(); - show(); - } - - /** - * The Text Panel will show simple text that can be copied and pasted. - */ - private Panel createTextPanel() - { - Panel textPanel = new Panel(); - textPanel.setLayout(new BorderLayout()); - text = new TextArea("GNU Everywhere!", - 2, 80, - TextArea.SCROLLBARS_VERTICAL_ONLY); - text.setEditable(false); - text.setEnabled(true); - Panel textButtons = new Panel(); - textButtons.setLayout(new FlowLayout()); - copyText = new Button("Copy text"); - copyText.addActionListener(this); - pasteText = new Button("Paste text"); - pasteText.addActionListener(this); - textButtons.add(copyText); - textButtons.add(pasteText); - textPanel.add(text, BorderLayout.CENTER); - textPanel.add(textButtons, BorderLayout.SOUTH); - return textPanel; - } - - /** - * The Image Panel shows an image that can be copied to another - * program or be replaced by pasting in an image from another - * application. - */ - private Panel createImagePanel() - { - Panel imagePanel = new Panel(); - imagePanel.setLayout(new BorderLayout()); - URL imageurl = this.getClass() - .getResource("/gnu/classpath/examples/icons/big-fullscreen.png"); - Image img = Toolkit.getDefaultToolkit().createImage(imageurl); - image = new ImageComponent(img); - Panel imageButtons = new Panel(); - copyImage = new Button("Copy image"); - copyImage.addActionListener(this); - pasteImage = new Button("Paste image"); - pasteImage.addActionListener(this); - imageButtons.add(copyImage); - imageButtons.add(pasteImage); - imagePanel.add(image, BorderLayout.CENTER); - imagePanel.add(imageButtons, BorderLayout.SOUTH); - return imagePanel; - } - - /** - * The Object Panel holds a simple (Point) object that can be copied - * and pasted to another program that supports exchanging serialized - * objects. - */ - private Panel createObjectPanel() - { - Panel objectPanel = new Panel(); - objectPanel.setLayout(new BorderLayout()); - Random random = new Random(); - int x = (byte) random.nextInt(); - int y = (byte) random.nextInt(); - object = new ObjectComponent(new Point(x, y)); - Panel objectButtons = new Panel(); - copyObject = new Button("Copy object"); - copyObject.addActionListener(this); - pasteObject = new Button("Paste object"); - pasteObject.addActionListener(this); - objectButtons.add(copyObject); - objectButtons.add(pasteObject); - objectPanel.add(object, BorderLayout.CENTER); - objectPanel.add(objectButtons, BorderLayout.SOUTH); - return objectPanel; - } - - /** - * The Files Panel shows the files from the current working - * directory. They can be copied and pasted between other - * applications that support the exchange of file lists. - */ - private Panel createFilesPanel() - { - Panel filesPanel = new Panel(); - filesPanel.setLayout(new BorderLayout()); - files = new FilesComponent(new File(".").listFiles()); - Panel filesButtons = new Panel(); - copyFiles = new Button("Copy files"); - copyFiles.addActionListener(this); - pasteFiles = new Button("Paste files"); - pasteFiles.addActionListener(this); - filesButtons.add(copyFiles); - filesButtons.add(pasteFiles); - filesPanel.add(files, BorderLayout.CENTER); - filesPanel.add(filesButtons, BorderLayout.SOUTH); - return filesPanel; - } - - /** - * The Flavors Panel shows the different formats (mime-types) that - * data on the clipboard is available in. By clicking on a flavor - * details about the representation class and object is given. - */ - private Panel createFlavorsPanel() - { - Panel flavorsPanel = new Panel(); - flavorsPanel.setLayout(new BorderLayout()); - Label flavorsHeader = new Label("Flavors on clipboard:"); - Toolkit t = Toolkit.getDefaultToolkit(); - Clipboard c = t.getSystemClipboard(); - DataFlavor[] dataflavors = c.getAvailableDataFlavors(); - flavors = new FlavorsComponent(dataflavors); - details = new FlavorDetailsComponent(null); - flavorsPanel.add(flavorsHeader, BorderLayout.NORTH); - flavorsPanel.add(flavors, BorderLayout.CENTER); - flavorsPanel.add(details, BorderLayout.SOUTH); - return flavorsPanel; - } - - /** - * FlavorListener implementation that updates the Flavors Panel - * whenever a change in the mime-types available has been detected. - */ - public void flavorsChanged(FlavorEvent event) - { - Toolkit t = Toolkit.getDefaultToolkit(); - Clipboard c = t.getSystemClipboard(); - DataFlavor[] dataflavors = c.getAvailableDataFlavors(); - flavors.setFlavors(dataflavors); - details.setDataFlavor(null); - } - - /** - * ItemChangeListener implementation that updates the flavor details - * whenever the user selects a different representation of the data - * available on the clipboard. - */ - public void itemStateChanged(ItemEvent evt) - { - DataFlavor df = null; - String s = flavors.getSelectedItem(); - if (s != null) - { - try - { - df = new DataFlavor(s); - } - catch (ClassNotFoundException cnfe) - { - cnfe.printStackTrace(); - } - } - details.setDataFlavor(df); - } - - /** - * ActionListener implementations that will copy or past data - * to/from the clipboard when the user requests that for the text, - * image, object of file component. - */ - public void actionPerformed (ActionEvent evt) - { - Button b = (Button) evt.getSource(); - Toolkit t = Toolkit.getDefaultToolkit(); - Clipboard c = t.getSystemClipboard(); - if (b == copyText) - c.setContents(new StringSelection(text.getText()), null); - - if (b == pasteText) - { - String s = null; - try - { - s = (String) c.getData(DataFlavor.stringFlavor); - } - catch (UnsupportedFlavorException dfnse) - { - } - catch (IOException ioe) - { - } - catch (ClassCastException cce) - { - } - if (s == null) - t.beep(); - else - text.setText(s); - } - - if (b == copyImage) - c.setContents(new ImageSelection(image.getImage()), null); - - if (b == pasteImage) - { - Image i = null; - try - { - i = (Image) c.getData(DataFlavor.imageFlavor); - } - catch (UnsupportedFlavorException dfnse) - { - } - catch (IOException ioe) - { - } - catch (ClassCastException cce) - { - } - if (i == null) - t.beep(); - else - image.setImage(i); - } - - if (b == copyObject) - c.setContents(new ObjectSelection(object.getObject()), null); - - if (b == pasteObject) - { - Serializable o = null; - try - { - o = (Serializable) c.getData(ObjectSelection.objFlavor); - } - catch (UnsupportedFlavorException dfnse) - { - } - catch (IOException ioe) - { - } - catch (ClassCastException cce) - { - } - if (o == null) - t.beep(); - else - object.setObject(o); - } - - if (b == copyFiles) - c.setContents(new FilesSelection(files.getFiles()), null); - - if (b == pasteFiles) - { - java.util.List fs = null; - try - { - fs = (java.util.List) c.getData(DataFlavor.javaFileListFlavor); - } - catch (UnsupportedFlavorException dfnse) - { - } - catch (IOException ioe) - { - } - catch (ClassCastException cce) - { - } - if (fs == null) - t.beep(); - else - files.setFiles(fs); - } - } - - /** - * Simple awt component that shows an settable image. - */ - static class ImageComponent extends Component - { - private Image image; - - ImageComponent(Image image) - { - setSize(20, 20); - setImage(image); - } - - Image getImage() - { - return image; - } - - void setImage(Image image) - { - this.image = image; - repaint(); - } - - public void paint(Graphics g) - { - g.drawImage(image, 0, 0, getWidth(), getHeight(), this); - } - } - - /** - * Simple awt component that shows a settable Serializable object. - */ - static class ObjectComponent extends TextArea - { - private Serializable object; - - ObjectComponent(Serializable object) - { - super("", 2, 80, TextArea.SCROLLBARS_NONE); - setEditable(false); - setEnabled(false); - setObject(object); - } - - Serializable getObject() - { - return object; - } - - void setObject(Serializable object) - { - this.object = object; - setText("Class: " + object.getClass().getName() - + "\n" - + "toString(): " + object.toString()); - repaint(); - } - } - - /** - * Simple awt component that shows a settable list of Files. - */ - static class FilesComponent extends List - { - private File[] files; - - FilesComponent(File[] files) - { - super(4, true); - setFiles(files); - } - - File[] getFiles() - { - String[] strings = getSelectedItems(); - if (strings == null || strings.length == 0) - return (File[]) files.clone(); - - File[] fs = new File[strings.length]; - for (int i = 0; i < strings.length; i++) - fs[i] = new File(strings[i]); - return fs; - } - - void setFiles(File[] files) - { - this.files = files; - removeAll(); - for (int i = 0; i < files.length; i++) - { - addItem(files[i].toString()); - select(i); - } - } - - void setFiles(java.util.List list) - { - File[] fs = new File[list.size()]; - int i = 0; - Iterator it = list.iterator(); - while (it.hasNext()) - fs[i++] = (File) it.next(); - - setFiles(fs); - } - } - - /** - * Simple awt component that shows a settable list of DataFlavors. - */ - static class FlavorsComponent extends List - { - FlavorsComponent(DataFlavor[] flavors) - { - super(4); - setFlavors(flavors); - } - - void setFlavors(DataFlavor[] flavors) - { - removeAll(); - for (int i = 0; i < flavors.length; i++) - { - addItem(flavors[i].getMimeType()); - } - } - } - - /** - * Simple awt component that shows the details for and an object as - * found on the system clipboard as represented by a given - * DataFlavor. - */ - static class FlavorDetailsComponent extends TextArea - { - private DataFlavor df; - - FlavorDetailsComponent(DataFlavor df) - { - super("", 2, 80, TextArea.SCROLLBARS_NONE); - setEditable(false); - setEnabled(false); - setDataFlavor(df); - } - - void setDataFlavor(DataFlavor df) - { - if (df == this.df - || (df != null && df.equals(this.df))) - return; - - this.df = df; - - if (df == null) - setText("No flavor selected"); - else - { - Object o = null; - Throwable exception = null; - try - { - Toolkit t = Toolkit.getDefaultToolkit(); - Clipboard c = t.getSystemClipboard(); - o = c.getData(df); - } - catch (Throwable t) - { - exception = t; - } - if (o != null) - { - setText("Data: " + o.getClass().getName() - + "\n" - + o); - } - else - { - setText("Error retrieving: " + df - + "\n" - + exception != null ? exception.toString() : ""); - } - } - repaint(); - } - } - - /** - * Helper class to put an Image on a clipboard as - * DataFlavor.imageFlavor. - */ - static class ImageSelection implements Transferable - { - private final Image img; - - ImageSelection(Image img) - { - this.img = img; - } - - static DataFlavor[] flavors = new DataFlavor[] { DataFlavor.imageFlavor }; - public DataFlavor[] getTransferDataFlavors() - { - return (DataFlavor[]) flavors.clone(); - } - - public boolean isDataFlavorSupported(DataFlavor flavor) - { - return flavor.equals(DataFlavor.imageFlavor); - } - - public Object getTransferData(DataFlavor flavor) - throws UnsupportedFlavorException - { - if (!isDataFlavorSupported(flavor)) - throw new UnsupportedFlavorException(flavor); - - return img; - } - } - - /** - * Helper class to put an Object on a clipboard as Serializable - * object. - */ - static class ObjectSelection implements Transferable - { - private final Serializable obj; - - ObjectSelection(Serializable obj) - { - this.obj = obj; - } - - static DataFlavor objFlavor = new DataFlavor(Serializable.class, - "Serialized Object"); - static DataFlavor[] flavors = new DataFlavor[] { objFlavor }; - public DataFlavor[] getTransferDataFlavors() - { - return (DataFlavor[]) flavors.clone(); - } - - public boolean isDataFlavorSupported(DataFlavor flavor) - { - return flavor.equals(objFlavor); - } - - public Object getTransferData(DataFlavor flavor) - throws UnsupportedFlavorException - { - if (!isDataFlavorSupported(flavor)) - throw new UnsupportedFlavorException(flavor); - - return obj; - } - } - - /** - * Helper class to put a List of Files on the clipboard as - * DataFlavor.javaFileListFlavor. - */ - static class FilesSelection implements Transferable - { - private final File[] files; - - FilesSelection(File[] files) - { - this.files = files; - } - - static DataFlavor[] flavors = new DataFlavor[] - { DataFlavor.javaFileListFlavor }; - public DataFlavor[] getTransferDataFlavors() - { - return (DataFlavor[]) flavors.clone(); - } - - public boolean isDataFlavorSupported(DataFlavor flavor) - { - return flavor.equals(DataFlavor.javaFileListFlavor); - } - - public Object getTransferData(DataFlavor flavor) - throws UnsupportedFlavorException - { - if (!isDataFlavorSupported(flavor)) - throw new UnsupportedFlavorException(flavor); - - return Arrays.asList(files); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java deleted file mode 100644 index 0a3c512..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java +++ /dev/null @@ -1,131 +0,0 @@ -/* Demo.java -- - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.classpath.examples.html; - -import gnu.javax.swing.text.html.parser.HTML_401F; - -import gnu.xml.dom.html2.DomHTMLParser; - -import java.io.IOException; -import java.io.PrintStream; -import java.io.StringReader; - -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.html2.HTMLDocument; - -/** - * This example demonstrates how to parse HTML input into - * org.w3c.dom.html2 document model. - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class Demo -{ - /** - * The sample HTML to parse. - */ - static String input = "<!--2-->a<b iD=1>x</b>y<b><i>c</b>d</i>e"; - - public static void main(String[] args) - { - try - { - // Create a parser, using our DTD. - DomHTMLParser p = new DomHTMLParser(HTML_401F.getInstance()); - HTMLDocument d = p.parseDocument(new StringReader(input)); - - // Print the input HTML. - System.out.println(input); - - // Print the parsed data structure. - print(System.out, d, 0); - } - catch (IOException ex) - { - ex.printStackTrace(); - } - } - - /** - * Print the parsed data structure. - * - * @param stream the output - * @param node the node - * @param ident the identation - */ - static void print(PrintStream stream, Node node, int ident) - { - if (node == null) - return; - - StringBuilder tab = new StringBuilder(); - stream.println(); - for (int i = 0; i < ident; i++) - { - tab.append(' '); - } - - stream.print(tab + node.getNodeName()); - if (node.getNodeValue() != null) - { - stream.println(); - stream.print(tab + " '" + node.getNodeValue() + "'"); - } - - NamedNodeMap attributes = node.getAttributes(); - if (attributes != null && attributes.getLength() != 0) - { - stream.print(' '); - for (int i = 0; i < attributes.getLength(); i++) - { - Node a = attributes.item(i); - stream.print(a.getNodeName() + "='" + a.getNodeValue() + "'"); - } - } - - ident += 2; - - NodeList childs = node.getChildNodes(); - if (childs != null) - for (int i = 0; i < childs.getLength(); i++) - { - print(stream, childs.item(i), ident); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/aicas.png b/libjava/classpath/examples/gnu/classpath/examples/icons/aicas.png Binary files differdeleted file mode 100644 index dcf3965..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/aicas.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/back.png b/libjava/classpath/examples/gnu/classpath/examples/icons/back.png Binary files differdeleted file mode 100644 index d320f26..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/back.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/badge.png b/libjava/classpath/examples/gnu/classpath/examples/icons/badge.png Binary files differdeleted file mode 100644 index 2f80ad9..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/badge.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/big-fullscreen.png b/libjava/classpath/examples/gnu/classpath/examples/icons/big-fullscreen.png Binary files differdeleted file mode 100644 index 12ca146..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/big-fullscreen.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/big-home.png b/libjava/classpath/examples/gnu/classpath/examples/icons/big-home.png Binary files differdeleted file mode 100644 index 3a8f055..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/big-home.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/big-warning.png b/libjava/classpath/examples/gnu/classpath/examples/icons/big-warning.png Binary files differdeleted file mode 100644 index dc8c8a4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/big-warning.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/palme.gif b/libjava/classpath/examples/gnu/classpath/examples/icons/palme.gif Binary files differdeleted file mode 100644 index 6947946..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/palme.gif +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/reload.png b/libjava/classpath/examples/gnu/classpath/examples/icons/reload.png Binary files differdeleted file mode 100644 index 04c5750..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/reload.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-copy.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-copy.png Binary files differdeleted file mode 100644 index f2f83e3..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-copy.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-cut.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-cut.png Binary files differdeleted file mode 100644 index f887e15..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-cut.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-back.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-back.png Binary files differdeleted file mode 100644 index bd5607c..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-back.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-down.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-down.png Binary files differdeleted file mode 100644 index c8f54fb..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-down.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-forward.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-forward.png Binary files differdeleted file mode 100644 index bc5bcc5..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-go-forward.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-mic.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-mic.png Binary files differdeleted file mode 100644 index 62fc914..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-mic.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-new.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-new.png Binary files differdeleted file mode 100644 index db8b087..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-new.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-open.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-open.png Binary files differdeleted file mode 100644 index b1b22e5..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-open.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-paste.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-paste.png Binary files differdeleted file mode 100644 index 35f67d6..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-paste.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-quit.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-quit.png Binary files differdeleted file mode 100644 index 60a6e40..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-quit.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save-as.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save-as.png Binary files differdeleted file mode 100644 index 9d7f9a4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save-as.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save.png Binary files differdeleted file mode 100644 index 0bc44ab..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-save.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-spell-check.png b/libjava/classpath/examples/gnu/classpath/examples/icons/stock-spell-check.png Binary files differdeleted file mode 100644 index 6f154fd..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/icons/stock-spell-check.png +++ /dev/null diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java b/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java deleted file mode 100644 index 4f6b9f4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java +++ /dev/null @@ -1,1571 +0,0 @@ -/* J2dBenchmark.java -- Benchmarking utility for java2d, - based on the Aicas AWT benchmarker - Copyright (C) 2006 Free Software Foundation, Inc. - - This file is part of GNU Classpath examples. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ - -package gnu.classpath.examples.java2d; - -import java.awt.AlphaComposite; -import java.awt.BasicStroke; -import java.awt.BorderLayout; -import java.awt.Canvas; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.GradientPaint; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Label; -import java.awt.MediaTracker; -import java.awt.Panel; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.TexturePaint; -import java.awt.Toolkit; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.geom.AffineTransform; -import java.awt.geom.Arc2D; -import java.awt.geom.CubicCurve2D; -import java.awt.geom.Ellipse2D; -import java.awt.geom.GeneralPath; -import java.awt.geom.Line2D; -import java.awt.geom.QuadCurve2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.RoundRectangle2D; -import java.awt.image.BufferedImage; -import java.net.URL; -import java.util.Iterator; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.TreeMap; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class J2dBenchmark - extends Panel -{ - /** - * Default number of test-iterations. - */ - protected static final int DEFAULT_TEST_SIZE = 1000; - - /** - * Default screen size. - */ - protected static final int DEFAULT_SCREEN_WIDTH = 320; - - protected static final int DEFAULT_SCREEN_HEIGHT = 240; - - /** - * Java2D tests. - */ - protected static final int J2DTEST_ARC = 1 << 0; - - protected static final int J2DTEST_CUBICCURVE = 1 << 1; - - protected static final int J2DTEST_ELLIPSE = 1 << 2; - - protected static final int J2DTEST_GENERALPATH = 1 << 3; - - protected static final int J2DTEST_LINE = 1 << 4; - - protected static final int J2DTEST_QUADCURVE = 1 << 5; - - protected static final int J2DTEST_RECTANGLE = 1 << 6; - - protected static final int J2DTEST_ROUNDRECTANGLE = 1 << 7; - - protected static final int J2DTEST_IMAGE = 1 << 8; - - protected static final int J2DTEST_NONE = 0; - - /* - private static final int J2DTEST_ALL = J2DTEST_ARC | J2DTEST_CUBICCURVE - | J2DTEST_ELLIPSE - | J2DTEST_GENERALPATH | J2DTEST_LINE - | J2DTEST_QUADCURVE - | J2DTEST_RECTANGLE - | J2DTEST_ROUNDRECTANGLE - | J2DTEST_IMAGE; - */ - private static final int J2DTEST_ALL = J2DTEST_ARC | J2DTEST_CUBICCURVE - | J2DTEST_ELLIPSE - | J2DTEST_LINE - | J2DTEST_QUADCURVE - | J2DTEST_RECTANGLE - | J2DTEST_ROUNDRECTANGLE - | J2DTEST_IMAGE; - - int iterations = 1; - - protected int screenWidth = DEFAULT_SCREEN_WIDTH; - - protected int screenHeight = DEFAULT_SCREEN_HEIGHT; - - protected boolean noClippingFlag = true; - - protected boolean withClippingFlag = true; - - protected boolean zeroClippingFlag = true; - - protected boolean singleBufferFlag = true; - - protected boolean doubleBufferFlag = true; - - protected boolean gradientFlag = false; - - protected String texture = null; - - protected boolean strokeFlag = false; - - protected float composite = 1; - - protected int xtranslate = 0; - - protected int ytranslate = 0; - - protected double xshear = 0; - - protected double yshear = 0; - - protected double rotate = 0; - - protected boolean antialiasFlag = false; - - protected AffineTransform affineTransform = null; - - protected int awtTests = J2DTEST_ALL; - - protected int testSize = DEFAULT_TEST_SIZE; - - private Label testLabel; - - private String testContext = ""; - - Logger logger = Logger.getLogger("J2dGraphicsBenchmark"); - - private Image pngTestImage; - - private Image gifTestImage; - - protected BufferedImage textureImage; - - protected TestSet testSetMap = new TestSet(); - - public String init() - { - boolean loadError = false; - pngTestImage = loadImage("../icons/aicas.png"); - gifTestImage = loadImage("../icons/palme.gif"); - - if (texture != null) - { - textureImage = loadBufferedImage(texture); - - if (textureImage == null) - { - logger.logp(Level.WARNING, "J2dGraphicsBenchmark", "init", - "Unable to load texture - defaulting " - + "to solid colours"); - texture = null; - loadError = true; - } - } - - setLayout(new BorderLayout()); - testLabel = new Label(); - add(testLabel, BorderLayout.NORTH); - add(new GraphicsTest(), BorderLayout.CENTER); - - if (loadError) - return "Unable to load image"; - else - return null; - } - - void setTestContext(String testName) - { - logger.logp(Level.INFO, "J2dGraphicsBenchmark", "recordTest", - "--- Starting new test context: " + testName); - testContext = testName; - testLabel.setText(testName); - } - - private void recordTest(String testName, long time) - { - logger.logp(Level.INFO, "J2dGraphicsBenchmark", "recordTest", - testContext + ": " + testName + " duration (ms): " + time); - TestRecorder recorder = testSetMap.getTest(testName); - if (recorder == null) - { - recorder = new TestRecorder(testName); - testSetMap.putTest(testName, recorder); - } - recorder.addRun(time); - } - - void printReport() - { - for (Iterator i = testSetMap.testIterator(); i.hasNext();) - { - TestRecorder recorder = testSetMap.getTest((String) i.next()); - System.out.println("TEST " + recorder.getTestName() + ": average " - + recorder.getAverage() + "ms [" - + recorder.getMinTime() + "-" - + recorder.getMaxTime() + "]"); - } - } - - void testComplete() - { - System.exit(0); - } - - public static void main(String[] args) - { - int awtTests; - int i; - boolean endOfOptionsFlag; - J2dBenchmark speed = new J2dBenchmark(); - - // Parse arguments. - i = 0; - endOfOptionsFlag = false; - awtTests = J2DTEST_NONE; - while (i < args.length) - { - if (! endOfOptionsFlag) - { - if (args[i].equals("--help") || args[i].equals("-help") - || args[i].equals("-h")) - { - System.out.println("Usage: J2dBenchmark [<options>] [<test> ...]"); - System.out.println(""); - System.out.println("Options: -i|--iterations=<n|-1> - number of iterations (-1 is infinite; default " - + speed.iterations + ")"); - System.out.println(" -w|--width=<n> - screen width; default " - + DEFAULT_SCREEN_WIDTH); - System.out.println(" -h|--height=<n> - screen height; default " - + DEFAULT_SCREEN_HEIGHT); - System.out.println(" -d|--noDoubleBuffer - disable double-buffering test"); - System.out.println(" -s|--testsize=<n> - size of each test; default " - + DEFAULT_TEST_SIZE); - System.out.println(" -c|--noClipping - disable clipping test"); - System.out.println(" -z|--noZeroClipping - disable clipping to zero test"); - System.out.println(""); - System.out.println("Additional options:"); - System.out.println(" --with-gradients - enable gradients (not compatible with --texture)"); - System.out.println(" --with-stroking - enable random stroking"); - System.out.println(" --texture=<file> - enable texturing with this file (not compatible with --with-gradients)"); - System.out.println(" --composite=<n|-1> - set alpha composite level; -1 for random; default 1.0 (no transparency)"); - System.out.println(" --anti-alias=<on|off> - set anti-aliasing hint (not all implementations respect this); default off"); - System.out.println(" --x-translate=<n> - set x-axis translation; default 0"); - System.out.println(" --y-translate=<n> - set y-axis translation; default 0"); - System.out.println(" --x-shear=<n> - set x-axis shear; default 0"); - System.out.println(" --y-shear=<n> - set y-axis shear; default 0"); - System.out.println(" --rotate=<n|-1> - set rotation (radians); -1 for random; default: 0 (none)"); - System.out.println(""); - System.out.println("Tests: arc"); - System.out.println(" cubiccurve"); - System.out.println(" ellipse"); - // System.out.println(" generalpath"); - System.out.println(" line"); - System.out.println(" quadcurve"); - System.out.println(" rectangle"); - System.out.println(" roundrectangle"); - System.out.println(" image"); - System.exit(1); - } - else if ((args[i].startsWith("-i=") || args[i].startsWith("--iterations="))) - { - speed.iterations = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-i") || args[i].equals("--iterations"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.iterations = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].startsWith("-w=") || args[i].startsWith("--width="))) - { - speed.screenWidth = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-w") || args[i].equals("--width"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.screenWidth = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].startsWith("-h=") || args[i].startsWith("--height="))) - { - speed.screenHeight = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-h") || args[i].equals("--height"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.screenHeight = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].equals("-d") || args[i].equals("--noDoubleBuffer"))) - { - speed.doubleBufferFlag = false; - i += 1; - continue; - } - else if ((args[i].startsWith("-s=") || args[i].startsWith("--testsize="))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.testSize = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if ((args[i].equals("-s") || args[i].equals("--testsize"))) - { - if ((i + 1) >= args.length) - { - System.err.println("ERROR: No argument given for option '" - + args[i] + "'!"); - System.exit(2); - } - speed.testSize = Integer.parseInt(args[i + 1]); - i += 2; - continue; - } - else if ((args[i].equals("-c") || args[i].equals("--noClipping"))) - { - speed.noClippingFlag = false; - i += 1; - continue; - } - else if ((args[i].equals("-z") || args[i].equals("--noZeroClipping"))) - { - speed.zeroClippingFlag = false; - i += 1; - continue; - } - else if (args[i].equals("--with-gradients")) - { - speed.gradientFlag = true; - i += 1; - continue; - } - else if (args[i].equals("--with-stroking")) - { - speed.strokeFlag = true; - i += 1; - continue; - } - else if (args[i].startsWith("--texture=")) - { - speed.texture = args[i].substring(args[i].indexOf('=') + 1); - i += 1; - continue; - } - else if (args[i].startsWith("--composite=")) - { - speed.composite = Float.parseFloat(args[i].substring(args[i].indexOf('=') + 1)); - if (speed.composite != - 1 - && (speed.composite < 0 || speed.composite > 1)) - { - System.err.println("ERROR: Invalid value for composite (must be between 0 and 1, or -1 for random)"); - System.exit(2); - } - i += 1; - continue; - } - else if (args[i].startsWith("--anti-alias=")) - { - speed.antialiasFlag = (args[i].substring(args[i].indexOf('=') + 1).equals("on")); - i += 1; - continue; - } - else if (args[i].startsWith("--x-translate=")) - { - speed.xtranslate = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if (args[i].startsWith("--y-translate=")) - { - speed.ytranslate = Integer.parseInt(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if (args[i].startsWith("--x-shear=")) - { - speed.xshear = Double.parseDouble(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if (args[i].startsWith("--y-shear=")) - { - speed.yshear = Double.parseDouble(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - else if (args[i].startsWith("--rotate=")) - { - speed.rotate = Double.parseDouble(args[i].substring(args[i].indexOf('=') + 1)); - i += 1; - continue; - } - - else if (args[i].equals("--")) - { - endOfOptionsFlag = true; - i += 1; - continue; - } - else if (args[i].startsWith("-")) - { - System.err.println("ERROR: Unknown option '" + args[i] + "'!"); - System.exit(2); - } - } - StringTokenizer tokenizer = new StringTokenizer(args[i], " +,"); - while (tokenizer.hasMoreTokens()) - { - String s = tokenizer.nextToken().toLowerCase(); - if (s.equals("arc")) - awtTests |= J2DTEST_ARC; - else if (s.equals("cubiccurve")) - awtTests |= J2DTEST_CUBICCURVE; - else if (s.equals("ellipse")) - awtTests |= J2DTEST_ELLIPSE; - else if (s.equals("generalpath")) - awtTests |= J2DTEST_GENERALPATH; - else if (s.equals("line")) - awtTests |= J2DTEST_LINE; - else if (s.equals("quadcurve")) - awtTests |= J2DTEST_QUADCURVE; - else if (s.equals("rectangle")) - awtTests |= J2DTEST_RECTANGLE; - else if (s.equals("roundrectangle")) - awtTests |= J2DTEST_ROUNDRECTANGLE; - else if (s.equals("image")) - awtTests |= J2DTEST_IMAGE; - else - { - System.err.println("Unknown AWT test '" + s + "'!"); - System.exit(2); - } - } - i += 1; - } - if (awtTests != J2DTEST_NONE) - speed.awtTests = awtTests; - - // Create graphics. - speed.init(); - final Frame frame = new Frame("J2dGraphicsBenchmark"); - - frame.addWindowListener(new WindowAdapter() - { - public void windowClosing(WindowEvent e) - { - frame.setVisible(false); - System.exit(0); - } - }); - - frame.add(speed, BorderLayout.CENTER); - frame.setSize(speed.screenWidth, speed.screenHeight); - frame.setVisible(true); - - // Insets are correctly set only after the native peer was created. - Insets insets = frame.getInsets(); - // The internal size of the frame should be 320x240. - frame.setSize(320 + insets.right + insets.left, 240 + insets.top - + insets.bottom); - } - - private Image loadImage(String imageName) - { - Image result = null; - logger.logp(Level.INFO, "J2dGraphicsBenchmark", "loadImage", - "Loading image: " + imageName); - URL url = getClass().getResource(imageName); - if (url != null) - { - result = Toolkit.getDefaultToolkit().getImage(url); - prepareImage(result, this); - } - else - { - logger.logp(Level.WARNING, "J2dGraphicsBenchmark", "loadImage", - "Could not locate image resource in class path: " - + imageName); - } - return result; - } - - private BufferedImage loadBufferedImage(String imageName) - { - BufferedImage result = null; - logger.logp(Level.INFO, "J2dGraphicsBenchmark", "loadImage", - "Loading image: " + imageName); - - // Try to load image out of classpath before trying an absolute filename - URL url = getClass().getResource(imageName); - Image img; - if (url != null) - img = Toolkit.getDefaultToolkit().getImage(url); - else - img = Toolkit.getDefaultToolkit().getImage(imageName); - - if (img != null) - { - // Wait for image to load - try - { - MediaTracker tracker = new MediaTracker(this); - tracker.addImage(img, 1); - tracker.waitForAll(); - - prepareImage(img, this); - result = new BufferedImage(img.getWidth(this), img.getHeight(this), - BufferedImage.TYPE_INT_RGB); - result.createGraphics().drawImage(img, 0, 0, this); - } - catch (InterruptedException e) - { - } - catch (IllegalArgumentException e) - { - } - } - - if (result == null) - { - logger.logp(Level.WARNING, "J2dGraphicsBenchmark", "loadBufferedImage", - "Could not locate image resource in class path: " - + imageName); - } - return result; - } - - /** - * Executes the test methods. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - void runTestSet(Graphics2D g, Dimension size) - { - // Any user-specified options (ie set transforms, rendering hints) - prepareGraphics(g); - - if ((awtTests & J2DTEST_ARC) != 0) - { - test_drawArc(g, size); - test_fillArc(g, size); - } - - if ((awtTests & J2DTEST_CUBICCURVE) != 0) - { - test_drawCubicCurve(g, size); - } - - if ((awtTests & J2DTEST_ELLIPSE) != 0) - { - test_drawEllipse(g, size); - test_fillEllipse(g, size); - } - - if ((awtTests & J2DTEST_GENERALPATH) != 0) - { - // Current implementation doesn't work - test_drawGeneralPath(g, size); - test_fillGeneralPath(g, size); - } - - if ((awtTests & J2DTEST_LINE) != 0) - { - test_drawLine(g, size); - } - - if ((awtTests & J2DTEST_QUADCURVE) != 0) - { - test_drawQuadCurve(g, size); - } - - if ((awtTests & J2DTEST_RECTANGLE) != 0) - { - test_drawRectangle(g, size); - test_fillRectangle(g, size); - } - - if ((awtTests & J2DTEST_ROUNDRECTANGLE) != 0) - { - test_drawRoundRectangle(g, size); - test_fillRoundRectangle(g, size); - } - - if ((awtTests & J2DTEST_IMAGE) != 0) - { - test_drawImage(g, size); - test_drawTransparentImage(g, size); - } - } - - /** - * Reset all graphics settings to the standard, default values - * - * @param g the object to apply settings to - */ - private void resetGraphics(Graphics2D g) - { - g.setTransform(new AffineTransform()); - g.setStroke(new BasicStroke()); - g.setComposite(AlphaComposite.SrcOut); - } - - /** - * Sets initial user graphics options - * - * @param g the object to apply settings to - */ - private void prepareGraphics(Graphics2D g) - { - // Transforms - if (affineTransform != null) - g.setTransform(affineTransform); - - else if (xtranslate != 0 || ytranslate != 0 || xshear != 0 || yshear != 0) - { - g.translate(xtranslate, ytranslate); - g.shear(xshear, yshear); - } - - if (rotate > 0) - g.rotate(rotate * Math.PI, screenWidth / 2, screenHeight / 2); - - // Composite (transparency) - if (composite > 0) - { - g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, - composite)); - } - - // Textures - if (texture != null) - g.setPaint(new TexturePaint(textureImage, - new Rectangle(0, 0, textureImage.getWidth(), - textureImage.getHeight()))); - - // Anti-alias setting - if (antialiasFlag) - g.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON)); - else - g.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_OFF)); - } - - /** - * Gets new random settings - * - * @param g the object to set parameters for - * @param size the screen size - */ - private void setRandom(Graphics2D g, Dimension size) - { - // Set colour / paint - if (gradientFlag) - { - Color c1 = new Color((int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1); - - Color c2 = new Color((int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1); - - g.setPaint(new GradientPaint(0, 0, c1, screenWidth / 5, - screenHeight / 5, c2, true)); - } - - else if (texture == null) - g.setPaint(new Color((int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1, - (int) (Math.random() * 254) + 1)); - - // Set stroke width and options - if (strokeFlag) - { - int cap = (int) (Math.random() * 3 + 1); - if (cap == 1) - cap = BasicStroke.CAP_SQUARE; - else if (cap == 2) - cap = BasicStroke.CAP_BUTT; - else - cap = BasicStroke.CAP_ROUND; - - int join = (int) (Math.random() * 3 + 1); - if (join == 1) - join = BasicStroke.JOIN_MITER; - else if (join == 2) - join = BasicStroke.JOIN_BEVEL; - else - join = BasicStroke.JOIN_ROUND; - - float[] dashes = { 10, 10 }; - g.setStroke(new BasicStroke((int) (Math.random() * 10), cap, join, 10f, - dashes, 0)); - } - - // Composite / transparency - if (composite == - 1) - { - g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, - (float) Math.random())); - } - - // Transformations - if (rotate == - 1) - g.rotate(Math.random() * Math.PI * 2); - } - - /** - * Draws random arcs within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawArc(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int startAngle = (int) (Math.random() * 360); - int arcAngle = (int) (Math.random() * 360 - startAngle); - - Arc2D arc = new Arc2D.Double(x, y, width, height, startAngle, arcAngle, - Arc2D.OPEN); - g.draw(arc); - } - endTime = System.currentTimeMillis(); - recordTest("draw(Arc2D.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random filled arcs within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillArc(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int startAngle = (int) (Math.random() * 360); - int arcAngle = (int) (Math.random() * 360); - - Arc2D arc = new Arc2D.Double(x, y, width, height, startAngle, arcAngle, - Arc2D.OPEN); - g.fill(arc); - } - endTime = System.currentTimeMillis(); - recordTest("fill(Arc2D.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random cubic curves within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawCubicCurve(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int xc1 = (int) (Math.random() * (size.width - minSize)); - int yc1 = (int) (Math.random() * (size.height - minSize)); - int xc2 = (int) (Math.random() * (size.width - minSize)); - int yc2 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - - CubicCurve2D curve = new CubicCurve2D.Double(x1, y1, xc1, yc1, xc2, - yc2, x2, y2); - g.draw(curve); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(CubicCurve2D.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random ellipses within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawEllipse(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - Ellipse2D ellipse = new Ellipse2D.Double(x1, y1, x2, y2); - g.draw(ellipse); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(Ellipse.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random ellipses within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillEllipse(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - Ellipse2D ellipse = new Ellipse2D.Double(x1, y1, x2, y2); - g.fill(ellipse); - } - long endTime = System.currentTimeMillis(); - recordTest("fill(Ellipse.Double) " + maxTests + " times", - (endTime - startTime)); - } - - // TODO: fix the GeneralPath methods. - /** - * Draws random polygons within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawGeneralPath(Graphics2D g, Dimension size) - { - int maxTests = testSize; - long startTime = System.currentTimeMillis(); - - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int points = (int) (Math.random() * 6) + 2; - GeneralPath shape = new GeneralPath(); - shape.moveTo((float) Math.random() * (size.width), - (float) Math.random() * (size.height)); - for (int j = 0; j < points; j += 1) - { - shape.lineTo((float) (Math.random() * (size.width)), - (float) (Math.random() * (size.height))); - } - g.draw(shape); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(GeneralPath) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random filled polygons within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillGeneralPath(Graphics2D g, Dimension size) - { - int maxTests = testSize; - long startTime = System.currentTimeMillis(); - - GeneralPath shape = new GeneralPath(); - shape.moveTo((float) Math.random() * (size.width), (float) Math.random() - * (size.height)); - - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int points = (int) (Math.random() * 6) + 2; - for (int j = 0; j < points; j += 1) - { - shape.lineTo((float) (Math.random() * (size.width)), - (float) (Math.random() * (size.height))); - } - g.fill(shape); - } - long endTime = System.currentTimeMillis(); - recordTest("fill(GeneralPath) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random lines within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawLine(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - Line2D line = new Line2D.Double(x1, y1, x2, y2); - g.draw(line); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(Line2D.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random quadratic curves within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawQuadCurve(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int xc = (int) (Math.random() * (size.width - minSize)); - int yc = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - - QuadCurve2D curve = new QuadCurve2D.Double(x1, y1, xc, yc, x2, y2); - g.draw(curve); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(QuadCurve2D.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random rectangles within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawRectangle(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - Rectangle2D rect = new Rectangle2D.Double(x1, y1, x2, y2); - g.draw(rect); - } - long endTime = System.currentTimeMillis(); - recordTest("draw(Rectangle.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random rectangles within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillRectangle(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize = 10; - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x1 = (int) (Math.random() * (size.width - minSize)); - int y1 = (int) (Math.random() * (size.height - minSize)); - int x2 = (int) (Math.random() * (size.width - minSize)); - int y2 = (int) (Math.random() * (size.height - minSize)); - Rectangle2D rect = new Rectangle2D.Double(x1, y1, x2, y2); - g.fill(rect); - } - long endTime = System.currentTimeMillis(); - recordTest("fill(Rectangle.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random rounded rectangles within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawRoundRectangle(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int arcWidth = (int) (Math.random() * (width - 1) + 1); - int arcHeight = (int) (Math.random() * (height - 1) + 5); - RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, - height, arcWidth, - arcHeight); - g.draw(rect); - } - endTime = System.currentTimeMillis(); - recordTest("draw(RoundRectangle.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random filled rounded rectangles within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_fillRoundRectangle(Graphics2D g, Dimension size) - { - int maxTests = testSize; - int minSize; - long startTime; - long endTime; - minSize = 10; - startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - minSize + 1)); - int y = (int) (Math.random() * (size.height - minSize + 1)); - int width = (int) (Math.random() * (size.width - x - minSize) + minSize); - int height = (int) (Math.random() * (size.height - y - minSize) + minSize); - int arcWidth = (int) (Math.random() * (width - 1) + 1); - int arcHeight = (int) (Math.random() * (height - 1) + 5); - RoundRectangle2D rect = new RoundRectangle2D.Double(x, y, width, - height, arcWidth, - arcHeight); - g.fill(rect); - } - endTime = System.currentTimeMillis(); - recordTest("fill(RoundRectangle.Double) " + maxTests + " times", - (endTime - startTime)); - } - - /** - * Draws random images within the given dimensions. - * - * @param g The Graphics2D object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawImage(Graphics2D g, Dimension size) - { - if (gifTestImage == null) - { - logger.logp(Level.WARNING, "J2dGraphicsBenchmark", "runTestSet", - "Skipping 'test_drawImage' due to missing resource."); - return; - } - - int maxTests = testSize / 2; - if (maxTests == 0) - maxTests = 1; - int imageWidth = gifTestImage.getWidth(this); - int imageHeight = gifTestImage.getHeight(this); - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - imageWidth + 1)); - int y = (int) (Math.random() * (size.height - imageHeight + 1)); - g.drawImage(gifTestImage, x, y, this); - } - long endTime = System.currentTimeMillis(); - recordTest("drawImage " + maxTests + " times", (endTime - startTime)); - } - - /** - * Draws random transparent images within the given dimensions. - * - * @param g The Graphics object that is used to paint. - * @param size The size of the canvas. - */ - private void test_drawTransparentImage(Graphics2D g, Dimension size) - { - if (pngTestImage == null) - { - logger.logp(Level.WARNING, "AicasGraphicsBenchmark", "runTestSet", - "Skipping 'drawTransparentImage' due to missing resource."); - return; - } - - int maxTests = testSize / 5; - if (maxTests == 0) - maxTests = 1; - int imageWidth = pngTestImage.getWidth(this); - int imageHeight = pngTestImage.getHeight(this); - long startTime = System.currentTimeMillis(); - for (int i = 0; i < maxTests; i += 1) - { - setRandom(g, size); - int x = (int) (Math.random() * (size.width - imageWidth + 1)); - int y = (int) (Math.random() * (size.height - imageHeight + 1)); - g.drawImage(pngTestImage, x, y, this); - } - long endTime = System.currentTimeMillis(); - recordTest("draw transparent image " + maxTests + " times", - (endTime - startTime)); - } - - private class GraphicsTest - extends Canvas - implements Runnable - { - Thread paintThread; - - boolean done = false; - - boolean doPaint = false; - - boolean withClipping = false; - - public GraphicsTest() - { - paintThread = new Thread(this); - paintThread.start(); - } - - public void run() - { - int runCount = 0; - while (! done) - { - runCount++; - - try - { - synchronized (this) - { - while (! doPaint) - { - try - { - wait(200); - } - catch (InterruptedException exception) - { - return; - } - } - } - - // if (iterations != 0) - // System.out.println("--- run...(" - // + runCount - // + "/" - // + iterations - // + ") ------------------------------------------------------"); - - Graphics g = getGraphics(); - Dimension size = getSize(); - - if (singleBufferFlag) - { - logger.logp(Level.INFO, "J2dGraphicsBenchmark.GraphicsTest", - "run", - "Start testing non-double-buffered drawing"); - - if (noClippingFlag) - runSet_noClipping((Graphics2D) g, size, runCount); - - if (withClippingFlag) - runSet_withClipping((Graphics2D) g, size, runCount); - - if (zeroClippingFlag) - runSet_zeroClipping((Graphics2D) g, size, runCount); - - g.dispose(); - } - - if (doubleBufferFlag) - { - logger.logp(Level.INFO, "J2dGraphicsBenchmark.GraphicsTest", - "run", "Start testing double-buffered drawing"); - Graphics canvas = getGraphics(); - Image doublebuffer = createImage(size.width, size.height); - - if (noClippingFlag) - { - g = doublebuffer.getGraphics(); - runSet_noClipping((Graphics2D) g, size, - "double buffering", runCount); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - } - - if (withClippingFlag) - { - g = doublebuffer.getGraphics(); - runSet_withClipping((Graphics2D) g, size, - "double buffering", runCount); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - } - - if (zeroClippingFlag) - { - g = doublebuffer.getGraphics(); - runSet_zeroClipping((Graphics2D) g, size, - "double buffering", runCount); - g.dispose(); - canvas.drawImage(doublebuffer, 0, 0, this); - canvas.dispose(); - } - } - - printReport(); - - if (iterations != 1) - { - if (iterations != - 1) - iterations--; - } - else - { - // System.out.println("--- done - // --------------------------------------------------------"); - synchronized (this) - { - doPaint = false; - } - done = true; - } - } - catch (Error error) - { - System.err.println("Error: " + error); - System.exit(129); - } - } - testComplete(); - } - - private void runSet_zeroClipping(Graphics2D g, Dimension size, int runCount) - { - runSet_zeroClipping(g, size, "", runCount); - } - - private void runSet_zeroClipping(Graphics2D g, Dimension size, - String context, int runCount) - { - int clipped_width; - int clipped_height; - int clipped_x; - int clipped_y; - - clipped_width = 0; - clipped_height = 0; - clipped_x = (size.width) / 2; - clipped_y = (size.height) / 2; - - // Reset any transforms from past tests - resetGraphics(g); - - Rectangle fullWindow = new Rectangle(0, 0, size.width, size.height); - g.setClip(fullWindow); - g.setPaint(Color.BLACK); - g.fill(fullWindow); - - Rectangle windowBorder = new Rectangle(0, 0, size.width - 1, - size.width - 1); - g.setPaint(Color.WHITE); - g.draw(windowBorder); - - Rectangle innerBorder = new Rectangle(clipped_x - 1, clipped_y - 1, - clipped_width + 2, - clipped_height + 2); - g.fill(innerBorder); - - Rectangle innerBox = new Rectangle(clipped_x, clipped_y, clipped_width, - clipped_height); - g.clip(innerBox); - g.setPaint(Color.BLACK); - g.fill(fullWindow); - - if (context.equals("")) - setTestContext("(" + runCount + ") clipping to zero"); - else - setTestContext("(" + runCount + ") clipping to zero (" + context + ")"); - - runTestSet(g, size); - } - - private void runSet_withClipping(Graphics2D g, Dimension size, int runCount) - { - runSet_withClipping(g, size, "", runCount); - } - - private void runSet_withClipping(Graphics2D g, Dimension size, - String context, int runCount) - { - int clipped_width = 2 * size.width / 3; - int clipped_height = 2 * size.height / 3; - int clipped_x = (size.width - clipped_width) / 2; - int clipped_y = (size.height - clipped_height) / 2; - - // Reset any transforms from past tests - resetGraphics(g); - - Rectangle fullWindow = new Rectangle(0, 0, size.width, size.height); - g.setClip(fullWindow); - - g.setPaint(Color.BLACK); - g.fill(fullWindow); - - Rectangle windowBorder = new Rectangle(0, 0, size.width - 1, - size.height - 1); - g.setPaint(Color.GREEN); - g.draw(windowBorder); - - Rectangle innerBorder = new Rectangle(clipped_x - 1, clipped_y - 1, - clipped_width + 2, - clipped_height + 2); - g.setPaint(Color.WHITE); - g.fill(innerBorder); - - Rectangle innerBox = new Rectangle(clipped_x, clipped_y, clipped_width, - clipped_height); - g.clip(innerBox); - - g.setPaint(Color.BLACK); - g.fill(fullWindow); - - if (context.equals("")) - setTestContext("(" + runCount + ") with clipping "); - else - setTestContext("(" + runCount + ") with clipping (" + context + ")"); - - runTestSet(g, size); - } - - private void runSet_noClipping(Graphics2D g, Dimension size, int runCount) - { - runSet_noClipping(g, size, "", runCount); - } - - private void runSet_noClipping(Graphics2D g, Dimension size, - String context, int runCount) - { - // Reset any transforms from past tests - resetGraphics(g); - - Rectangle fullWindow = new Rectangle(0, 0, size.width, size.height); - g.setPaint(Color.BLACK); - g.fill(fullWindow); - - if (context.equals("")) - setTestContext("(" + runCount + ") without clipping"); - else - setTestContext("(" + runCount + ") without clipping (" + context + ")"); - - runTestSet(g, size); - } - - public void paint(Graphics g) - { - synchronized (this) - { - doPaint = true; - notify(); - } - } - } -} - -class TestContext -{ -} - -class TestSet -{ - private Map testsMap = new TreeMap(); - - public void putTest(String testName, TestRecorder recoder) - { - testsMap.put(testName, recoder); - } - - public TestRecorder getTest(String testName) - { - return (TestRecorder) testsMap.get(testName); - } - - public Iterator testIterator() - { - return testsMap.keySet().iterator(); - } -} - -class TestRecorder -{ - String test; - - long totalTime = 0; - - long minTime = Long.MAX_VALUE; - - long maxTime = Long.MIN_VALUE; - - int runCount = 0; - - /** - * @return Returns the maxTime. - */ - public final long getMaxTime() - { - return maxTime; - } - - /** - * @return Returns the minTime. - */ - public final long getMinTime() - { - return minTime; - } - - /** - * @return Returns the test name. - */ - public final String getTestName() - { - return test; - } - - public final long getAverage() - { - return (totalTime / runCount); - } - - public TestRecorder(String testName) - { - test = testName; - } - - public void addRun(long time) - { - totalTime += time; - if (minTime > time) - minTime = time; - if (maxTime < time) - maxTime = time; - runCount += 1; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java b/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java deleted file mode 100644 index ce12fa1..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java +++ /dev/null @@ -1,891 +0,0 @@ -/* J2dBenchmarkGUI.java -- GUI for java2d benchmarker - Copyright (C) 2006 Free Software Foundation, Inc. - - This file is part of GNU Classpath. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ - -package gnu.classpath.examples.java2d; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Container; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.LogRecord; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.border.BevelBorder; - -/** - * Extends the J2dBenchmark to provide a GUI for selecting options and tests. - */ -public class J2dBenchmarkGUI - implements ActionListener -{ - - JLabel errorLabel; - - JCheckBox noClipping; - - JCheckBox withClipping; - - JCheckBox zeroClipping; - - JCheckBox singleBuffer; - - JCheckBox doubleBuffer; - - public J2dBenchmarkGUI() - { - super(); - } - - public static void main(String[] args) - { - new J2dBenchmarkGUI().run(); - } - - /** - * Sets up the initial GUI - */ - public void run() - { - // Store all elements in a hashtable so that they can be passed into the - // harness easily. - Hashtable elements = new Hashtable(); - - // Set up frame - final JFrame frame = new JFrame("Java2D benchmark"); - errorLabel = new JLabel(" "); - - JPanel panel = new JPanel(); - panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); - Container content = frame.getContentPane(); - - // Display options for dimensions, iterations, test size, etc - JPanel options = new JPanel(new GridLayout(0, 2)); - - options.add(new JLabel("Height: ")); - JTextField heightField = new JTextField(Integer.toString(J2dBenchmark.DEFAULT_SCREEN_HEIGHT)); - heightField.setColumns(5); - options.add(heightField); - elements.put("height", heightField); - - options.add(new JLabel("Width: ")); - JTextField widthField = new JTextField(Integer.toString(J2dBenchmark.DEFAULT_SCREEN_WIDTH)); - widthField.setColumns(5); - options.add(widthField); - elements.put("width", widthField); - - options.add(new JLabel("Iterations: ")); - JTextField iterField = new JTextField("1"); - iterField.setColumns(5); - options.add(iterField); - elements.put("iterations", iterField); - - options.add(new JLabel("Test size: ")); - JTextField testSizeField = new JTextField(Integer.toString(J2dBenchmark.DEFAULT_TEST_SIZE)); - testSizeField.setColumns(5); - options.add(testSizeField); - elements.put("size", testSizeField); - - options.add(new JLabel("Test without clipping: ")); - noClipping = new JCheckBox("", true); - noClipping.addActionListener(this); - options.add(noClipping); - elements.put("noclip", noClipping); - - options.add(new JLabel("Test with clipping: ")); - withClipping = new JCheckBox("", true); - withClipping.addActionListener(this); - options.add(withClipping); - elements.put("withclip", withClipping); - - options.add(new JLabel("Test with clipping to zero: ")); - zeroClipping = new JCheckBox("", true); - zeroClipping.addActionListener(this); - options.add(zeroClipping); - elements.put("zeroclip", zeroClipping); - - options.add(new JLabel("Run single-buffer test: ")); - singleBuffer = new JCheckBox("", true); - singleBuffer.addActionListener(this); - options.add(singleBuffer); - elements.put("singlebuffer", singleBuffer); - - options.add(new JLabel("Run double-buffer test: ")); - doubleBuffer = new JCheckBox("", true); - doubleBuffer.addActionListener(this); - options.add(doubleBuffer); - elements.put("doublebuffer", doubleBuffer); - - // Allow user to select tests to run - JPanel tests = new JPanel(); - tests.setLayout(new BoxLayout(tests, BoxLayout.PAGE_AXIS)); - tests.setBorder(new BevelBorder(BevelBorder.RAISED)); - tests.add(new JLabel("Shapes to test:")); - - JCheckBox test_arcDraw = new JCheckBox("Arc", true); - tests.add(test_arcDraw); - elements.put("test_arcDraw", test_arcDraw); - - JCheckBox test_ccurveDraw = new JCheckBox("Cubic Curve", true); - tests.add(test_ccurveDraw); - elements.put("test_ccurveDraw", test_ccurveDraw); - - JCheckBox test_ellipseDraw = new JCheckBox("Ellipse", true); - tests.add(test_ellipseDraw); - elements.put("test_ellipseDraw", test_ellipseDraw); - - /* - JCheckBox test_pathDraw = new JCheckBox("General Path", true); - tests.add(test_pathDraw); - elements.put("test_pathDraw", test_pathDraw); - */ - - JCheckBox test_lineDraw = new JCheckBox("Line", true); - tests.add(test_lineDraw); - elements.put("test_lineDraw", test_lineDraw); - - JCheckBox test_qcurveDraw = new JCheckBox("Quadratic Curve", true); - tests.add(test_qcurveDraw); - elements.put("test_qcurveDraw", test_qcurveDraw); - - JCheckBox test_rectDraw = new JCheckBox("Rectangle", true); - tests.add(test_rectDraw); - elements.put("test_rectDraw", test_rectDraw); - - JCheckBox test_rrectDraw = new JCheckBox("Round Rectangle", true); - tests.add(test_rrectDraw); - elements.put("test_rrectDraw", test_rrectDraw); - - JCheckBox test_image = new JCheckBox("Images", true); - tests.add(test_image); - elements.put("test_image", test_image); - - // Additional image-processing options - JPanel extras = new JPanel(); - extras.setBorder(new BevelBorder(BevelBorder.LOWERED)); - GridBagLayout layout = new GridBagLayout(); - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.NORTHWEST; - gbc.insets = new Insets(5, 2, 15, 15); - extras.setLayout(layout); - - // Filling (solid, gradient, or texture) - JPanel opt_Fill = new JPanel(); - opt_Fill.setLayout(new BoxLayout(opt_Fill, BoxLayout.PAGE_AXIS)); - JLabel opt_FillLabel = new JLabel("Filling:"); - opt_FillLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); - opt_Fill.add(opt_FillLabel); - - ButtonGroup opt_FillGroup = new ButtonGroup(); - JRadioButton opt_FillSolid = new JRadioButton("Solid colour", true); - opt_FillSolid.setActionCommand("solid"); - opt_Fill.add(opt_FillSolid); - opt_FillGroup.add(opt_FillSolid); - JRadioButton opt_FillGradient = new JRadioButton("Gradient", false); - opt_FillGradient.setActionCommand("gradient"); - opt_Fill.add(opt_FillGradient); - opt_FillGroup.add(opt_FillGradient); - JRadioButton opt_FillTexture = new JRadioButton("Texture", false); - opt_FillTexture.setActionCommand("texture"); - opt_Fill.add(opt_FillTexture); - opt_FillGroup.add(opt_FillTexture); - JTextField opt_FillTextureFile = new JTextField("texture file"); - opt_FillTextureFile.setAlignmentX(JComponent.LEFT_ALIGNMENT); - opt_Fill.add(opt_FillTextureFile); - elements.put("opt_FillGroup", opt_FillGroup); - elements.put("opt_FillTextureFile", opt_FillTextureFile); - layout.setConstraints(opt_Fill, gbc); - extras.add(opt_Fill); - - // Stroke - JPanel opt_Stroke = new JPanel(); - opt_Stroke.setLayout(new BoxLayout(opt_Stroke, BoxLayout.PAGE_AXIS)); - JLabel opt_StrokeLabel = new JLabel("Stroke:"); - opt_StrokeLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); - opt_Stroke.add(opt_StrokeLabel); - JCheckBox opt_StrokeRandom = new JCheckBox("random", false); - elements.put("opt_StrokeRandom", opt_StrokeRandom); - opt_Stroke.add(opt_StrokeRandom); - gbc.gridwidth = GridBagConstraints.REMAINDER; - layout.setConstraints(opt_Stroke, gbc); - extras.add(opt_Stroke); - - // Anti-Alias - JPanel opt_Alias = new JPanel(); - opt_Alias.setLayout(new BoxLayout(opt_Alias, BoxLayout.PAGE_AXIS)); - JLabel opt_AliasLabel = new JLabel("Anti-Aliasing:"); - opt_AliasLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); - opt_Alias.add(opt_AliasLabel); - JCheckBox opt_AliasOn = new JCheckBox("on", false); - elements.put("opt_AliasOn", opt_AliasOn); - opt_Alias.add(opt_AliasOn); - gbc.gridwidth = 1; - layout.setConstraints(opt_Alias, gbc); - extras.add(opt_Alias); - - // Alpha composite - JPanel opt_Composite = new JPanel(); - opt_Composite.setLayout(new BoxLayout(opt_Composite, BoxLayout.PAGE_AXIS)); - JLabel opt_CompositeLabel = new JLabel("Alpha Composite:"); - opt_CompositeLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); - opt_Composite.add(opt_CompositeLabel); - JTextField opt_CompositeValue = new JTextField("1.0"); - opt_CompositeValue.setAlignmentX(JComponent.LEFT_ALIGNMENT); - elements.put("opt_CompositeValue", opt_CompositeValue); - opt_Composite.add(opt_CompositeValue); - gbc.gridwidth = GridBagConstraints.REMAINDER; - layout.setConstraints(opt_Composite, gbc); - extras.add(opt_Composite); - - // Transformations - // TODO: allow user-defined matrices for AffineTransform - // (backend already has hooks for it, need to create gui) - JLabel opt_TransformLabel = new JLabel("Transformations:"); - opt_TransformLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); - gbc.insets = new Insets(5, 2, 0, 15); - layout.setConstraints(opt_TransformLabel, gbc); - extras.add(opt_TransformLabel); - - JPanel opt_Transform_Translate = new JPanel(new GridLayout(0, 2, 5, 5)); - opt_Transform_Translate.add(new JLabel("x-axis translation ")); - JTextField opt_TransformTranslateX = new JTextField("0"); - opt_TransformTranslateX.setAlignmentX(JComponent.LEFT_ALIGNMENT); - opt_Transform_Translate.add(opt_TransformTranslateX); - elements.put("opt_TransformTranslateX", opt_TransformTranslateX); - opt_Transform_Translate.add(new JLabel("y-axis translation ")); - JTextField opt_TransformTranslateY = new JTextField("0"); - opt_TransformTranslateY.setAlignmentX(JComponent.LEFT_ALIGNMENT); - opt_Transform_Translate.add(opt_TransformTranslateY); - elements.put("opt_TransformTranslateY", opt_TransformTranslateY); - gbc.gridwidth = 1; - gbc.insets = new Insets(0, 2, 5, 15); - layout.setConstraints(opt_Transform_Translate, gbc); - extras.add(opt_Transform_Translate); - - JPanel opt_Transform_Shear = new JPanel(new GridLayout(0, 2, 5, 5)); - opt_Transform_Shear.add(new JLabel("x-axis shear ")); - JTextField opt_TransformShearX = new JTextField("0"); - opt_TransformShearX.setAlignmentX(JComponent.LEFT_ALIGNMENT); - opt_Transform_Shear.add(opt_TransformShearX); - elements.put("opt_TransformShearX", opt_TransformShearX); - opt_Transform_Shear.add(new JLabel("y-axis shear ")); - JTextField opt_TransformShearY = new JTextField("0"); - opt_Transform_Shear.add(opt_TransformShearY); - elements.put("opt_TransformShearY", opt_TransformShearY); - gbc.gridwidth = GridBagConstraints.REMAINDER; - layout.setConstraints(opt_Transform_Shear, gbc); - extras.add(opt_Transform_Shear); - - JPanel opt_Transform_Rotate = new JPanel(new GridLayout(0, 2, 5, 5)); - opt_Transform_Rotate.add(new JLabel("rotation (radians) ")); - JTextField opt_TransformRotate = new JTextField("0"); - opt_Transform_Rotate.add(opt_TransformRotate); - elements.put("opt_TransformRotate", opt_TransformRotate); - layout.setConstraints(opt_Transform_Rotate, gbc); - extras.add(opt_Transform_Rotate); - - // Final submit button - JPanel submit = new JPanel(); - submit.setLayout(new BoxLayout(submit, BoxLayout.PAGE_AXIS)); - - JButton rectButton = new JButton("Run benchmark"); - rectButton.setAlignmentX(JComponent.CENTER_ALIGNMENT); - submit.add(rectButton, BorderLayout.CENTER); - - errorLabel.setAlignmentX(JComponent.CENTER_ALIGNMENT); - errorLabel.setForeground(Color.RED); - submit.add(errorLabel); - - rectButton.addActionListener(new Harness(elements, errorLabel)); - - // Lay it all out - JPanel body = new JPanel(); - body.setLayout(new BoxLayout(body, BoxLayout.LINE_AXIS)); - options.setAlignmentX(JComponent.LEFT_ALIGNMENT); - body.add(options); - body.add(Box.createHorizontalStrut(50)); - tests.setAlignmentX(JComponent.RIGHT_ALIGNMENT); - body.add(tests); - - body.setAlignmentX(JComponent.CENTER_ALIGNMENT); - panel.add(body); - extras.setAlignmentX(JComponent.CENTER_ALIGNMENT); - panel.add(extras); - submit.setAlignmentX(JComponent.CENTER_ALIGNMENT); - panel.add(submit); - - content.add(panel, BorderLayout.CENTER); - - // Leave some breathing space in the frame - frame.pack(); - - frame.addWindowListener(new WindowAdapter() - { - public void windowClosing(WindowEvent e) - { - frame.setVisible(false); - System.exit(0); - } - }); - - frame.show(); - } - - /** - * Handles user events on the options GUI, ensuring that user input is valid - */ - public void actionPerformed(ActionEvent ev) - { - if (! noClipping.isSelected() && ! withClipping.isSelected() - && ! zeroClipping.isSelected()) - errorLabel.setText("You must select at least one clipping option"); - - else if (! singleBuffer.isSelected() && ! doubleBuffer.isSelected()) - errorLabel.setText("You must select at least one buffering option"); - - else - errorLabel.setText(" "); - } - - /** - * Parses GUI input and sets options in the benchmarker - */ - private class Harness - implements ActionListener - { - Hashtable elements; - - JLabel errorLabel; - - /** - * Creates a new Harness object - * - * @param elements Hashtable containing the swing elements from the GUI - * @param errorLabel JLabel on which to display any error messages - */ - public Harness(Hashtable elements, JLabel errorLabel) - { - super(); - - this.elements = elements; - this.errorLabel = errorLabel; - } - - /** - * Handles user button-clicks, parsing the form, setting options, and - * starting the J2dBenchmark - * - * @param ae event that triggered this action - */ - public void actionPerformed(ActionEvent ae) - { - try - { - // Create benchmarker object - final JFrame frame = new JFrame("Java2D benchmark"); - J2dBenchmarkWrapper speed = new J2dBenchmarkWrapper(frame); - - // Set options - speed.setDimensions(Integer.parseInt(((JTextField) elements.get("width")).getText()), - Integer.parseInt(((JTextField) elements.get("height")).getText())); - - speed.setIterations(Integer.parseInt(((JTextField) elements.get("iterations")).getText())); - speed.setTestSize(Integer.parseInt(((JTextField) elements.get("size")).getText())); - - speed.setClipping(((JCheckBox) elements.get("noclip")).isSelected(), - ((JCheckBox) elements.get("withclip")).isSelected(), - ((JCheckBox) elements.get("zeroclip")).isSelected()); - - speed.setBuffers(((JCheckBox) elements.get("singlebuffer")).isSelected(), - ((JCheckBox) elements.get("doublebuffer")).isSelected()); - - // Set additional processing options - speed.setFill(((ButtonGroup) elements.get("opt_FillGroup")).getSelection().getActionCommand(), - ((JTextField) elements.get("opt_FillTextureFile")).getText()); - - speed.setStroke(((JCheckBox) elements.get("opt_StrokeRandom")).isSelected()); - - speed.setAlias(((JCheckBox) elements.get("opt_AliasOn")).isSelected()); - - speed.setComposite(Float.parseFloat(((JTextField) elements.get("opt_CompositeValue")).getText())); - - speed.setTranslation(Integer.parseInt(((JTextField) elements.get("opt_TransformTranslateX")).getText()), - Integer.parseInt(((JTextField) elements.get("opt_TransformTranslateY")).getText())); - - speed.setRotation(Double.parseDouble(((JTextField) elements.get("opt_TransformRotate")).getText())); - - speed.setShear(Double.parseDouble(((JTextField) elements.get("opt_TransformShearX")).getText()), - Double.parseDouble(((JTextField) elements.get("opt_TransformShearY")).getText())); - - // Set tests - int testSuite = 0; - if (((JCheckBox) elements.get("test_arcDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_ARC; - if (((JCheckBox) elements.get("test_ccurveDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_CUBICCURVE; - if (((JCheckBox) elements.get("test_ellipseDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_ELLIPSE; - //if (((JCheckBox)elements.get("test_pathDraw")).isSelected()) - // testSuite |= J2dBenchmarkWrapper.J2DTEST_GENERALPATH; - if (((JCheckBox) elements.get("test_lineDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_LINE; - if (((JCheckBox) elements.get("test_qcurveDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_QUADCURVE; - if (((JCheckBox) elements.get("test_rectDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_RECTANGLE; - if (((JCheckBox) elements.get("test_rrectDraw")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_ROUNDRECTANGLE; - if (((JCheckBox) elements.get("test_image")).isSelected()) - testSuite |= J2dBenchmarkWrapper.J2DTEST_IMAGE; - - if (testSuite != 0) - { - speed.setTests(testSuite); - - String initResult = speed.init(); - - if (initResult == null) - { - // Create graphics. - frame.add(speed, BorderLayout.CENTER); - frame.setSize( - Integer.parseInt(((JTextField) elements.get("width")).getText()), - Integer.parseInt(((JTextField) elements.get("height")).getText())); - frame.setVisible(true); - - // Insets are correctly set only after the native peer was - // created. - Insets insets = frame.getInsets(); - frame.setSize(frame.getWidth() + insets.right + insets.left, - frame.getHeight() + insets.top + insets.bottom); - - // Clear any old error messages - errorLabel.setText(" "); - } - else - errorLabel.setText(initResult); - } - else - errorLabel.setText("Please select at least one test."); - } - catch (NumberFormatException e) - { - errorLabel.setText("Please enter valid integers"); - } - } - } - - /** - * Wrapper for the J2dBenchmark, which outputs the results to a GUI - * instead of the command-line - */ - private class J2dBenchmarkWrapper - extends J2dBenchmark - { - JFrame myFrame; - - ResultsDisplay display; - - /** - * Create new J2dBenchmarkWrapper object - * - * @param frame parent frame - */ - public J2dBenchmarkWrapper(JFrame frame) - { - // Redirect log messages to the custom handler - logger.setUseParentHandlers(false); - display = new ResultsDisplay(); - display.setLevel(Level.INFO); - logger.addHandler(display); - - myFrame = frame; - } - - /** - * Set dimensions of benchmarking canvas - * - * @param width width of canvas - * @param height height of canvas - */ - public void setDimensions(int width, int height) - { - screenHeight = height; - screenWidth = width; - setSize(width, height); - } - - /** - * Set number of iterations - * - * @param it number of iterations - */ - public void setIterations(int it) - { - iterations = it; - } - - /** - * Set size of each test - * - * @param size size of test - */ - public void setTestSize(int size) - { - testSize = size; - } - - /** - * Set clipping options - * - * @param no run test with no clipping - * @param with run test with clipping - * @param zero run test with clipping to zero - */ - public void setClipping(boolean no, boolean with, boolean zero) - { - this.noClippingFlag = no; - this.withClippingFlag = with; - this.zeroClippingFlag = zero; - } - - /** - * Set buffering options - * - * @param single run test without double-buffering - * @param doubleb run test with double-buffering - */ - public void setBuffers(boolean single, boolean doubleb) - { - this.singleBufferFlag = single; - this.doubleBufferFlag = doubleb; - } - - /** - * Set fill options - * - * @param type fill type: "solid", "gradient", or "texture" - * @param file filename to use if texturing - */ - public void setFill(String type, String file) - { - if (type.equals("gradient")) - this.gradientFlag = true; - else if (type.equals("texture")) - { - this.texture = file; - } - } - - /** - * Set stroke options - * - * @param stroke boolean flag to use random stroking or not - */ - public void setStroke(boolean stroke) - { - this.strokeFlag = stroke; - } - - /** - * Set anti-aliasing options - * - * @param alias boolean flag to use anti-aliasing or not - */ - public void setAlias(boolean alias) - { - this.antialiasFlag = alias; - } - - /** - * Set alpha composite - * - * @param alpha alpha composite - */ - public void setComposite(float alpha) - { - this.composite = alpha; - } - - /** - * Set translation values - * - * @param x x-axis translation - * @param y y-axis translation - */ - public void setTranslation(int x, int y) - { - this.xtranslate = x; - this.ytranslate = y; - } - - /** - * Set rotation - * - * @param theta angle to rotate by (radians) - */ - public void setRotation(double theta) - { - this.rotate = theta; - } - - /** - * Set shear values - * - * @param x x-axis shear value - * @param y-axis shear value - */ - public void setShear(double x, double y) - { - this.xshear = x; - this.yshear = y; - } - - /** - * Set tests to run - * - * @param tests bit-shifted list of tests (see J2dBenchmark constants) - */ - public void setTests(int tests) - { - awtTests = tests; - } - - /** - * Saves test report after each iteration - */ - void printReport() - { - // Report test results to the GUI display - ArrayList results = new ArrayList(); - for (Iterator i = testSetMap.testIterator(); i.hasNext();) - { - TestRecorder recorder = testSetMap.getTest((String) i.next()); - - results.add("TEST " + recorder.getTestName() + ": average " - + recorder.getAverage() + "ms [" + recorder.getMinTime() - + "-" + recorder.getMaxTime() + "]"); - } - - display.report(results); - } - - /** - * Disables current frame and displays test results - */ - void testComplete() - { - // Clear benchmarking canvas and display results instead - myFrame.setVisible(false); - - display.show(); - } - } - - /** - * GUI to display results of benchmarking - */ - private class ResultsDisplay - extends Handler - implements ActionListener - { - /** - * Allow user to select results from each iteration - */ - JComboBox iterations; - - /** - * Area to print results in - */ - JTextArea results; - - /** - * Allow user to view summary or full details of test report - */ - JCheckBox details; - - /** - * Store all test results - */ - ArrayList testResults; - - /** - * Store all test details - */ - ArrayList testDetails; - - /** - * Initialize variables - */ - public ResultsDisplay() - { - testResults = new ArrayList(); - testDetails = new ArrayList(); - testDetails.add(new ArrayList()); - } - - /** - * Parse all results and display on a GUI - */ - public void show() - { - // Set up panel - JFrame frame = new JFrame("Java2D benchmark results"); - Container cp = frame.getContentPane(); - - // Non-editable text area for the results - results = new JTextArea(); - results.setEditable(false); - results.setRows(15); - results.setColumns(60); - - // Checkbox to optionally display details (ie log messages) - details = new JCheckBox("Details", false); - details.addActionListener(this); - - // Combo box to allow selection of iteration number - iterations = new JComboBox(); - iterations.addActionListener(this); - for (int i = 0; i < testResults.size(); i++) - iterations.addItem("Iteration #" + (i + 1)); - - // Lay it all out - JPanel topleft = new JPanel(); - topleft.add(new JLabel("View results from: ")); - topleft.add(iterations); - topleft.setAlignmentX(JComponent.LEFT_ALIGNMENT); - details.setAlignmentX(JComponent.RIGHT_ALIGNMENT); - JPanel top = new JPanel(); - top.setLayout(new BoxLayout(top, BoxLayout.LINE_AXIS)); - top.add(topleft); - top.add(details); - - cp.add(top, BorderLayout.NORTH); - cp.add(new JScrollPane(results), BorderLayout.SOUTH); - - frame.pack(); - frame.show(); - } - - /** - * This overrides the logger publish method, which accepts log messages and - * saves them for later display - * - * @param record information about the log event - */ - public void publish(LogRecord record) - { - ((ArrayList) testDetails.get(testDetails.size() - 1)).add(record.getMessage()); - } - - /** - * Accepts a test summary report, generated after each iteration of a test - * - * @param results test results - */ - public void report(ArrayList results) - { - testResults.add(results); - testDetails.add(new ArrayList()); - } - - /** - * Provided as part of the Handler interface; not used - */ - public void flush() - { - } - - /** - * Provided as part of the Handler interface; not used - */ - public void close() - { - } - - /** - * Handle user-generated events on the results GUI - */ - public void actionPerformed(ActionEvent ev) - { - // Display information about the requested iteration - int iteration = iterations.getSelectedIndex(); - String message = ""; - - // Display summary or details, as requested - Iterator it; - if (details.isSelected()) - it = ((ArrayList) testDetails.get(iteration)).iterator(); - else - it = ((ArrayList) testResults.get(iteration)).iterator(); - - // Parse the ArrayList's - while (it.hasNext()) - { - message = message + ((String) it.next() + "\n"); - } - - // Output to screen - results.setText(message); - } - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/JNIOverhead.java b/libjava/classpath/examples/gnu/classpath/examples/java2d/JNIOverhead.java deleted file mode 100644 index 4999649..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/JNIOverhead.java +++ /dev/null @@ -1,390 +0,0 @@ -/* JNIOverhead.java - demonstrator for classpath/gcj fillrect performance issue - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.java2d; - -import gnu.classpath.examples.swing.DemoFactory; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; - -/** - * @author Norman Hendrich - */ -public class JNIOverhead - extends JPanel - implements ActionListener -{ - - static JNIOverhead fillRectDemo; - - LCDCanvas lcd; - Worker worker; - JLabel label; - JCheckBox translate; - JCheckBox lines; - - int nx = 128; - int ny = 64; - int matrix[][], future[][]; - int generation = 0; - - // 20 msec, or 50 repaints per sec (theoretically) - int sleepMillis = 20; - long lastMillis = System.currentTimeMillis(); - - boolean enableRepaints = true; - - /** - * If true, test translation. - */ - boolean testTranslation = false; - - /** - * If true, paint lines rather than rectangles - */ - boolean paintLines; - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - public JNIOverhead() - { - setSize(nx, ny); - createContent(); - } - - public void createContent() - { - setLayout(new BorderLayout()); - - JPanel p = new JPanel(new BorderLayout()); - lcd = new LCDCanvas(); - label = new JLabel(); - label.setText("not running"); - - translate = new JCheckBox("translate"); - translate.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) - { - testTranslation = translate.isSelected(); - } - }); - - lines = new JCheckBox("lines"); - lines.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) - { - paintLines = lines.isSelected(); - } - }); - - JPanel bottom = new JPanel(); - bottom.add(lines); - bottom.add(translate); - - p.add(lcd, BorderLayout.CENTER); - p.add(bottom, BorderLayout.SOUTH); - p.add(label, BorderLayout.NORTH); - add(p); - } - - public void setSize(int _nx,int _ny ) - { - nx = _nx; - ny = _ny; - matrix = new int[nx][ny]; - future = new int[nx][ny]; - } - - public void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - public void setSleepMillis(int millis) - { - sleepMillis = millis; - } - - public class LCDCanvas extends JPanel - { - private int sx, sy; - private Color activePixel = new Color(30, 30, 40); - private Color passivePixel = new Color(200, 180, 240); - private Color gridPixel = new Color(255, 240, 240); - - public LCDCanvas() - { - super(); - sx = 4 * nx; - sy = 4 * ny; - } - - public void paintComponent(Graphics g) - { - // for buffered drawing - not used atm - // g.drawImage( buffer, 0, 0, null ); - long t1 = System.currentTimeMillis(); - - g.setColor(gridPixel); - g.fillRect(0, 0, sx, sy); - - Color pixelColor = null; - - int dx, dy; - - if (paintLines) - { - for (int ix = 0; ix < nx; ix++) - for (int iy = 0; iy < ny; iy++) - { - if (matrix[ix][iy] != 0) - pixelColor = activePixel; - else - pixelColor = passivePixel; - - dx = 4 * ix; - dy = 4 * iy; - g.setColor(pixelColor); - - if (testTranslation) - { - g.translate(dx, dy); - g.drawLine(0, 0, 5, 5); - g.translate(- dx, - dy); - } - else - g.drawLine(dx, dy, dx + 5, dy + 5); - } - } - else - for (int ix = 0; ix < nx; ix++) - { - for (int iy = 0; iy < ny; iy++) - { - if (matrix[ix][iy] != 0) - pixelColor = activePixel; - else - pixelColor = passivePixel; - - dx = 4 * ix; - dy = 4 * iy; - g.setColor(pixelColor); - - if (testTranslation) - { - g.translate(dx, dy); - g.fillRect(0, 0, 3, 3); - g.translate(- dx, - dy); - } - else - g.fillRect(dx, dy, 3, 3); - } - } - - long t2 = System.currentTimeMillis(); - - label.setText("paintComponent took " + (t2 - t1) + " msec. " + "(" - + (nx * ny + 1) + " " - + (paintLines ? "drawLine" : "fillRect") + " calls)"); - - } - - public Dimension getPreferredSize() - { - return new Dimension(sx,sy); - } - - public Dimension getMinimumSize() - { - return new Dimension(sx,sy); - } - } - - public class Worker extends Thread - { - public void run() - { - boolean running = true; - while(running) - { - iteration(); - - if (enableRepaints) - display(); - - if (sleepMillis > 0) - { - try - { - Thread.sleep( sleepMillis ); - } - catch(InterruptedException ie) - { - running = false; - } - } - } - } - } - - /** - * stupid animation algorithm: show binary representation of current - * iteration. - */ - public void iteration() - { - generation++; - - for (int i = 0; i < nx; i++) - { - long tmp1 = 1L << i; - for (int j = 0; j < ny; j++) - { - // count neighbors - long tmp2 = (1L << j); - - - long tmp3 = generation & tmp1 & tmp2; - if (tmp3 != 0) - matrix[i][j] = 1; - else - matrix[i][j] = 0; - } - } - - if ((generation % 100) == 0) - { - long t = System.currentTimeMillis(); - // System.out.println( - // " generation= " + generation + - // " iterations/sec= " + 100.0*1000/(t-lastMillis) ); - lastMillis = t; - } - } - - public void display() - { - lcd.repaint(); - } - - public static void usage() - { - System.out.println( - "Usage: <java> FillRect2 [-sleep <millis>] [-size <int>] [-nopaint]\n" - + "Example: jamvm FillRect2 -sleep 10 -size 100\n" - ); - System.exit(0); - } - - public static void main(String args[]) - throws Exception - { - fillRectDemo = new JNIOverhead(); - for (int i = 0; i < args.length; i++) - { - if ("-help".equals(args[i])) - { - usage(); - } - if ("-sleep".equals(args[i])) - { - fillRectDemo.setSleepMillis( Integer.parseInt(args[i + 1])); - i++; - } - if ("-size".equals(args[i])) - { - int size = Integer.parseInt(args[i + 1]); - fillRectDemo.setSize(size, size); - i++; - } - if ("-nopaint".equals(args[i])) - { - fillRectDemo.enableRepaints = false; - } - } - - SwingUtilities.invokeLater (new Runnable() - { - public void run() - { - - fillRectDemo.initFrameContent(); - JFrame frame = new JFrame("FillRect performance test"); - frame.getContentPane().add(fillRectDemo); - frame.pack(); - frame.show(); - fillRectDemo.worker = fillRectDemo.new Worker(); - fillRectDemo.worker.start(); - } - }); - } - - /** - * Returns a DemoFactory that creates a SliderDemo. - * - * @return a DemoFactory that creates a SliderDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - fillRectDemo = new JNIOverhead(); - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - fillRectDemo.worker = fillRectDemo.new Worker(); - fillRectDemo.worker.start(); - } - }); - return fillRectDemo; - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.c b/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.c deleted file mode 100644 index e5b45aa..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.c +++ /dev/null @@ -1,606 +0,0 @@ -/* bench.c -- native benchmark for Cairo library (meant to test java2d) - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -#include "bench.h" -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <gtk/gtk.h> -#include <sys/timeb.h> - -G_DEFINE_TYPE (Benchmark, benchmark, GTK_TYPE_DRAWING_AREA); - -// Needed for the gtk widget, but not used: -static void -benchmark_class_init (BenchmarkClass *klass) -{ -} - -static void -benchmark_init (Benchmark *obj) -{ -} - -// The Arc2D's PathIterator uses some transforms, so we condense the required -// functionality of AffineTransform -static void -doTransform (double rx, double ry, double theta, double *cvec) -{ - // Define identity matrix (corresponds to new AffineTransform()) - double m00 = 1; - double m10 = 0; - double m01 = 0; - double m11 = 1; - double m02 = 0; - double m12 = 0; - - // AffineTransform.scale(rx, ry) - m00 = m00 * rx; - m01 = m01 * ry; - m10 = m10 * rx; - m11 = m11 * ry; - - // AffineTransform.rotate(theta) - double c = cos(theta); - double s = sin(theta); - double n00 = m00 * c + m01 * s; - double n01 = m00 * -s + m01 * c; - double n10 = m10 * c + m11 * s; - double n11 = m10 * -s + m11 * c; - - m00 = n00; - m01 = n01; - m10 = n10; - m11 = n11; - - // AffineTransform.transform(cvec, 0, cvec, 0, 1) - double dstPts[2]; - dstPts[0] = (float) (m00 * cvec[0] + m01 * cvec[1] + m02); - dstPts[1] = (float) (m10 * cvec[0] + m11 * cvec[1] + m12); - cvec[0] = dstPts[0]; - cvec[1] = dstPts[1]; -} - -// Place an arc on the cairo path, simulating java2d's Arc2D -static void -setupArc(cairo_t *cr, GtkWidget *bench, int shift) -{ - double x, y; - - // Normally passed into the Arc2D constructor - x = bench->allocation.x + (rand() % (bench->allocation.width - minSize + 1)); - y = bench->allocation.y + (rand() % (bench->allocation.height - minSize + 1)); - - int angle = rand() % 360; - int length = (rand() % 360) - angle; - int width = rand() % (int)((bench->allocation.width - x - 10) + 10); - int height = rand() % (int)((bench->allocation.height - y - 10) + 10); - - // This is from the ArcPath iterator - double start = angle * (M_PI / 180); - double extent = length * (M_PI / 180); - - if (extent < 0) - { - extent = -extent; - start = 2 * M_PI - extent + start; - } - - int limit; - if (width < 0 || height < 0) // We assume type == 0; ie, Arc2D.OPEN - limit = -1; - else if (extent == 0) - limit = 0; - else if (extent <= M_PI / 2.0) - limit = 1; - else if (extent <= M_PI) - limit = 2; - else if (extent <= 3.0 * (M_PI / 2.0)) - limit = 3; - else - limit = 4; - - // This is from CairoGraphics2D.walkPath - double xnew = 0; - double ynew = 0; - double coords[6]; - - cairo_fill_rule_t cfillrule = CAIRO_FILL_RULE_WINDING; - cairo_set_fill_rule(cr, cfillrule); - - // First iteration will move to the starting point - double rx = width / 2; - double ry = height / 2; - double xmid = x + rx; - double ymid = y + ry; - coords[0] = xmid + rx * cos(start); - coords[1] = ymid - ry * sin(start); - - if (shift == 1) - { - xnew = floor(coords[0]) + 0.5; - ynew = floor(coords[1]) + 0.5; - } - else - { - xnew = coords[0]; - ynew = coords[1]; - } - - cairo_move_to(cr, xnew, ynew); - - // Iterate through segments of the arc - int current; - for (current = 1; current <= limit; current++) - { - // Back to the ArcPath iterator's getCurrent - double kappa = (sqrt(2.0) - 1.0) * (4.0 / 3.0); - double quad = (M_PI / 2.0); - - double curr_begin = start + (current - 1) * quad; - double curr_extent; - - if (start + extent - curr_begin < quad) - curr_extent = (start + extent) - curr_begin; - else - curr_extent = quad; - - double portion_of_a_quadrant = curr_extent / quad; - - double x0 = xmid + rx * cos(curr_begin); - double y0 = ymid - ry * sin(curr_begin); - - double x1 = xmid + rx * cos(curr_begin + curr_extent); - double y1 = ymid - ry * sin(curr_begin + curr_extent); - - double cvec[2]; - double len = kappa * portion_of_a_quadrant; - double angle = curr_begin; - - cvec[0] = 0; - cvec[1] = len; - doTransform(rx, ry, angle, cvec); - coords[0] = x0 + cvec[0]; - coords[1] = y0 - cvec[1]; - - cvec[0] = 0; - cvec[1] = -len; - doTransform(rx, ry, angle, cvec); - doTransform(1, 1, curr_extent, cvec); - coords[2] = x1 + cvec[0]; - coords[3] = y1 - cvec[1]; - - coords[4] = x1; - coords[5] = y1; - - // draw it, from CairoGraphics2D.walkPath - if (shift == 1) - { - xnew = floor(coords[4]) + 0.5; - ynew = floor(coords[5]) + 0.5; - cairo_curve_to(cr, floor(coords[0]) + 0.5, floor(coords[1]) + 0.5, - floor(coords[2]) + 0.5, floor(coords[3]) + 0.5, - xnew, ynew); - } - else - { - xnew = coords[4]; - ynew = coords[5]; - cairo_curve_to(cr, coords[0], coords[1], coords[2], - coords[3], xnew, ynew); - } - } - - // Randomize the colour, just for asthetics =) - cairo_set_source_rgb(cr, (rand() % 100 / (float)100), - (rand() % 100 / (float)100), - (rand() % 100 / (float)100)); - -} - -// Place a beizer curve on the cairo path, simulating java2d's CubicCurve2D -static void -setupCurve(cairo_t *cr, GtkWidget *bench, int shift) -{ - // These are options when creating a new curve - int x1 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y1 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - int xc1 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int yc1 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - int xc2 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int yc2 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - int x2 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y2 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - - // From CairoGraphics2D.walkPath - double xnew = 0; - double ynew = 0; - double coords[6]; - - cairo_fill_rule_t cfillrule = CAIRO_FILL_RULE_WINDING; - cairo_set_fill_rule(cr, cfillrule); - - // And into CubicCurve's PathIterator... - // start by moving to the starting coordinate - coords[0] = (float) x1; - coords[1] = (float) y1; - - if (shift == 1) - { - xnew = floor(coords[0]) + 0.5; - ynew = floor(coords[1]) + 0.5; - } - else - { - xnew = coords[0]; - ynew = coords[1]; - } - - cairo_move_to(cr, xnew, ynew); - - // Now the curve itself - coords[0] = (float) xc1; - coords[1] = (float) yc1; - coords[2] = (float) xc2; - coords[3] = (float) yc2; - coords[4] = (float) x2; - coords[5] = (float) y2; - - if (shift == 1) - { - xnew = floor(coords[4]) + 0.5; - ynew = floor(coords[5]) + 0.5; - cairo_curve_to(cr, floor(coords[0]) + 0.5, floor(coords[1]) + 0.5, - floor(coords[2]) + 0.5, floor(coords[3]) + 0.5, - xnew, ynew); - } - else - { - xnew = coords[4]; - ynew = coords[5]; - cairo_curve_to(cr, coords[0], coords[1], coords[2], - coords[3], xnew, ynew); - } - - // Randomize colour for asthetics - cairo_set_source_rgb(cr, (rand() % 100 / (float)100), - (rand() % 100 / (float)100), - (rand() % 100 / (float)100)); -} - -// Place a line on the cairo path, simulating java2d's Line2D -static void -setupLine(cairo_t *cr, GtkWidget *bench, int shift) -{ - // These are set when you create a line - int x1 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y1 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - int x2 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y2 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - - // This is from CairoGraphics2D.walkPath - double xnew = 0; - double ynew = 0; - double coords[6]; - - cairo_fill_rule_t cfillrule = CAIRO_FILL_RULE_WINDING; - cairo_set_fill_rule(cr, cfillrule); - - // And into Line2D's PathIterator - coords[0] = (float) x1; - coords[1] = (float) y1; - - if (shift == 1) - { - xnew = floor(coords[0]) + 0.5; - ynew = floor(coords[1]) + 0.5; - } - else - { - xnew = coords[0]; - ynew = coords[1]; - } - - cairo_move_to(cr, xnew, ynew); - - coords[0] = (float) x2; - coords[1] = (float) y2; - - if (shift == 1) - { - xnew = floor(coords[0]) + 0.5; - ynew = floor(coords[1]) + 0.5; - } - else - { - xnew = coords[0]; - ynew = coords[1]; - } - - cairo_line_to(cr, xnew, ynew); - - // Randomize colour for asthetics - cairo_set_source_rgb(cr, (rand() % 100 / (float)100), - (rand() % 100 / (float)100), - (rand() % 100 / (float)100)); -} - -// Place a rectangle on the cairo path, simulating java2d's Rectangle2D -static void -setupRect(cairo_t *cr, GtkWidget *bench, int shift) -{ - // These are set when you create a rectangle - int x1 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y1 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - int x2 = bench->allocation.x + (rand() % (bench->allocation.width - minSize)); - int y2 = bench->allocation.y + (rand() % (bench->allocation.height - minSize)); - - // draw() and fill() have been optimized to ignore the PathIterator. - // We do the same here. - double xnew = 0; - double ynew = 0; - - if (shift == 1) - { - xnew = floor(x1) + 0.5; - ynew = floor(y1) + 0.5; - } - else - { - xnew = x1; - ynew = y1; - } - - cairo_rectangle(cr, x1, y1, x2, y2); - - // Randomize colour for asthetics - cairo_set_source_rgb(cr, (rand() % 100 / (float)100), - (rand() % 100 / (float)100), - (rand() % 100 / (float)100)); -} - -// The real work gets done here: this function is called when the widget -// is drawn on screen. -static void -draw (GtkWidget *bench, cairo_t *cr) -{ - // Setup - struct timeb t1, t2; - int i, timeElapsed; - - cairo_set_line_width(cr, lineWidth); - - if (antialias == 0) - cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); - else - cairo_set_antialias(cr, CAIRO_ANTIALIAS_GRAY); - - // Tell the user what's going on - printf("Testing native cairo drawing..\n"); - printf(" Screen size is %d x %d \n", screenWidth, screenHeight); - printf(" Line width is %d\n", lineWidth); - printf(" Test size: %d\n", testSize); - - if (antialias == 0) - printf(" Anti-alias is off\n"); - else - printf(" Anti-alias is on\n"); - - printf("\n"); - fflush(stdout); - - // Draw & fill Arc - if (arcTest == 1) - { - // Draw - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupArc(cr, bench, 1); - cairo_stroke (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Draw arc: %d ms\n", timeElapsed); - fflush(stdout); - - // Fill - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupArc(cr, bench, 0); - cairo_fill (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Fill arc: %d ms\n", timeElapsed); - } - - // Draw cubic curve - if (curveTest == 1) - { - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupCurve(cr, bench, 1); - cairo_stroke (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Draw cubic curve: %d ms\n", timeElapsed); - } - - // Ellipse: skip; this is just a special case of arc - // General path: skip; this doesn't even work in java2d - - // Draw Line - if (lineTest == 1) - { - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupLine(cr, bench, 1); - cairo_stroke (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Draw line: %d ms\n", timeElapsed); - } - - // Draw & fill Rectangle - if (rectTest == 1) - { - // Draw - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupRect(cr, bench, 1); - cairo_stroke (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Draw rectangle: %d ms\n", timeElapsed); - - // Fill - ftime(&t1); - for (i = 0; i < testSize; i++) - { - setupRect(cr, bench, 0); - cairo_fill (cr); - } - - ftime(&t2); - timeElapsed = 1000 * (t2.time - t1.time) + (t2.millitm - t1.millitm); - printf("Fill rectangle: %d ms\n", timeElapsed); - } - - // Round rectangle: skip, it's just a combination of lines and curves - // Image: skip? - - printf("\n"); -} - -GtkWidget * -benchmark_new (void) -{ - return g_object_new (BENCHMARK_TYPE, NULL); -} - -int -main (int argc, char **argv) -{ - // Set defaults - minSize = 10; - arcTest = 0; - curveTest = 0; - lineTest = 0; - rectTest = 0; - screenWidth = 320; - screenHeight = 240; - testSize = 1000; - antialias = 0; - lineWidth = 1; - - // Process any command-line user options - int i; - for (i = 1; i < argc; i++) - { - // Process options first - if (!strcmp(argv[i], "-a")) - antialias = 1; - else if (!strcmp(argv[i], "-h")) - screenHeight = atoi(argv[++i]); - else if (!strcmp(argv[i], "-l")) - lineWidth = atoi(argv[++i]); - else if (!strcmp(argv[i], "-t")) - testSize = atoi(argv[++i]); - else if (!strcmp(argv[i], "-w")) - screenWidth = atoi(argv[++i]); - else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--h") - || !strcmp(argv[i], "-help") || !strcmp(argv[i], "--help")) - { - printf("Cairo benchmarker, meant to measure JNI overhead\n"); - printf("Usage: bench [-a] [-h height] [-t test size] [-w width] [tests...]\n"); - printf("\n"); - printf(" Valid options: -a turn on anti-aliasing (default off)\n"); - printf(" -h set screen height (default 240)\n"); - printf(" -l set stroke line width (default 1)\n"); - printf(" -t set test size (default 1000)\n"); - printf(" -w set screen width (default 320)\n"); - printf(" -h | --help\n"); - printf(" Valid tests: arc\n"); - printf(" curve\n"); - printf(" line\n"); - printf(" rect\n"); - printf(" (default: run all)\n"); - exit (0); - } - - // Process tests - else if (!strcmp(argv[i], "arc")) - arcTest = 1; - else if (!strcmp(argv[i], "curve")) - curveTest = 1; - else if (!strcmp(argv[i], "line")) - lineTest = 1; - else if (!strcmp(argv[i], "rect")) - rectTest = 1; - } - - // If no tests were specified, we default to running all of them - if (arcTest == 0 && curveTest == 0 && lineTest == 0 && rectTest == 0) - { - arcTest = 1; - curveTest = 1; - lineTest = 1; - rectTest = 1; - } - - // Set up gtk widget - GtkWidget *window, *bench; - gtk_init (&argc, &argv); - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_resize(GTK_WINDOW(window), screenWidth, screenHeight); - gtk_window_set_title(GTK_WINDOW(window), "cairo benchmark"); - - // Set up benchmkar and cairo surface - bench = benchmark_new (); - gtk_container_add (GTK_CONTAINER (window), bench); - gtk_widget_show_all (window); - - cairo_t *cr; - cr = gdk_cairo_create (bench->window); - - // Run tests - draw (bench, cr); - - // Hold output on screen until user exits. - printf("Press any key to exit.\n"); - getchar(); - exit(0); -gtk_main(); -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.h b/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.h deleted file mode 100644 index aebd50a..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/bench.h +++ /dev/null @@ -1,64 +0,0 @@ -/* bench.h -- native benchmark for Cairo library (meant to test java2d) - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -#ifndef __BENCH_H__ -#define __BENCH_H__ - -#include <gtk/gtk.h> - -G_BEGIN_DECLS - -#define BENCHMARK_TYPE (benchmark_get_type()) -#define BENCHMARK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj, BENCHMARK_TYPE, Benchmark) -#define BENCHMARK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BENCHMARK_TYPE, BenchmarkClass); -#define IS_BENCHMARK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BENCHMARK_TYPE)) -#define IS_BENCHMARK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BENCHMARK_TYPE)) -#define BENCHMARK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BENCHMARK_TYPE, BenchmarkClass)) - -typedef struct _Benchmark Benchmark; -typedef struct _BenchmarkClass BenchmarkClass; - -struct _Benchmark { - GtkDrawingArea parent; - -}; - -struct _BenchmarkClass { - GtkDrawingAreaClass parent_class; -}; - -GType benchmark_get_type (void); -GtkWidget *benchmark_new (void); - -static int minSize; -static int antialias; -static int arcTest; -static int curveTest; -static int lineTest; -static int rectTest; - -static int screenHeight; -static int screenWidth; -static int testSize; -static int lineWidth; - -G_END_DECLS - -#endif diff --git a/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.c b/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.c deleted file mode 100644 index ee2d7bf..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.c +++ /dev/null @@ -1,150 +0,0 @@ -/* DemoJAWT.c -- native portion of AWT Native Interface demo - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -#include "DemoJAWT.h" -#include "jawt_md.h" -#include <string.h> - -JNIEXPORT void JNICALL -Java_gnu_classpath_examples_jawt_DemoJAWT_paintIt (JNIEnv* env, - jobject canvas, - jobject graphics, - jboolean on) -{ - JAWT awt; - JAWT_DrawingSurface* surface; - JAWT_DrawingSurfaceInfo* surface_info; - JAWT_X11DrawingSurfaceInfo* surface_info_x11; - jint lock; - GC gc; - int c; - char* test_string = "JAWT"; - XColor orange; - XColor yellow; - XColor blue; - Display* display; - Drawable drawable; - Status status; - - awt.version = JAWT_VERSION_1_3; - if (JAWT_GetAWT (env, &awt) == JNI_FALSE) - { - printf ("couldn't find AWT\n"); - return; - } - - surface = awt.GetDrawingSurface (env, canvas); - if (surface == NULL) - { - printf ("drawing surface is NULL\n"); - return; - } - - lock = surface->Lock (surface); - if ((lock & JAWT_LOCK_ERROR) != 0) - { - printf ("couldn't lock drawing surface\n"); - awt.FreeDrawingSurface (surface); - return; - } - - surface_info = surface->GetDrawingSurfaceInfo (surface); - if (surface_info == NULL) - { - printf ("couldn't get surface information\n"); - surface->Unlock (surface); - awt.FreeDrawingSurface (surface); - return; - } - - surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface_info->platformInfo; - - display = surface_info_x11->display; - drawable = surface_info_x11->drawable; - - gc = XCreateGC (display, drawable, 0, 0); - XSetBackground (display, gc, 0); - - orange.red = 254 * 65535 / 255; - orange.green = 90 * 65535 / 255; - orange.blue = 16 * 65535 / 255; - - /* assume color lookups succeed */ - status = XAllocColor (display, DefaultColormap (display, - DefaultScreen (display)), - &orange); - - if (!status) - { - printf ("color allocation failed\n"); - goto cleanup; - } - - yellow.red = 255 * 65535 / 255; - yellow.green = 255 * 65535 / 255; - yellow.blue = 0 * 65535 / 255; - - XAllocColor (display, DefaultColormap (display, - DefaultScreen (display)), - &yellow); - - if (!status) - { - printf ("color allocation failed\n"); - goto cleanup; - } - - blue.red = 16 * 65535 / 255; - blue.green = 30 * 65535 / 255; - blue.blue = 137 * 65535 / 255; - - XAllocColor (display, DefaultColormap (display, - DefaultScreen (display)), - &blue); - - if (!status) - { - printf ("color allocation failed\n"); - goto cleanup; - } - - for (c = 5; c >= 0; c--) - { - if (c % 2 == on) - XSetForeground (display, gc, yellow.pixel); - else - XSetForeground (display, gc, orange.pixel); - - XFillArc (display, drawable, gc, 140 - c * 15, 140 - c * 15, c * 30, c * 30, 0, 360 * 64); - } - - XSetForeground (display, gc, blue.pixel); - XDrawString (display, drawable, - gc, 129, 145, test_string, strlen (test_string)); - - cleanup: - XFreeGC (display, gc); - - surface->FreeDrawingSurfaceInfo (surface_info); - - surface->Unlock (surface); - - awt.FreeDrawingSurface (surface); -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java b/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java deleted file mode 100644 index c8f931e..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java +++ /dev/null @@ -1,77 +0,0 @@ -/* DemoJAWT.java -- AWT Native Interface demo - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.jawt; - -import java.awt.*; -import java.awt.event.*; - -public class DemoJAWT extends Canvas -{ - static - { - System.loadLibrary ("DemoJAWT"); - } - - public native void paintIt (Graphics g, boolean on); - - public void paint (Graphics g) - { - paintIt (g, on); - } - - private boolean on; - - public static void main (String[] args) - { - Frame f = new Frame ("GNU Classpath JAWT Demo"); - - f.setBounds (0, 0, 300, 300); - - f.setResizable (false); - - DemoJAWT jawtDemo = new DemoJAWT (); - f.add (jawtDemo); - - f.addWindowListener (new WindowAdapter () - { - public void windowClosing (WindowEvent evt) - { - System.exit (0); - } - }); - - f.show (); - - while (true) - { - try - { - Thread.sleep (500); - } - catch (InterruptedException ie) - { - // ignored - } - jawtDemo.on = ! jawtDemo.on; - f.repaint(); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java deleted file mode 100644 index 381dca4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java +++ /dev/null @@ -1,40 +0,0 @@ -/* TestBeans.java -- Tests the dynamic interface of the beans. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; - -import java.util.Set; - -import javax.management.MBeanServer; -import javax.management.ObjectName; - -public class TestBeans -{ - public static void main(String[] args) - throws Exception - { - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - Set<ObjectName> names = server.queryNames(null, null); - for (ObjectName name : names) - System.out.println(server.getMBeanInfo(name)); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java deleted file mode 100644 index 8465510..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java +++ /dev/null @@ -1,77 +0,0 @@ -/* TestClassLoading.java -- Tests the class loading bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ClassLoadingMXBean; -import java.lang.management.ManagementFactory; - -import static java.lang.management.ManagementFactory.CLASS_LOADING_MXBEAN_NAME; - -import javax.management.Attribute; -import javax.management.MBeanServer; -import javax.management.ObjectName; - -public class TestClassLoading -{ - public static void main(String[] args) - throws Exception - { - System.out.println("Testing locally..."); - ClassLoadingMXBean bean = ManagementFactory.getClassLoadingMXBean(); - System.out.println("Bean: " + bean); - System.out.println("Loaded classes: " + bean.getLoadedClassCount()); - System.out.println("Unloaded classes: " + bean.getUnloadedClassCount()); - System.out.println("Total loaded classes: " + bean.getTotalLoadedClassCount()); - boolean verbosity = bean.isVerbose(); - System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); - System.out.println("Changing verbose setting..."); - bean.setVerbose(!verbosity); - System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no")); - System.out.println("Testing via the server..."); - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - ObjectName classBean = new ObjectName(CLASS_LOADING_MXBEAN_NAME); - System.out.println("Bean: " + classBean); - System.out.println("Loaded classes: " + server.getAttribute(classBean, "LoadedClassCount")); - System.out.println("Unloaded classes: " + server.getAttribute(classBean, - "UnloadedClassCount")); - System.out.println("Total loaded classes: " + server.getAttribute(classBean, - "TotalLoadedClassCount")); - verbosity = (Boolean) server.getAttribute(classBean, "Verbose"); - System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); - System.out.println("Changing verbose setting..."); - server.setAttribute(classBean, new Attribute("Verbose", !verbosity)); - System.out.println("Verbose class output: " + ((Boolean) - server.getAttribute(classBean, "Verbose") ? - "yes" : "no")); - System.out.println("Testing via the proxy..."); - bean = ManagementFactory.newPlatformMXBeanProxy(server, CLASS_LOADING_MXBEAN_NAME, - ClassLoadingMXBean.class); - System.out.println("Bean: " + bean); - System.out.println("Loaded classes: " + bean.getLoadedClassCount()); - System.out.println("Unloaded classes: " + bean.getUnloadedClassCount()); - System.out.println("Total loaded classes: " + bean.getTotalLoadedClassCount()); - verbosity = bean.isVerbose(); - System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); - System.out.println("Changing verbose setting..."); - bean.setVerbose(!verbosity); - System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no")); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java deleted file mode 100644 index b8c4475..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java +++ /dev/null @@ -1,48 +0,0 @@ -/* TestCompilation.java -- Tests the compilation bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.CompilationMXBean; - -public class TestCompilation -{ - - public static void main(String[] args) - { - CompilationMXBean bean = ManagementFactory.getCompilationMXBean(); - if (bean == null) - { - System.out.println("The compilation bean is not supported by this VM."); - System.exit(-1); - } - System.out.println("Bean: " + bean); - System.out.println("JIT compiler name: " + bean.getName()); - boolean timeMonitoring = bean.isCompilationTimeMonitoringSupported(); - System.out.println("Compilation time monitoring supported: " + timeMonitoring); - if (timeMonitoring) - { - System.out.println("Compilation time: " - + bean.getTotalCompilationTime() + "ms"); - } - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java deleted file mode 100644 index ddb22c3..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java +++ /dev/null @@ -1,50 +0,0 @@ -/* TestGarbageCollector.java -- Tests the garbage collector beans. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.GarbageCollectorMXBean; -import java.lang.management.ManagementFactory; - -import java.util.Arrays; -import java.util.Iterator; - -public class TestGarbageCollector -{ - - public static void main(String[] args) - { - Iterator beans = ManagementFactory.getGarbageCollectorMXBeans().iterator(); - while (beans.hasNext()) - { - GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); - System.out.println("Bean: " + bean); - System.out.println("Name: " + bean.getName()); - System.out.println("Memory pool names: " - + Arrays.toString(bean.getMemoryPoolNames())); - System.out.println("Is valid: " - + (bean.isValid() ? "yes" : "no")); - System.out.println("Collection count: " - + bean.getCollectionCount()); - System.out.println("Collection time: " - + bean.getCollectionTime() + "ms"); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java deleted file mode 100644 index 7a5065f..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java +++ /dev/null @@ -1,52 +0,0 @@ -/* TestMemory.java -- Tests the memory bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.MemoryMXBean; -import java.lang.management.ManagementFactory; - -public class TestMemory -{ - public static void main(String[] args) - { - MemoryMXBean bean = ManagementFactory.getMemoryMXBean(); - System.out.println("Bean: " + bean); - System.out.println("Heap memory usage: " - + bean.getHeapMemoryUsage()); - System.out.println("Non-heap memory usage: " - + bean.getNonHeapMemoryUsage()); - System.out.println("Objects pending finalization: " - + bean.getObjectPendingFinalizationCount()); - System.out.println("Running garbage collector via bean..."); - bean.gc(); - System.out.println("Heap memory usage: " - + bean.getHeapMemoryUsage()); - System.out.println("Non-heap memory usage: " - + bean.getNonHeapMemoryUsage()); - System.out.println("Objects pending finalization: " - + bean.getObjectPendingFinalizationCount()); - boolean verbosity = bean.isVerbose(); - System.out.println("Verbose memory output: " + (verbosity ? "yes" : "no")); - System.out.println("Changing verbose setting..."); - bean.setVerbose(!verbosity); - System.out.println("Verbose memory output: " + (bean.isVerbose() ? "yes" : "no")); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java deleted file mode 100644 index 8e98acd..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java +++ /dev/null @@ -1,46 +0,0 @@ -/* TestMemoryManager.java -- Tests the memory manager beans. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.MemoryManagerMXBean; - -import java.util.Arrays; -import java.util.Iterator; - -public class TestMemoryManager -{ - - public static void main(String[] args) - { - Iterator beans = ManagementFactory.getMemoryManagerMXBeans().iterator(); - while (beans.hasNext()) - { - MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); - System.out.println("Bean: " + bean); - System.out.println("Name: " + bean.getName()); - System.out.println("Memory pool names: " - + Arrays.toString(bean.getMemoryPoolNames())); - System.out.println("Is valid: " - + (bean.isValid() ? "yes" : "no")); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java deleted file mode 100644 index a5e24fd..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java +++ /dev/null @@ -1,91 +0,0 @@ -/* TestMemoryPool.java -- Tests the memory pool beans. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.MemoryPoolMXBean; -import java.util.Arrays; -import java.util.Iterator; - -public class TestMemoryPool -{ - - /** - * 1mb in bytes - */ - private static final int MB = 1 << 20; - - public static void main(String[] args) - { - Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator(); - while (beans.hasNext()) - { - MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); - System.out.println("Bean: " + bean); - System.out.println("Name: " + bean.getName()); - System.out.println("Collection usage: " + bean.getCollectionUsage()); - boolean collectionUsage = bean.isCollectionUsageThresholdSupported(); - System.out.println("Collection usage threshold supported: " - + collectionUsage); - if (collectionUsage) - { - System.out.println("Collection usage threshold: " - + bean.getCollectionUsageThreshold()); - System.out.println("Setting collection usage threshold to 1MB (" - + MB + " bytes)"); - bean.setCollectionUsageThreshold(MB); - System.out.println("Collection usage threshold: " - + bean.getCollectionUsageThreshold()); - System.out.println("Collection usage threshold count: " - + bean.getCollectionUsageThresholdCount()); - System.out.println("Collection usage threshold exceeded: " - + (bean.isCollectionUsageThresholdExceeded() - ? "yes" : "no")); - } - System.out.println("Memory manager names: " - + Arrays.toString(bean.getMemoryManagerNames())); - System.out.println("Peak usage: " + bean.getPeakUsage()); - System.out.println("Current usage: " + bean.getUsage()); - System.out.println("Resetting peak usage..."); - bean.resetPeakUsage(); - System.out.println("Peak usage: " + bean.getPeakUsage()); - System.out.println("Current usage: " + bean.getUsage()); - boolean usage = bean.isUsageThresholdSupported(); - System.out.println("Usage threshold supported: " + usage); - if (usage) - { - System.out.println("Usage threshold: " - + bean.getUsageThreshold()); - System.out.println("Setting usage threshold to 1MB (" - + MB + " bytes)"); - bean.setUsageThreshold(MB); - System.out.println("Usage threshold: " - + bean.getUsageThreshold()); - System.out.println("Usage threshold count: " - + bean.getUsageThresholdCount()); - System.out.println("Usage threshold exceeded: " - + (bean.isUsageThresholdExceeded() - ? "yes" : "no")); - } - System.out.println("Valid: " + (bean.isValid() ? "yes" : "no")); - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestOS.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestOS.java deleted file mode 100644 index fe09346..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestOS.java +++ /dev/null @@ -1,38 +0,0 @@ -/* TestOS.java -- Tests the OS bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.OperatingSystemMXBean; - -public class TestOS -{ - public static void main(String[] args) - { - OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean(); - System.out.println("Bean: " + osBean); - System.out.println("OS Name: " + osBean.getName()); - System.out.println("OS Version: " + osBean.getVersion()); - System.out.println("Architecture: " + osBean.getArch()); - System.out.println("Processors: " + osBean.getAvailableProcessors()); - System.out.println("System Load Average: " + osBean.getSystemLoadAverage()); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestRuntime.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestRuntime.java deleted file mode 100644 index 2a629ca..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestRuntime.java +++ /dev/null @@ -1,54 +0,0 @@ -/* TestRuntime.java -- Tests the runtime bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.RuntimeMXBean; - -import java.util.Date; - -public class TestRuntime -{ - - public static void main(String[] args) - { - RuntimeMXBean vmBean = ManagementFactory.getRuntimeMXBean(); - System.out.println("Bean: " + vmBean); - boolean bootClassPath = vmBean.isBootClassPathSupported(); - System.out.println("Boot Class Path Supported: " + bootClassPath); - if (bootClassPath) - System.out.println("Boot Class Path: " + vmBean.getBootClassPath()); - System.out.println("Class Path: " + vmBean.getClassPath()); - System.out.println("Input Arguments: " + vmBean.getInputArguments()); - System.out.println("Library Path: " + vmBean.getLibraryPath()); - System.out.println("Management Spec. Version: " + vmBean.getManagementSpecVersion()); - System.out.println("Name: " + vmBean.getName()); - System.out.println("Spec Name: " + vmBean.getSpecName()); - System.out.println("Spec Vendor: " + vmBean.getSpecVendor()); - System.out.println("Spec Version: " + vmBean.getSpecVersion()); - System.out.println("Start Time: " + new Date(vmBean.getStartTime())); - System.out.println("System Properties: " + vmBean.getSystemProperties()); - System.out.println("Uptime: " + vmBean.getUptime() + "ms"); - System.out.println("VM Name: " + vmBean.getVmName()); - System.out.println("VM Vendor: " + vmBean.getVmVendor()); - System.out.println("VM Version: " + vmBean.getVmVersion()); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java deleted file mode 100644 index ff57ee5..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java +++ /dev/null @@ -1,118 +0,0 @@ -/* TestThread.java -- Tests the thread bean. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.management; - -import java.lang.management.ManagementFactory; -import java.lang.management.ThreadInfo; -import java.lang.management.ThreadMXBean; - -import java.util.Arrays; - -public class TestThread -{ - - public static void main(String[] args) - { - ThreadMXBean bean = ManagementFactory.getThreadMXBean(); - System.out.println("Bean: " + bean); - System.out.println("Monitor deadlocked threads: " + bean.findMonitorDeadlockedThreads()); - long[] ids = bean.getAllThreadIds(); - System.out.println("Live thread ids: " + Arrays.toString(ids)); - boolean currentTimeMonitoring = bean.isCurrentThreadCpuTimeSupported(); - System.out.println("Current thread CPU time monitoring supported: " + currentTimeMonitoring); - if (currentTimeMonitoring) - { - boolean timeEnabled = bean.isThreadCpuTimeEnabled(); - System.out.println("Is time monitoring enabled... " + - (timeEnabled ? "yes" : "no")); - if (!timeEnabled) - { - System.out.println("Enabling..."); - bean.setThreadCpuTimeEnabled(true); - timeEnabled = bean.isThreadCpuTimeEnabled(); - System.out.println("Should now be enabled... " + - (timeEnabled ? "yes" : "no")); - } - if (timeEnabled) - { - System.out.println("Current thread CPU time: " - + bean.getCurrentThreadCpuTime() - + "ns"); - System.out.println("Current thread user time: " - + bean.getCurrentThreadUserTime() - + "ns"); - } - } - System.out.println("Daemon thread count: " + bean.getDaemonThreadCount()); - System.out.println("Peak thread count: " + bean.getPeakThreadCount()); - System.out.println("Resetting..."); - bean.resetPeakThreadCount(); - System.out.println("Peak thread count: " + bean.getPeakThreadCount()); - System.out.println("Thread count: " + bean.getThreadCount()); - boolean timeMonitoring = bean.isThreadCpuTimeSupported(); - System.out.println("Thread CPU time monitoring supported: " + timeMonitoring); - if (timeMonitoring) - { - for (int a = 0; a < ids.length; ++a) - { - System.out.println("Thread " + a - + " CPU time: " - + bean.getThreadCpuTime(ids[a]) + "ns"); - System.out.println("Thread " - + a + " user time: " - + bean.getThreadUserTime(ids[a]) + "ns"); - } - } - System.out.println("Current thread info: " - + bean.getThreadInfo(Thread.currentThread().getId())); - System.out.println("All thread info: " + Arrays.toString(bean.getThreadInfo(ids))); - System.out.println("Total started threads: " + bean.getTotalStartedThreadCount()); - boolean contentionMonitoring = bean.isThreadContentionMonitoringSupported(); - System.out.println("Thread contention monitoring supported: " + contentionMonitoring); - if (contentionMonitoring) - { - boolean contentionEnabled = bean.isThreadContentionMonitoringEnabled(); - System.out.println("Thread contention monitoring shouldn't be enabled... " + - (contentionEnabled ? "but it is" : "true")); - if (!contentionEnabled) - { - System.out.println("Enabling..."); - bean.setThreadContentionMonitoringEnabled(true); - contentionEnabled = bean.isThreadContentionMonitoringEnabled(); - System.out.println("Should now be enabled... " + - (contentionEnabled ? "it is" : "nope")); - } - if (contentionEnabled) - { - ThreadInfo[] info = bean.getThreadInfo(ids); - for (int a = 0; a < info.length; ++a) - { - System.out.println("Blocked time for thread " - + info[a].getThreadId() + ": " - + info[a].getBlockedTime() + "ms"); - System.out.println("Waited time for thread " - + info[a].getThreadId() + ": " - + info[a].getWaitedTime() + "ms"); - } - } - } - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java deleted file mode 100644 index 81c71dc..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java +++ /dev/null @@ -1,137 +0,0 @@ -/* Demo.java -- And example of MIDI support - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. */ - -package gnu.classpath.examples.midi; - -import java.awt.*; -import java.awt.event.*; -import java.util.*; -import javax.sound.midi.*; - -/** - * An example how javax.sound.midi facilities work. - */ -public class Demo extends Frame implements ItemListener -{ - Choice midiInChoice = new Choice(); - Choice midiOutChoice = new Choice(); - - MidiDevice inDevice = null; - MidiDevice outDevice = null; - - ArrayList inDevices = new ArrayList(); - ArrayList outDevices = new ArrayList(); - - public Demo () throws Exception - { - MenuBar mb = new MenuBar (); - Menu menu = new Menu ("File"); - MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); - quit.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - System.exit(0); - } - }); - menu.add (quit); - mb.add(menu); - - setTitle("synthcity: the GNU Classpath MIDI Demo"); - setLayout(new FlowLayout()); - - MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); - - for (int i = 0; i < infos.length; i++) - { - MidiDevice device = MidiSystem.getMidiDevice(infos[i]); - if (device.getMaxReceivers() > 0) - { - midiOutChoice.addItem(infos[i].getDescription()); - outDevices.add(device); - } - if (device.getMaxTransmitters() > 0) - { - midiInChoice.addItem(infos[i].getDescription()); - inDevices.add(device); - } - } - - setMenuBar (mb); - add(new Label("MIDI IN: ")); - add(midiInChoice); - add(new Label(" MIDI OUT: ")); - add(midiOutChoice); - - midiInChoice.addItemListener(this); - midiOutChoice.addItemListener(this); - - pack(); - show(); - } - - public void itemStateChanged (ItemEvent e) - { - try - { - if (e.getItemSelectable() == midiInChoice) - { - if (inDevice != null) - inDevice.close(); - inDevice = (MidiDevice) - inDevices.get(midiInChoice.getSelectedIndex()); - } - - if (e.getItemSelectable() == midiOutChoice) - { - if (outDevice != null) - outDevice.close(); - outDevice = (MidiDevice) - outDevices.get(midiOutChoice.getSelectedIndex()); - } - - if (inDevice != null && outDevice != null) - { - if (! inDevice.isOpen()) - inDevice.open(); - if (! outDevice.isOpen()) - outDevice.open(); - Transmitter t = inDevice.getTransmitter(); - if (t == null) - System.err.println (inDevice + ".getTransmitter() == null"); - Receiver r = outDevice.getReceiver(); - if (r == null) - System.err.println (outDevice + ".getReceiver() == null"); - - if (t != null && r != null) - t.setReceiver (r); - } - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - - public static void main (String args[]) throws Exception - { - new Demo(); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java deleted file mode 100644 index fb4d743..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java +++ /dev/null @@ -1,391 +0,0 @@ -/* Demo.java -- Simple Java Print Service Demo - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.print; - -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.util.HashSet; -import java.util.Iterator; - -import javax.print.DocFlavor; -import javax.print.DocPrintJob; -import javax.print.PrintException; -import javax.print.PrintService; -import javax.print.PrintServiceLookup; -import javax.print.ServiceUI; -import javax.print.SimpleDoc; -import javax.print.attribute.Attribute; -import javax.print.attribute.HashPrintRequestAttributeSet; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextField; - - -/** - * A simple demo showing the use of the Java Print Service API. - * @author Wolfgang Baer (WBaer@gmx.de) - */ -public class Demo extends JFrame - implements ActionListener -{ - // The discovered print services - private static PrintService[] services; - - // variables for the PrintPanel demo - private HashPrintRequestAttributeSet atts; - private PrintService dialogSelectedService; - private JTextField dialogSelectedService_Tf; - private JList dialogSelectedServiceAtts; - private JComboBox dialogSelectedServicedocFormat; - private JTextField selectedFileTf; - private File selectedFile; - - // variables for the PrintServicePanel demo - private JComboBox serviceBox; - private JList docFormat; - private JList attCategories; - - static - { - // lookup all services without any constraints - services = PrintServiceLookup.lookupPrintServices(null, null); - } - - /** - * Constructs the Print Demo - * @param title - the demo title. - */ - public Demo(String title) - { - super(title); - JPanel content = new JPanel(new BorderLayout()); - - JTabbedPane tabbed = new JTabbedPane(); - tabbed.addTab("Discover print services", createPrintServicePanel()); - tabbed.addTab("Print a file", createPrintPanel()); - - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - - content.add(tabbed, BorderLayout.CENTER); - content.add(closePanel, BorderLayout.SOUTH); - getContentPane().add(content); - } - - private JPanel createPrintServicePanel() - { - JPanel panel = new JPanel(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - - c.insets = new Insets(5,5,5,5); - c.gridx = 0; - c.gridy = 0; - c.anchor = GridBagConstraints.WEST; - c.fill = GridBagConstraints.HORIZONTAL; - JLabel serviceBoxLb = new JLabel("Available print services: "); - panel.add(serviceBoxLb, c); - - c.gridx = 1; - c.gridy = 0; - serviceBox = new JComboBox(services); - serviceBox.setActionCommand("SERVICE"); - serviceBox.addActionListener(this); - panel.add(serviceBox, c); - - c.gridx = 0; - c.gridy = 1; - JLabel docFormatLb = new JLabel("Supported DocFormat: "); - panel.add(docFormatLb, c); - - c.gridx = 1; - c.gridy = 1; - docFormat = new JList(services[0].getSupportedDocFlavors()); - docFormat.setVisibleRowCount(3); - JScrollPane scrollPane = new JScrollPane(docFormat); - panel.add(scrollPane, c); - - c.gridx = 0; - c.gridy = 2; - JLabel categoriesLb = new JLabel("Supported Attribute categories: "); - panel.add(categoriesLb, c); - - c.gridx = 1; - c.gridy = 2; - attCategories = new JList(services[0].getSupportedAttributeCategories()); - attCategories.setVisibleRowCount(3); - JScrollPane scrollPane2 = new JScrollPane(attCategories); - panel.add(scrollPane2, c); - - return panel; - } - - private JPanel createPrintPanel() - { - JPanel panel = new JPanel(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - - c.insets = new Insets(5,5,5,5); - c.gridx = 0; - c.gridy = 0; - c.gridwidth = 2; - JButton serviceBtn = new JButton("Show print dialog ..."); - serviceBtn.addActionListener(this); - panel.add(serviceBtn, c); - - c.gridx = 0; - c.gridy = 1; - c.gridwidth = 1; - c.anchor = GridBagConstraints.WEST; - c.fill = GridBagConstraints.HORIZONTAL; - JLabel selectedLb = new JLabel("Selected print service: "); - panel.add(selectedLb, c); - - c.gridx = 1; - c.gridy = 1; - dialogSelectedService_Tf = new JTextField(25); - panel.add(dialogSelectedService_Tf, c); - - c.gridx = 0; - c.gridy = 2; - JLabel selectedAttsLb = new JLabel("Selected Attributes: "); - panel.add(selectedAttsLb, c); - - c.gridx = 1; - c.gridy = 2; - c.weighty = 1.5; - c.fill = GridBagConstraints.BOTH; - dialogSelectedServiceAtts = new JList(); - dialogSelectedServiceAtts.setVisibleRowCount(3); - JScrollPane scrollPane = new JScrollPane(dialogSelectedServiceAtts); - panel.add(scrollPane, c); - - c.gridx = 0; - c.gridy = 3; - c.fill = GridBagConstraints.HORIZONTAL; - JLabel fileLb = new JLabel("File to print: "); - panel.add(fileLb, c); - - c.gridx = 1; - c.gridy = 3; - selectedFileTf = new JTextField(25); - panel.add(selectedFileTf, c); - - c.gridx = 2; - c.gridy = 3; - c.fill = GridBagConstraints.NONE; - JButton fileBt = new JButton("Choose file"); - fileBt.addActionListener(this); - panel.add(fileBt, c); - - c.gridx = 0; - c.gridy = 4; - c.fill = GridBagConstraints.HORIZONTAL; - JLabel docFormatLb = new JLabel("Document format of file: "); - panel.add(docFormatLb, c); - - c.gridx = 1; - c.gridy = 4; - dialogSelectedServicedocFormat = new JComboBox(); - panel.add(dialogSelectedServicedocFormat, c); - - c.gridx = 0; - c.gridy = 5; - c.gridwidth = 2; - c.anchor = GridBagConstraints.CENTER; - c.fill = GridBagConstraints.NONE; - JButton printBt = new JButton("Print"); - printBt.setActionCommand("PRINT"); - printBt.addActionListener(this); - panel.add(printBt, c); - - return panel; - } - - /** - * Simple action control - only one listener - * @param event - */ - public void actionPerformed(ActionEvent event) - { - if (event.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - else if (event.getActionCommand().equals("Choose file")) - { - JFileChooser chooser = new JFileChooser(); - chooser.showOpenDialog(this); - - selectedFile = chooser.getSelectedFile(); - - if (selectedFile != null) - selectedFileTf.setText(selectedFile.getName()); - else - selectedFileTf.setText("None selected"); - } - else if (event.getActionCommand().equals("Show print dialog ...")) - { - atts = new HashPrintRequestAttributeSet(); - dialogSelectedService = ServiceUI.printDialog(null, 50, 50, services, - null, null, atts); - - if (dialogSelectedService != null) - { - dialogSelectedService_Tf.setText(dialogSelectedService.getName()); - - // we do not want to have the class representation in the dialog - // as we later always use an InputStream to open the file selected - - // use set to remove duplicates - DocFlavor[] docflavors = dialogSelectedService.getSupportedDocFlavors(); - HashSet set = new HashSet(); - for (int i=0; i < docflavors.length; i++) - { - String charset = docflavors[i].getParameter("charset"); - String mimetype = docflavors[i].getMediaType() + "/" + docflavors[i].getMediaSubtype(); - if (charset != null) - mimetype += "; charset=" + charset; - set.add(mimetype); - } - - dialogSelectedServicedocFormat.removeAllItems(); - for (Iterator it = set.iterator(); it.hasNext(); ) - dialogSelectedServicedocFormat.addItem(it.next()); - } - else - dialogSelectedService_Tf.setText("None selected"); - - Attribute[] attsArray = atts.toArray(); - String[] attsSTr = new String[attsArray.length]; - for (int i = 0; i < attsSTr.length; i++) - attsSTr[i] = attsArray[i].getName() + " - " + attsArray[i].toString(); - - dialogSelectedServiceAtts.setListData(attsSTr); - - validate(); - } - else if (event.getActionCommand().equals("PRINT")) - { - if (selectedFile != null && dialogSelectedService != null) - { - DocPrintJob job = dialogSelectedService.createPrintJob(); - - // choose correct docflavor - String mimetype = (String) dialogSelectedServicedocFormat.getSelectedItem(); - - DocFlavor flavor = null; - if (mimetype.equals(DocFlavor.INPUT_STREAM.GIF.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.GIF; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.AUTOSENSE.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.JPEG.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.JPEG; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.PCL.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.PCL; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.PDF.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.PDF; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.PNG.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.PNG; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.TEXT_HTML_HOST.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST; - else if (mimetype.equals(DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST.getMimeType())) - flavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST; - else - flavor = new DocFlavor(mimetype, "java.io.InputStream"); - - try - { - SimpleDoc doc = new SimpleDoc(new FileInputStream(selectedFile), flavor, null); - job.print(doc, atts); - } - catch (FileNotFoundException e) - { - JOptionPane.showMessageDialog(this, "The file was not found."); - e.printStackTrace(); - } - catch (PrintException e) - { - JOptionPane.showMessageDialog(this, e, "PrintException", JOptionPane.ERROR_MESSAGE); - e.printStackTrace(); - } - } - else - JOptionPane.showMessageDialog(this, "Please select a file to print using the FileChooser", "No file selected", JOptionPane.INFORMATION_MESSAGE); - } - else if (event.getActionCommand().equals("SERVICE")) - { // A new service was selected - PrintService selected = (PrintService) serviceBox.getSelectedItem(); - - DocFlavor[] flavors = selected.getSupportedDocFlavors(); - docFormat.setListData(flavors); - attCategories.setListData(selected.getSupportedAttributeCategories()); - } - } - - /** - * Main method. - * @param args - nothing defined. - */ - public static void main(String[] args) - { - Demo app = new Demo("GNU Classpath printing demo"); - app.pack(); - app.setVisible(true); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java b/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java deleted file mode 100644 index 4518e25..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java +++ /dev/null @@ -1,222 +0,0 @@ -/* AudioPlayerSample.java -- Simple Java Audio Player - Copyright (C) 2007 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ -package gnu.classpath.examples.sound; - -import java.io.File; -import java.io.IOException; -import java.util.Map; - -import javax.sound.sampled.AudioFormat; -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.DataLine; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.SourceDataLine; -import javax.sound.sampled.UnsupportedAudioFileException; - -/** - * A simple demo to show the use of the Java Sound API. - * It plays the given file (up to the end, so don't pass the 26 minutes long - * Pink Floyd's Echoes unless you really want!!). - * - * See: http://jsresources.org/examples/SimpleAudioPlayer.java.html - * - * @author Mario Torre <neugens@limasoftware.net> - */ -public class AudioPlayerSample -{ - private static final int EXTERNAL_BUFFER_SIZE = 128000; - - /** - * @param args - */ - public static void main(String[] args) - { - if (args.length < 1) - { - System.out.println("Radio Classpath -: Usage: " + - "AudioPlayerSample [file]"); - return; - } - - String file = args[0]; - - System.out.println("Welcome to Radio Classpath, only great music for you!"); - System.out.println("Today's DJ Tap The WaterDroplet"); - - // now create the AudioInputStream - AudioInputStream audioInputStream = null; - try - { - audioInputStream = AudioSystem.getAudioInputStream(new File(file)); - } - catch (UnsupportedAudioFileException e) - { - // This happen when the subsystem is unable to parse the kind of - // audio file we are submitting - // See the README for supported audio file types under Classpath - // for the version you are using. - e.printStackTrace(); - return; - } - catch (IOException e) - { - e.printStackTrace(); - return; - } - - // get informations about the kind of file we are about to play - AudioFormat audioFormat = audioInputStream.getFormat(); - - System.out.println("Playing file: " + file); - System.out.println("format: " + audioFormat.toString()); - - System.out.print("Additional properties: "); - - // now, we try to get all the properties we have in this AudioFormat - // and display them - Map<String, Object> properties = audioFormat.properties(); - if (properties.size() < 0) - { - System.out.println("none"); - } - else - { - System.out.println("found #" + properties.size() + " properties"); - for (String key : properties.keySet()) - { - System.out.println(key + ": " + properties.get(key)); - } - } - - // let's setup things for playing - // first, we require a Line. As we are doing playing, we will ask for a - // SourceDataLine - SourceDataLine line = null; - - // To get the source line, we first need to build an Info object - // this is done in one line: - DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); - - System.out.println("searching line..."); - - // usually, if a backend can parse a file type, it can also - // create a line to handle it, but that's not guaranteed - // so we need to take care and to handle a possible - // LineUnavailableException - try - { - line = (SourceDataLine) AudioSystem.getLine(info); - - System.out.println("line found, opening..."); - - // once created, a line must be opened to let data flow - // though it. - line.open(audioFormat); - } - catch (LineUnavailableException e) - { - // in a real application you should signal that in a kindly way to - // your users - e.printStackTrace(); - return; - } - catch (Exception e) - { - e.printStackTrace(); - return; - } - - // an open line pass data to the backend only when it is in - // a state called "started" ("playing" or "play" in some other - // framework) - System.out.print("starting line... "); - - line.start(); - System.out.println("done"); - - // now we can start reading data from the AudioStream and writing - // data to the pipeline. The Java Sound API is rather low level - // so let you pass up to one byte of data at a time - // (with some constraints, refer to the API documentation to know more) - // We will do some buffering. You may want to check the frame size - // to allow a better buffering, also. - - System.out.println("now playing..."); - - int nBytesRead = 0; - byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; - while (nBytesRead != - 1) - { - try - { - nBytesRead = audioInputStream.read(abData, 0, abData.length); - } - catch (IOException e) - { - e.printStackTrace(); - } - - if (nBytesRead >= 0) - { - // this method returns the number of bytes actuall written - // to the line. You may want to use this number to check - // for events, display the current position (give also a - // look to the API for other ways of doing that) etc.. - line.write(abData, 0, nBytesRead); - } - } - - System.out.print("stream finished, draining line... "); - - // call this method to ensure that all the data in the internal buffer - // reach the audio backend, otherwise your application will - // cut the last frames of audio data (and users will not enjoy the last - // seconds of their precious music) - line.drain(); - - // Once done, we can close the line. Note that a line, once closed - // may not be reopened (depends on the backend, in some cases a "reopen", - // if allowed, really opens a new line, reallocating all the resources) - - System.out.println("line drained, now exiting"); - line.close(); - - System.out.println("We hope you enjoyed Radio Classpath!"); - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java b/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java deleted file mode 100644 index a929683..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java +++ /dev/null @@ -1,56 +0,0 @@ -/* BrowserEditorKit.java -- A tweaked editor kit for the browser - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import javax.swing.text.html.HTMLEditorKit; - -/** - * A tweaked editor kit for out browser. - */ -public class BrowserEditorKit - extends HTMLEditorKit -{ - public BrowserEditorKit() - { - super(); - // Turn off automatic form submission so that we can receive notification - // instead and can update out location field. - setAutoFormSubmission(false); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java deleted file mode 100644 index 8b05dac..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java +++ /dev/null @@ -1,319 +0,0 @@ -/* ButtonDemo.java -- An example showing various buttons in Swing. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.BorderFactory; -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JToggleButton; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; -import javax.swing.plaf.metal.MetalIconFactory; - -/** - * A simple button demo showing various buttons in different states. - */ -public class ButtonDemo - extends JPanel - implements ActionListener -{ - - private JCheckBox buttonState; - private JButton button1; - private JButton button2; - private JButton button3; - private JButton button4; - - private JCheckBox toggleState; - private JToggleButton toggle1; - private JToggleButton toggle2; - private JToggleButton toggle3; - private JToggleButton toggle4; - - private JCheckBox checkBoxState; - private JCheckBox checkBox1; - private JCheckBox checkBox2; - private JCheckBox checkBox3; - - private JCheckBox radioState; - private JRadioButton radio1; - private JRadioButton radio2; - private JRadioButton radio3; - - /** - * Creates a new demo instance. - */ - public ButtonDemo() - { - createContent(); - // initFrameContent() is only called (from main) when running this app - // standalone - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = new JPanel(new GridLayout(4, 1)); - panel.add(createButtonPanel()); - panel.add(createTogglePanel()); - panel.add(createCheckBoxPanel()); - panel.add(createRadioPanel()); - add(panel); - } - - private JPanel createButtonPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - this.buttonState = new JCheckBox("Enabled", true); - this.buttonState.setActionCommand("BUTTON_STATE"); - this.buttonState.addActionListener(this); - panel.add(this.buttonState, BorderLayout.EAST); - - JPanel buttonPanel = new JPanel(); - buttonPanel.setBorder(BorderFactory.createTitledBorder("JButton")); - this.button1 = new JButton("Button 1"); - - this.button2 = new JButton("Button 2"); - this.button2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); - - this.button3 = new JButton("Button 3"); - this.button3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); - this.button3.setHorizontalTextPosition(SwingConstants.CENTER); - this.button3.setVerticalTextPosition(SwingConstants.BOTTOM); - - this.button4 = new JButton("Button 4"); - this.button4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); - this.button4.setText(null); - - buttonPanel.add(button1); - buttonPanel.add(button2); - buttonPanel.add(button3); - buttonPanel.add(button4); - - panel.add(buttonPanel); - - return panel; - } - - private JPanel createTogglePanel() - { - JPanel panel = new JPanel(new BorderLayout()); - - this.toggleState = new JCheckBox("Enabled", true); - this.toggleState.setActionCommand("TOGGLE_STATE"); - this.toggleState.addActionListener(this); - - panel.add(this.toggleState, BorderLayout.EAST); - - JPanel buttonPanel = new JPanel(); - buttonPanel.setBorder(BorderFactory.createTitledBorder("JToggleButton")); - - this.toggle1 = new JToggleButton("Toggle 1"); - - this.toggle2 = new JToggleButton("Toggle 2"); - this.toggle2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); - - this.toggle3 = new JToggleButton("Toggle 3"); - this.toggle3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); - this.toggle3.setHorizontalTextPosition(SwingConstants.CENTER); - this.toggle3.setVerticalTextPosition(SwingConstants.BOTTOM); - - this.toggle4 = new JToggleButton("Toggle 4"); - this.toggle4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); - this.toggle4.setText(null); - - ButtonGroup toggleGroup = new ButtonGroup(); - toggleGroup.add(toggle1); - toggleGroup.add(toggle2); - toggleGroup.add(toggle3); - toggleGroup.add(toggle4); - - buttonPanel.add(toggle1); - buttonPanel.add(toggle2); - buttonPanel.add(toggle3); - buttonPanel.add(toggle4); - - panel.add(buttonPanel); - - return panel; - } - - private JPanel createCheckBoxPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - - this.checkBoxState = new JCheckBox("Enabled", true); - this.checkBoxState.setActionCommand("CHECKBOX_STATE"); - this.checkBoxState.addActionListener(this); - - panel.add(this.checkBoxState, BorderLayout.EAST); - - JPanel buttonPanel = new JPanel(); - buttonPanel.setBorder(BorderFactory.createTitledBorder("JCheckBox")); - this.checkBox1 = new JCheckBox("CheckBox 1"); - - this.checkBox2 = new JCheckBox("CheckBox 2"); - - this.checkBox3 = new JCheckBox("CheckBox 3"); - - buttonPanel.add(checkBox1); - buttonPanel.add(checkBox2); - buttonPanel.add(checkBox3); - - panel.add(buttonPanel); - - return panel; - } - - private JPanel createRadioPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - - this.radioState = new JCheckBox("Enabled", true); - this.radioState.setActionCommand("RADIO_STATE"); - this.radioState.addActionListener(this); - panel.add(this.radioState, BorderLayout.EAST); - - JPanel buttonPanel = new JPanel(); - buttonPanel.setBorder(BorderFactory.createTitledBorder("JRadioButton")); - this.radio1 = new JRadioButton("Radio 1"); - - this.radio2 = new JRadioButton("Radio 2"); - - this.radio3 = new JRadioButton("Radio 3"); - - ButtonGroup radioGroup = new ButtonGroup(); - radioGroup.add(radio1); - radioGroup.add(radio2); - radioGroup.add(radio3); - - buttonPanel.add(radio1); - buttonPanel.add(radio2); - buttonPanel.add(radio3); - - panel.add(buttonPanel); - - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("BUTTON_STATE")) - { - button1.setEnabled(buttonState.isSelected()); - button2.setEnabled(buttonState.isSelected()); - button3.setEnabled(buttonState.isSelected()); - button4.setEnabled(buttonState.isSelected()); - } - else if (e.getActionCommand().equals("TOGGLE_STATE")) - { - toggle1.setEnabled(toggleState.isSelected()); - toggle2.setEnabled(toggleState.isSelected()); - toggle3.setEnabled(toggleState.isSelected()); - toggle4.setEnabled(toggleState.isSelected()); - } - else if (e.getActionCommand().equals("CHECKBOX_STATE")) - { - checkBox1.setEnabled(checkBoxState.isSelected()); - checkBox2.setEnabled(checkBoxState.isSelected()); - checkBox3.setEnabled(checkBoxState.isSelected()); - } - else if (e.getActionCommand().equals("RADIO_STATE")) - { - radio1.setEnabled(radioState.isSelected()); - radio2.setEnabled(radioState.isSelected()); - radio3.setEnabled(radioState.isSelected()); - } - else if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - ButtonDemo app = new ButtonDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("ButtonDemo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a ButtonDemo. - * - * @return a DemoFactory that creates a ButtonDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new ButtonDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java deleted file mode 100644 index 682af0b..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java +++ /dev/null @@ -1,386 +0,0 @@ -/* ComboBoxDemo.java -- An example showing various combo boxes in Swing. - Copyright (C) 2005, 2006, Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.BorderFactory; -import javax.swing.DefaultListCellRenderer; -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; -import javax.swing.plaf.metal.MetalIconFactory; - -/** - * A simple demo showing various combo boxes in different states. - */ -public class ComboBoxDemo - extends JPanel - implements ActionListener -{ - - class CustomCellRenderer extends DefaultListCellRenderer - { - public Component getListCellRendererComponent(JList list, - Object value, - int index, - boolean isSelected, - boolean cellHasFocus) - { - DefaultListCellRenderer result = (DefaultListCellRenderer) - super.getListCellRendererComponent(list, value, index, isSelected, - cellHasFocus); - Icon icon = (Icon) value; - result.setIcon(icon); - result.setText("Index = " + index); - return result; - } - } - - private JCheckBox comboState1; - private JComboBox combo1; - private JComboBox combo2; - - private JCheckBox comboState2; - private JComboBox combo3; - private JComboBox combo4; - - private JCheckBox comboState3; - private JComboBox combo5; - private JComboBox combo6; - - private JCheckBox comboState4; - private JComboBox combo7; - private JComboBox combo8; - - private JCheckBox comboState5; - private JComboBox combo9; - private JComboBox combo10; - - private JCheckBox comboState6; - private JComboBox combo11; - private JComboBox combo12; - - /** - * Creates a new demo instance. - */ - public ComboBoxDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = new JPanel(new GridLayout(6, 1)); - panel.add(createPanel1()); - panel.add(createPanel2()); - panel.add(createPanel3()); - panel.add(createPanel4()); - panel.add(createPanel5()); - panel.add(createPanel6()); - add(panel); - } - - private JPanel createPanel1() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState1 = new JCheckBox("Enabled", true); - this.comboState1.setActionCommand("COMBO_STATE1"); - this.comboState1.addActionListener(this); - panel.add(this.comboState1, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Regular: ")); - this.combo1 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - - this.combo2 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - this.combo2.setEditable(true); - - controlPanel.add(combo1); - controlPanel.add(combo2); - - panel.add(controlPanel); - - return panel; - } - - private JPanel createPanel2() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState2 = new JCheckBox("Enabled", true); - this.comboState2.setActionCommand("COMBO_STATE2"); - this.comboState2.addActionListener(this); - panel.add(this.comboState2, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Large Font: ")); - this.combo3 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - this.combo3.setFont(new Font("Dialog", Font.PLAIN, 20)); - - this.combo4 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - this.combo4.setEditable(true); - this.combo4.setFont(new Font("Dialog", Font.PLAIN, 20)); - - controlPanel.add(combo3); - controlPanel.add(combo4); - - panel.add(controlPanel); - - return panel; - } - - private JPanel createPanel3() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState3 = new JCheckBox("Enabled", true); - this.comboState3.setActionCommand("COMBO_STATE3"); - this.comboState3.addActionListener(this); - panel.add(this.comboState3, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Colored Background: ")); - this.combo5 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - this.combo5.setBackground(Color.yellow); - - this.combo6 = new JComboBox(new Object[] {"Australia", "New Zealand", - "England"}); - this.combo6.setEditable(true); - this.combo6.setBackground(Color.yellow); - - controlPanel.add(combo5); - controlPanel.add(combo6); - - panel.add(controlPanel); - - return panel; - } - - /** - * This panel contains combo boxes that are empty. - * - * @return A panel. - */ - private JPanel createPanel4() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState4 = new JCheckBox("Enabled", true); - this.comboState4.setActionCommand("COMBO_STATE4"); - this.comboState4.addActionListener(this); - panel.add(this.comboState4, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Empty: ")); - this.combo7 = new JComboBox(); - this.combo8 = new JComboBox(); - this.combo8.setEditable(true); - - controlPanel.add(combo7); - controlPanel.add(combo8); - - panel.add(controlPanel); - - return panel; - } - - /** - * This panel contains combo boxes that are narrow but contain long text - * items. - * - * @return A panel. - */ - private JPanel createPanel5() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState5 = new JCheckBox("Enabled", true); - this.comboState5.setActionCommand("COMBO_STATE5"); - this.comboState5.addActionListener(this); - panel.add(this.comboState5, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Narrow: ")); - this.combo9 = new JComboBox(new Object[] { - "A really long item that will be truncated when displayed"}); - this.combo9.setPreferredSize(new Dimension(100, 30)); - this.combo10 = new JComboBox(new Object[] { - "A really long item that will be truncated when displayed"}); - this.combo10.setPreferredSize(new Dimension(100, 30)); - this.combo10.setEditable(true); - - controlPanel.add(combo9); - controlPanel.add(combo10); - - panel.add(controlPanel); - - return panel; - } - - /** - * This panel contains combo boxes with a custom renderer. - * - * @return A panel. - */ - private JPanel createPanel6() - { - JPanel panel = new JPanel(new BorderLayout()); - this.comboState6 = new JCheckBox("Enabled", true); - this.comboState6.setActionCommand("COMBO_STATE6"); - this.comboState6.addActionListener(this); - panel.add(this.comboState6, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Custom Renderer: ")); - this.combo11 = new JComboBox(new Object[] { - MetalIconFactory.getFileChooserHomeFolderIcon(), - MetalIconFactory.getFileChooserNewFolderIcon()}); - this.combo11.setPreferredSize(new Dimension(100, 30)); - this.combo11.setRenderer(new CustomCellRenderer()); - this.combo12 = new JComboBox(new Object[] { - MetalIconFactory.getFileChooserHomeFolderIcon(), - MetalIconFactory.getFileChooserNewFolderIcon()}); - this.combo12.setPreferredSize(new Dimension(100, 30)); - this.combo12.setRenderer(new CustomCellRenderer()); - this.combo12.setEditable(true); - - controlPanel.add(combo11); - controlPanel.add(combo12); - - panel.add(controlPanel); - - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("COMBO_STATE1")) - { - combo1.setEnabled(comboState1.isSelected()); - combo2.setEnabled(comboState1.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE2")) - { - combo3.setEnabled(comboState2.isSelected()); - combo4.setEnabled(comboState2.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE3")) - { - combo5.setEnabled(comboState3.isSelected()); - combo6.setEnabled(comboState3.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE4")) - { - combo7.setEnabled(comboState4.isSelected()); - combo8.setEnabled(comboState4.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE5")) - { - combo9.setEnabled(comboState5.isSelected()); - combo10.setEnabled(comboState5.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE6")) - { - combo11.setEnabled(comboState6.isSelected()); - combo12.setEnabled(comboState6.isSelected()); - } - else if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - ComboBoxDemo app = new ComboBoxDemo(); - app.initFrameContent(); - JFrame frame = new JFrame(); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a ComboBoxDemo. - * - * @return a DemoFactory that creates a ComboBoxDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new ComboBoxDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java deleted file mode 100644 index bed08d4..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java +++ /dev/null @@ -1,629 +0,0 @@ -/* SwingDemo.java -- An example of using the javax.swing UI. - Copyright (C) 2003, 2004, 2005, 2006, 2010 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import gnu.classpath.examples.java2d.JNIOverhead; - -import java.awt.*; -import java.awt.event.*; - -import javax.swing.*; - -import javax.swing.plaf.basic.BasicLookAndFeel; -import javax.swing.plaf.metal.DefaultMetalTheme; -import javax.swing.plaf.metal.MetalLookAndFeel; -import javax.swing.plaf.metal.MetalTheme; -import javax.swing.plaf.metal.OceanTheme; - -import java.lang.reflect.Method; -import java.net.URL; - -public class Demo -{ - JFrame frame; - - /** - * The main desktop. This is package private to avoid synthetic accessor - * method. - */ - JDesktopPane desktop; - - /** - * The themes menu. This is implemented as a field so that the L&F switcher - * can disable the menu when a non-Metal L&F is selected. - */ - JMenu themesMenu; - - static Color blueGray = new Color(0xdc, 0xda, 0xd5); - - private static Icon stockIcon(String s) - { - return getIcon("/gnu/classpath/examples/icons/stock-" + s + ".png", s); - } - - static Icon bigStockIcon(String s) - { - return getIcon("/gnu/classpath/examples/icons/big-" + s + ".png", s); - } - - static Icon getIcon(String location, String name) - { - URL url = Demo.class.getResource(location); - if (url == null) System.err.println("WARNING " + location + " not found."); - return new ImageIcon(url, name); - } - - private JMenuBar mkMenuBar() - { - JMenuBar bar = new JMenuBar(); - - JMenu file = new JMenu("File"); - JMenu edit = new JMenu("Edit"); - JMenu help = new JMenu("Help"); - - file.setMnemonic(KeyEvent.VK_F); - edit.setMnemonic(KeyEvent.VK_E); - help.setMnemonic(KeyEvent.VK_H); - - file.add(new JMenuItem("New", stockIcon("new"))); - file.add(new JMenuItem("Open", stockIcon("open"))); - - JMenu recent = new JMenu("Recent Files..."); - recent.add(new JMenuItem("war-and-peace.txt")); - recent.add(new JMenuItem("taming-of-shrew.txt")); - recent.add(new JMenuItem("sun-also-rises.txt")); - file.add(recent); - file.add(new JMenuItem("Save", stockIcon("save"))); - file.add(new JMenuItem("Save as...", stockIcon("save-as"))); - - JMenuItem exit = new JMenuItem("Exit", stockIcon("quit")); - exit.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - System.exit(1); - } - }); - - file.add(exit); - - edit.add(new JMenuItem("Cut", stockIcon("cut"))); - edit.add(new JMenuItem("Copy", stockIcon("copy"))); - edit.add(new JMenuItem("Paste", stockIcon("paste"))); - - JMenu preferences = new JMenu("Preferences..."); - preferences.add(new JCheckBoxMenuItem("Microphone Active", - stockIcon("mic"))); - preferences.add(new JCheckBoxMenuItem("Check Spelling", - stockIcon("spell-check"))); - preferences.add(new JCheckBoxMenuItem("World Peace")); - preferences.add(new JSeparator()); - preferences.add(new JRadioButtonMenuItem("Radio Button")); - edit.add(preferences); - - JMenu examples = new JMenu("Examples"); - examples.add(new JMenuItem(new PopupAction("Buttons", - ButtonDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("Slider", - SliderDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("ProgressBar", - ProgressBarDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("Scrollbar", - ScrollBarDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("Spinner", - SpinnerDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("TextField", - TextFieldDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("TextArea", - TextAreaDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("FileChooser", - FileChooserDemo.createDemoFactory()))); - - examples.add(new JMenuItem(new PopupAction("ComboBox", - ComboBoxDemo.createDemoFactory()))); - - examples.add(new JMenuItem(new PopupAction("Table", - TableDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("List", - ListDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("TabbedPane", - TabbedPaneDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("Tree", - TreeDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("Theme Editor", - MetalThemeEditor.createDemoFactory()))); - - examples.add(new JMenuItem(new PopupAction("DocumentFilter", - DocumentFilterDemo.createDemoFactory()))); - - examples.add(new JMenuItem(new PopupAction("NavigationFilter", - NavigationFilterDemo.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("JNI Overhead", - JNIOverhead.createDemoFactory()))); - examples.add(new JMenuItem(new PopupAction("HTML Demo", - HtmlDemo.createDemoFactory()))); - - - final JMenuItem vmMenu; - - help.add(new JMenuItem("just play with the widgets")); - help.add(new JMenuItem("and enjoy the sensation of")); - help.add(new JMenuItem("your neural connections growing")); - help.add(new JSeparator()); - help.add(vmMenu = new JMenuItem("Really, which VM is this running on?")); - vmMenu.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - String message = "This is " - + System.getProperty("java.vm.name") - + " Version " - + System.getProperty("java.vm.version") - + " distributed by " - + System.getProperty("java.vm.vendor") - + "."; - - String gnuClasspath = System.getProperty("gnu.classpath.version"); - if(gnuClasspath != null) - message += "\nThe runtime's libraries are " - + "kindly provided by the " - + "members of GNU Classpath and are in version " - + gnuClasspath + "."; - - JOptionPane.showMessageDialog(vmMenu, message); - } - }); - - // Installs the BasicLookAndFeel. - UIManager.installLookAndFeel("(Basic Look And Feel)", - InstantiableBasicLookAndFeel.class.getName()); - - // Create L&F menu. - JMenu lafMenu = new JMenu("Look and Feel"); - ButtonGroup lafGroup = new ButtonGroup(); - UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels(); - String currentLaf = UIManager.getLookAndFeel().getClass().getName(); - for (int i = 0; i < lafs.length; ++i) - { - UIManager.LookAndFeelInfo laf = lafs[i]; - ChangeLAFAction action = new ChangeLAFAction(laf); - JRadioButtonMenuItem lafItem = new JRadioButtonMenuItem(action); - boolean selected = laf.getClassName().equals(currentLaf); - lafItem.setSelected(selected); - lafMenu.add(lafItem); - - lafGroup.add(lafItem); - } - - // Create themes menu. - themesMenu = new JMenu("Themes"); - ButtonGroup themesGroup = new ButtonGroup(); - - // In order to make the demo runable on a 1.4 type VM we have to avoid calling - // MetalLookAndFeel.getCurrentTheme(). We simply check whether this method exists - // and is public. - Method m = null; - try - { - m = MetalLookAndFeel.class.getMethod("getCurrentTheme"); - } - catch (NoSuchMethodException nsme) - { - // Ignore it. - } - - if (m != null) - { - JRadioButtonMenuItem ocean = - new JRadioButtonMenuItem(new ChangeThemeAction(new OceanTheme())); - ocean.setSelected(MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme); - themesMenu.add(ocean); - themesGroup.add(ocean); - - JRadioButtonMenuItem steel = - new JRadioButtonMenuItem(new ChangeThemeAction(new DefaultMetalTheme())); - ocean.setSelected(MetalLookAndFeel.getCurrentTheme() - instanceof DefaultMetalTheme); - themesMenu.add(steel); - themesGroup.add(steel); - } - else - { - themesMenu.setEnabled(false); - } - - bar.add(file); - bar.add(edit); - bar.add(examples); - bar.add(lafMenu); - bar.add(themesMenu); - bar.add(help); - return bar; - } - - private static void triggerDialog(final JButton but, final String dir) - { - but.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - JOptionPane.showConfirmDialog(but, - "Sure you want to go " + dir + "?", - "Confirm", - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, - bigStockIcon("warning")); - } - }); - } - - static JToolBar mkToolBar() - { - JToolBar bar = new JToolBar(); - - JButton b = mkButton(stockIcon("go-back")); - triggerDialog(b, "back"); - bar.add(b); - - b = mkButton(stockIcon("go-down")); - triggerDialog(b, "down"); - bar.add(b); - - b = mkButton(stockIcon("go-forward")); - triggerDialog(b, "forward"); - bar.add(b); - return bar; - } - - static String halign2str(int a) - { - switch (a) - { - case SwingConstants.CENTER: - return "Center"; - case SwingConstants.RIGHT: - return "Right"; - case SwingConstants.LEFT: - return "Left"; - default: - return "Unknown"; - } - } - - private static JButton mkButton(String title, Icon icon, - int hAlign, int vAlign, - int hPos, int vPos) - { - JButton b; - if (icon == null) - b = new JButton(title); - else if (title == null) - b = new JButton(icon); - else - b = new JButton(title, icon); - - b.setToolTipText(title); - if (hAlign != -1) b.setHorizontalAlignment(hAlign); - if (vAlign != -1) b.setVerticalAlignment(vAlign); - if (hPos != -1) b.setHorizontalTextPosition(hPos); - if (vPos != -1) b.setVerticalTextPosition(vPos); - return b; - } - - static JButton mkButton(String title) - { - return mkButton(title, null, -1, -1, -1, -1); - } - - static JButton mkButton(Icon i) - { - return mkButton(null, i, -1, -1, -1, -1); - } - - public Demo() - { - frame = new JFrame("Swing Activity Board"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setJMenuBar(mkMenuBar()); - JComponent component = (JComponent) frame.getContentPane(); - component.setLayout(new BorderLayout()); - component.add(mkToolBar(), BorderLayout.NORTH); - JPanel main = new JPanel(); - main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS)); - desktop = createDesktop(); - main.add(desktop); - main.add(mkButtonBar()); - component.add(main, BorderLayout.CENTER); - frame.pack(); - frame.show(); - } - - public static class LaterMain - implements Runnable - { - public void run() - { - new Demo(); - } - } - - public static void main(String args[]) - { - SwingUtilities.invokeLater(new LaterMain()); - } - - private static JButton mkBigButton(String title) - { - JButton b = new JButton(title); - b.setMargin(new Insets(5,5,5,5)); - return b; - } - - static JButton mkDisposerButton(final JFrame c) - { - JButton close = mkBigButton("Close"); - close.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - c.dispose(); - } - }); - return close; - } - - public static JColorChooser mkColorChooser() - { - return new JColorChooser(); - } - - /** - * This action brings up a new Window with the specified content. - */ - private class PopupAction - extends AbstractAction - { - /** - * The component to be shown. - */ - private DemoFactory demoFactory; - - /** - * Creates a new PopupAction with the specified name and showing the - * component created by the specified DemoFactory when activated. - * - * @param n the name of the action - * @param factory the demo factory - */ - PopupAction(String n, DemoFactory factory) - { - putValue(NAME, n); - demoFactory = factory; - } - - /** - * Brings up the new window showing the component stored in the - * constructor. - * - * @param e the action event that triggered the action - */ - public void actionPerformed(ActionEvent e) - { - JInternalFrame frame = new JInternalFrame((String) getValue(NAME)); - frame.setClosable(true); - frame.setIconifiable(true); - frame.setMaximizable(true); - frame.setResizable(true); - frame.setContentPane(demoFactory.createDemo()); - frame.pack(); - desktop.add(frame); - frame.setVisible(true); - } - } - - private JPanel mkButtonBar() - { - JPanel panel = new JPanel(new GridLayout(3, 1, 5, 5)); - panel.add(new JButton(new PopupAction("Buttons", - ButtonDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("Slider", - SliderDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("ProgressBar", - ProgressBarDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("ScrollBar", - ScrollBarDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("Spinner", - SpinnerDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("TextField", - TextFieldDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("TextArea", - TextAreaDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("FileChooser", - FileChooserDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("ComboBox", - ComboBoxDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("Table", - TableDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("List", - ListDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("TabbedPane", - TabbedPaneDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("Tree", - TreeDemo.createDemoFactory()))); - panel.add(new JButton(new PopupAction("Theme Editor", - MetalThemeEditor.createDemoFactory()))); - panel.add(new JButton(new PopupAction("JNI Overhead", - JNIOverhead.createDemoFactory()))); - panel.add(new JButton(new PopupAction("HTML", - HtmlDemo.createDemoFactory()))); - - JButton exitDisposer = mkDisposerButton(frame); - panel.add(exitDisposer); - - panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, - panel.getPreferredSize().height)); - exitDisposer.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - System.exit(1); - } - }); - return panel; - } - - /** - * Creates and returns the main desktop. - * - * @return the main desktop - */ - private JDesktopPane createDesktop() - { - JDesktopPane d = new DemoDesktop(); - d.setPreferredSize(new Dimension(900, 500)); - return d; - } - - /** - * This Action is used to switch Metal themes. - */ - class ChangeThemeAction extends AbstractAction - { - /** - * The theme to switch to. - */ - MetalTheme theme; - - /** - * Creates a new ChangeThemeAction for the specified theme. - * - * @param t the theme to switch to - */ - ChangeThemeAction(MetalTheme t) - { - theme = t; - putValue(NAME, t.getName()); - } - - /** - * Changes the theme to the one specified in the constructor. - * - * @param event the action event that triggered this action - */ - public void actionPerformed(ActionEvent event) - { - MetalLookAndFeel.setCurrentTheme(theme); - try - { - // Only switch theme if we have a metal L&F. It is still necessary - // to install a new MetalLookAndFeel instance. - if (UIManager.getLookAndFeel() instanceof MetalLookAndFeel) - UIManager.setLookAndFeel(new MetalLookAndFeel()); - } - catch (UnsupportedLookAndFeelException ex) - { - ex.printStackTrace(); - } - SwingUtilities.updateComponentTreeUI(frame); - } - - } - - /** - * This Action is used to switch Metal themes. - */ - class ChangeLAFAction extends AbstractAction - { - /** - * The theme to switch to. - */ - private UIManager.LookAndFeelInfo laf; - - /** - * Creates a new ChangeLAFAction for the specified L&F. - * - * @param l the L&F to switch to - */ - ChangeLAFAction(UIManager.LookAndFeelInfo l) - { - laf = l; - putValue(NAME, laf.getName()); - } - - /** - * Changes the theme to the one specified in the constructor. - * - * @param event the action event that triggered this action - */ - public void actionPerformed(ActionEvent event) - { - try - { - UIManager.setLookAndFeel(laf.getClassName()); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - - SwingUtilities.updateComponentTreeUI(frame); - themesMenu.setEnabled(laf.getClassName() - .equals("javax.swing.plaf.metal.MetalLookAndFeel")); - } - } - - /** - * An implementation of BasicLookAndFeel which can be instantiated. - * - * @author Robert Schuster (robertschuster@fsfe.org) - * - */ - public static class InstantiableBasicLookAndFeel extends BasicLookAndFeel - { - public String getDescription() - { - return "An instantiable implementation of BasicLookAndFeel"; - } - - public String getID() - { - return "instantiableBasicLookAndFeel"; - } - - public String getName() - { - return "Instantiable Basic Look And Feel"; - } - - public boolean isNativeLookAndFeel() - { - return false; - } - - public boolean isSupportedLookAndFeel() - { - return true; - } - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/DemoDesktop.java b/libjava/classpath/examples/gnu/classpath/examples/swing/DemoDesktop.java deleted file mode 100644 index edfaf36..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/DemoDesktop.java +++ /dev/null @@ -1,82 +0,0 @@ -/* DemoDesktop.java -- A custom desktop for the demo - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.Graphics; - -import javax.swing.ImageIcon; -import javax.swing.JDesktopPane; - -/** - * A customized Desktop for the GNU Classpath Swing demo that paints the - * GNU Classpath Icon in the middle of the desktop. - * - * @author Roman Kennke (kennke@aicas.com) - */ -public class DemoDesktop - extends JDesktopPane -{ - - /** - * The icon that's painted centered on the desktop. - */ - private ImageIcon image; - - /** - * Creates a new desktop. - */ - DemoDesktop() - { - super(); - String badge = "/gnu/classpath/examples/icons/badge.png"; - image = new ImageIcon(getClass().getResource(badge)); - } - - /** - * Paints the desktop including the icon. - * - * @param g the graphics to use for painting - */ - protected void paintComponent(Graphics g) - { - super.paintComponent(g); - image.paintIcon(this, g, (getWidth() - image.getIconWidth()) / 2, - (getHeight() - image.getIconHeight()) / 2); - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java b/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java deleted file mode 100644 index 0bbd022..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java +++ /dev/null @@ -1,57 +0,0 @@ -/* DemoFactory.java -- Creates components used as separate Swing demos - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import javax.swing.JComponent; - -/** - * Creates components used in the Swing demo as separate demos. - * - * @author Roman Kennke (kennke@aicas.de) - */ -public interface DemoFactory -{ - - /** - * Creates the component that should be as demo application. - * - * @return the component that should be as demo application - */ - JComponent createDemo(); -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java deleted file mode 100644 index 58db991..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java +++ /dev/null @@ -1,288 +0,0 @@ -/* DpocumentFilterDemo.java -- An example for the DocumentFilter class. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.GridLayout; -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.StringSelection; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; -import javax.swing.text.AbstractDocument; -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.DocumentFilter; - -/** - * A demonstration of the <code>javax.swing.text.DocumentFilter</code> class. - * - * <p>Similar to a dialog in a popular programming IDE the user can insert - * a CVS URL into a textfield and the filter will split the components apart - * and will put them into the right textfields saving the user a lot of - * typing time.</p> - * - * @author Robert Schuster - */ -public class DocumentFilterDemo - extends JPanel - implements ActionListener -{ - JTextField target; - - JTextField host; - JTextField repositoryPath; - JTextField user; - JTextField password; - JComboBox connectionType; - - /** - * Creates a new demo instance. - */ - public DocumentFilterDemo() - { - createContent(); - // initFrameContent() is only called (from main) when running this app - // standalone - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - private void createContent() - { - setLayout(new BorderLayout()); - - JPanel panel = new JPanel(new GridLayout(7, 2)); - panel.add(new JLabel("CVS URL:")); - panel.add(target = new JTextField(20)); - target.setBackground(Color.RED); - - panel.add(new JLabel("Host:")); - panel.add(host = new JTextField(20)); - - panel.add(new JLabel("Repository Path:")); - panel.add(repositoryPath = new JTextField(20)); - - panel.add(new JLabel("Username:")); - panel.add(user = new JTextField(20)); - - panel.add(new JLabel("Password:")); - panel.add(password = new JTextField(20)); - - panel.add(new JLabel("Connection Type:")); - panel.add(connectionType = new JComboBox()); - - JButton helpButton = new JButton("Help"); - panel.add(helpButton); - - helpButton.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - JOptionPane.showMessageDialog(DocumentFilterDemo.this, - "Paste a CVS URL into the red " + - "textfield.\nIf you do not want to " + - "look up a CVS URL yourself click " + - "on the 'provide me an example' " + - "button.\nThis will paste a proper " + - "string into your clipboard."); - } - }); - - JButton exampleButton = new JButton("Provide me an example!"); - panel.add(exampleButton); - exampleButton.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - try - { - Toolkit tk = Toolkit.getDefaultToolkit(); - Clipboard cb = tk.getSystemSelection(); - StringSelection selection - = new StringSelection(":extssh:gnu@cvs.savannah.gnu.org:" + - "/cvs/example/project"); - - cb.setContents(selection, selection); - - // Confirm success with a beep. - tk.beep(); - } - catch (IllegalStateException ise) - { - JOptionPane.showMessageDialog(DocumentFilterDemo.this, - "Clipboard is currently" + - " unavailable.", - "Error", - JOptionPane.ERROR_MESSAGE); - } - } - }); - - connectionType.addItem("pserver"); - connectionType.addItem("ext"); - connectionType.addItem("extssh"); - - add(panel); - - AbstractDocument doc = (AbstractDocument) target.getDocument(); - doc.setDocumentFilter(new CVSFilter()); - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - System.exit(0); - - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - DocumentFilterDemo app = new DocumentFilterDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("DocumentFilterDemo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - } - }); - } - - /** - * Returns a DemoFactory that creates a DocumentFilterDemo. - * - * @return a DemoFactory that creates a DocumentFilterDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new DocumentFilterDemo(); - } - }; - } - - class CVSFilter extends DocumentFilter - { - // example: pserver:anonymous@cvs.sourceforge.net:/cvsroot/fmj - String cvsPattern = ":?(pserver|ext|extssh):(\\w)+(:(\\w)+)?@(\\w|\\.)+:/(\\w|/)*"; - - public void insertString(DocumentFilter.FilterBypass fb, - int offset, String string, - AttributeSet attr) - throws BadLocationException - { - filterString(fb, offset, 0, string, attr, true); - } - - public void replace(DocumentFilter.FilterBypass fb, - int offset, int length, - String string, - AttributeSet attr) - throws BadLocationException - { - filterString(fb, offset, length, string, attr, false); - } - - public void filterString(DocumentFilter.FilterBypass fb, - int offset, int length, String string, - AttributeSet attr, boolean insertion) - throws BadLocationException - { - if(string.matches(cvsPattern)) - { - // Split off the connection type part. - String[] result = string.split(":", 2); - - // If the string contained a leading colon, result[0] - // will be empty at that point. We simply repeat the split - // operation on the remaining string and continue. - if(result[0].equals("")) - result = result[1].split(":", 2); - - connectionType.setSelectedItem(result[0]); - - // Split off the username and password part - result = result[1].split("@", 2); - - // Break username and password in half - String[] userCredentials = result[0].split(":"); - user.setText(userCredentials[0]); - - // If the result has two entries the second one will - // be the password. - if (userCredentials.length == 2) - password.setText(userCredentials[1]); - - // Now break the host part apart. - result = result[1].split(":"); - - host.setText(result[0]); - - repositoryPath.setText(result[1]); - } - - // The unmodified string is put into the document. - if (insertion) - fb.insertString(offset, string, attr); - else - fb.replace(offset, length, string, attr); - } - - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java deleted file mode 100644 index 444453b..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java +++ /dev/null @@ -1,264 +0,0 @@ -/* FileChooserDemo.java -- An example showing file choosers in Swing. - Copyright (C) 2005, 2006, Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; - -import javax.swing.BorderFactory; -import javax.swing.DefaultListModel; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.SwingUtilities; -import javax.swing.filechooser.FileFilter; - -/** - * A simple demo showing the {@link JFileChooser} component used in different - * ways. - */ -public class FileChooserDemo - extends JPanel - implements ActionListener -{ - /** - * A file filter for Java source files. - */ - static class JavaFileFilter extends FileFilter - { - public String getDescription() - { - return "Java Source Files (.java)"; - } - public boolean accept(File f) - { - if (f != null) - { - return f.getName().endsWith(".java") || f.isDirectory(); - } - else - return false; - } - } - - /** A label to display the selected file. */ - JLabel selectedFileLabel; - - /** - * A list showing the selected files (where multi selections are - * allowed). - */ - JList selectedFilesList; - - /** A label to display the return code for the JFileChooser. */ - JLabel returnCodeLabel; - - /** - * Creates a new demo instance. - */ - public FileChooserDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - - // create a panel of buttons to select the different styles of file - // chooser... - JPanel buttonPanel = new JPanel(new GridLayout(5, 1)); - JButton openButton = new JButton("Open..."); - openButton.setActionCommand("OPEN"); - openButton.addActionListener(this); - buttonPanel.add(openButton); - JButton saveButton = new JButton("Save..."); - saveButton.setActionCommand("SAVE"); - saveButton.addActionListener(this); - buttonPanel.add(saveButton); - JButton queryButton = new JButton("Select Directory..."); - queryButton.setActionCommand("SELECT_DIRECTORY"); - queryButton.addActionListener(this); - buttonPanel.add(queryButton); - JButton openJavaButton = new JButton("Open Java file..."); - openJavaButton.setActionCommand("OPEN_JAVA"); - openJavaButton.addActionListener(this); - buttonPanel.add(openJavaButton); - JButton openMultiButton = new JButton("Open multiple files..."); - openMultiButton.setActionCommand("OPEN_MULTI"); - openMultiButton.addActionListener(this); - buttonPanel.add(openMultiButton); - add(buttonPanel, BorderLayout.WEST); - - // create a panel to display the selected file(s) and the return code - JPanel displayPanel = new JPanel(new BorderLayout()); - - selectedFileLabel = new JLabel("-"); - selectedFileLabel.setBorder(BorderFactory.createTitledBorder("Selected File/Directory: ")); - displayPanel.add(selectedFileLabel, BorderLayout.NORTH); - - selectedFilesList = new JList(); - JScrollPane sp = new JScrollPane(selectedFilesList); - sp.setBorder(BorderFactory.createTitledBorder("Selected Files: ")); - displayPanel.add(sp); - - returnCodeLabel = new JLabel("0"); - returnCodeLabel.setBorder(BorderFactory.createTitledBorder("Return Code:")); - displayPanel.add(returnCodeLabel, BorderLayout.SOUTH); - - add(displayPanel); - } - - /** - * When the user clicks on a button, launch the appropriate file chooser - * and report the results. - * - * @param e the event. - */ - public void actionPerformed(ActionEvent e) - { - int option = 0; - File selectedFile = null; - File[] selectedFiles = new File[0]; - - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - else if (e.getActionCommand().equals("OPEN")) - { - JFileChooser chooser = new JFileChooser(); - option = chooser.showOpenDialog(this); - selectedFile = chooser.getSelectedFile(); - selectedFiles = chooser.getSelectedFiles(); - } - else if (e.getActionCommand().equals("OPEN_MULTI")) - { - JFileChooser chooser = new JFileChooser(); - chooser.setMultiSelectionEnabled(true); - option = chooser.showOpenDialog(this); - selectedFile = chooser.getSelectedFile(); - selectedFiles = chooser.getSelectedFiles(); - } - else if (e.getActionCommand().equals("OPEN_JAVA")) - { - JFileChooser chooser = new JFileChooser(); - chooser.setAcceptAllFileFilterUsed(false); - chooser.setFileFilter(new JavaFileFilter()); - option = chooser.showOpenDialog(this); - selectedFile = chooser.getSelectedFile(); - selectedFiles = chooser.getSelectedFiles(); - } - else if (e.getActionCommand().equals("SAVE")) - { - JFileChooser chooser = new JFileChooser(); - option = chooser.showSaveDialog(this); - selectedFile = chooser.getSelectedFile(); - selectedFiles = chooser.getSelectedFiles(); - } - else if (e.getActionCommand().equals("SELECT_DIRECTORY")) - { - JFileChooser chooser = new JFileChooser(); - chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - option = chooser.showDialog(this, "Select"); - selectedFile = chooser.getSelectedFile(); - selectedFiles = chooser.getSelectedFiles(); - } - - // display the selection and return code - if (selectedFile != null) - selectedFileLabel.setText(selectedFile.toString()); - else - selectedFileLabel.setText("null"); - DefaultListModel listModel = new DefaultListModel(); - for (int i = 0; i < selectedFiles.length; i++) - listModel.addElement(selectedFiles[i]); - selectedFilesList.setModel(listModel); - returnCodeLabel.setText(Integer.toString(option)); - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - FileChooserDemo app = new FileChooserDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("FileChooser Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a FileChooserDemo. - * - * @return a DemoFactory that creates a FileChooserDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new FileChooserDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java deleted file mode 100644 index 20977b2..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java +++ /dev/null @@ -1,379 +0,0 @@ -/* HtmlDemo.java -- HTML viewer demo - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.util.LinkedList; - -import javax.swing.BoxLayout; -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JEditorPane; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.JTextPane; -import javax.swing.JToolBar; -import javax.swing.SwingUtilities; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; -import javax.swing.text.html.FormSubmitEvent; - -/** - * Parses and displays HTML content. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class HtmlDemo extends JPanel -{ - - private class LoadActionListener - implements ActionListener - { - - public void actionPerformed(ActionEvent event) - { - String urlStr = url.getText(); - try - { - setPage(new URL(url.getText())); - } - catch (MalformedURLException ex) - { - // Do something more useful here. - ex.printStackTrace(); - } - } - } - - /** - * Setting this to true causes the parsed element structure to be dumped. - */ - private static final boolean DEBUG = true; - - /** - * The URL entry field. - */ - JTextField url = new JTextField(); - - JTextPane html = new JTextPane(); - - int n; - - /** - * The browsing history. - * - * Package private to avoid accessor method. - */ - LinkedList history; - - public HtmlDemo() - { - super(); - history = new LinkedList(); - createContent(); - } - - /** - * Returns a panel with the demo content. The panel uses a BorderLayout(), and - * the BorderLayout.SOUTH area is empty, to allow callers to add controls to - * the bottom of the panel if they want to (a close button is added if this - * demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - - JEditorPane.registerEditorKitForContentType("text/html", - BrowserEditorKit.class.getName()); - html.setEditable(false); - html.addHyperlinkListener(new HyperlinkListener() - { - - public void hyperlinkUpdate(HyperlinkEvent event) - { - if (event instanceof FormSubmitEvent) - { - submitForm((FormSubmitEvent) event); - } - else - { - URL u = event.getURL(); - if (u != null) - { - setPage(u); - } - } - } - - }); - - JScrollPane scroller = new JScrollPane(html); - JPanel urlPanel = new JPanel(); - urlPanel.setLayout(new BoxLayout(urlPanel, BoxLayout.X_AXIS)); - url.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); - LoadActionListener action = new LoadActionListener(); - url.addActionListener(action); - urlPanel.add(url); - JButton loadButton = new JButton("go"); - urlPanel.add(loadButton); - loadButton.addActionListener(action); - - // Setup control panel. - JToolBar controlPanel = createToolBar(); - JPanel browserPanel = new JPanel(); - browserPanel.setLayout(new BorderLayout()); - browserPanel.add(urlPanel, BorderLayout.NORTH); - browserPanel.add(scroller, BorderLayout.CENTER); - add(controlPanel, BorderLayout.NORTH); - add(browserPanel, BorderLayout.CENTER); - - // Load start page. - try - { - URL startpage = getClass().getResource("welcome.html"); - html.setPage(startpage); - url.setText(startpage.toString()); - history.addLast(startpage); - } - catch (Exception ex) - { - System.err.println("couldn't load page: "/* + startpage*/); - ex.printStackTrace(); - } - setPreferredSize(new Dimension(800, 600)); - } - - - /** - * Creates the toolbar with the control buttons. - * - * @return the toolbar with the control buttons - */ - JToolBar createToolBar() - { - JToolBar tb = new JToolBar(); - Icon backIcon = Demo.getIcon("/gnu/classpath/examples/icons/back.png", - "back"); - JButton back = new JButton(backIcon); - back.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - if (history.size() > 1) - { - URL last = (URL) history.removeLast(); - last = (URL) history.getLast(); - url.setText(last.toString()); - try - { - html.setPage(last); - } - catch (IOException ex) - { - // Do something more useful. - ex.printStackTrace(); - } - } - } - }); - tb.add(back); - Icon reloadIcon = Demo.getIcon("/gnu/classpath/examples/icons/reload.png", - "reload"); - JButton reload = new JButton(reloadIcon); - reload.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - if (history.size() > 0) - { - URL last = (URL) history.getLast(); - url.setText(last.toString()); - try - { - html.setPage(last); - } - catch (IOException ex) - { - // Do something more useful. - ex.printStackTrace(); - } - } - } - }); - tb.add(reload); - return tb; - } - - /** - * The executable method to display the editable table. - * - * @param args - * unused. - */ - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - HtmlDemo demo = new HtmlDemo(); - JFrame frame = new JFrame(); - frame.getContentPane().add(demo); - frame.setSize(new Dimension(750, 480)); - frame.setVisible(true); - } - }); - } - - /** - * Helper method to navigate to a new URL. - * - * @param u the new URL to navigate to - */ - void setPage(URL u) - { - try - { - url.setText(u.toString()); - html.setPage(u); - history.addLast(u); - } - catch (IOException ex) - { - // Do something more useful here. - ex.printStackTrace(); - } - } - - /** - * Submits a form when a FormSubmitEvent is received. The HTML API - * provides automatic form submit but when this is enabled we don't - * receive any notification and can't update our location field. - * - * @param ev the form submit event - */ - void submitForm(FormSubmitEvent ev) - { - URL url = ev.getURL(); - String data = ev.getData(); - FormSubmitEvent.MethodType method = ev.getMethod(); - if (method == FormSubmitEvent.MethodType.POST) - { - try - { - URLConnection conn = url.openConnection(); - postData(conn, data); - } - catch (IOException ex) - { - // Deal with this. - ex.printStackTrace(); - } - } - else - { - try - { - url = new URL(url.toString() + "?" + data); - } - catch (MalformedURLException ex) - { - ex.printStackTrace(); - } - } - setPage(url); - } - - /** - * Posts the form data for forms with HTTP POST method. - * - * @param conn the connection - * @param data the form data - */ - private void postData(URLConnection conn, String data) - { - conn.setDoOutput(true); - PrintWriter out = null; - try - { - out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream())); - out.print(data); - out.flush(); - } - catch (IOException ex) - { - // Deal with this! - ex.printStackTrace(); - } - finally - { - if (out != null) - out.close(); - } - } - - /** - * Returns a DemoFactory that creates a HtmlDemo. - * - * @return a DemoFactory that creates a HtmlDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new HtmlDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java deleted file mode 100644 index 8caa1dc..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java +++ /dev/null @@ -1,231 +0,0 @@ -/* ListDemo.java -- Demostrates JList - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.DefaultListModel; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JSplitPane; -import javax.swing.ListCellRenderer; -import javax.swing.SwingUtilities; - -public class ListDemo - extends JPanel - implements ActionListener -{ - - private static class LabelCellRenderer - extends DefaultListCellRenderer - { - public Component getListCellRendererComponent(JList list, - Object value, - int index, - boolean isSelected, - boolean cellHasFocus) - { - Component c = super.getListCellRendererComponent(list, value, index, - isSelected, - cellHasFocus); - return c; - } - } - - private static class CheckCellRenderer - extends JCheckBox - implements ListCellRenderer - { - public Component getListCellRendererComponent(JList list, - Object value, - int index, - boolean isSelected, - boolean cellHasFocus) - { - setSelected(isSelected); - setText(value.toString()); - - return this; - } - } - - ListDemo() - { - super(); - createContent(); - } - - private void createContent() - { - - String foo[] = new String[] { - "non alcoholic ", - "carbonated ", - "malted ", - "fresh squeezed ", - "imported ", - "high fructose ", - "enriched " - }; - - String bar[] = new String[] { - "orange juice", - "ginger beer", - "yak milk", - "corn syrup", - "herbal remedy" - }; - - final DefaultListModel mod = new DefaultListModel(); - final JList list1 = new JList(mod); - final JList list2 = new JList(mod); - - list2.setSelectionModel(list1.getSelectionModel()); - for (int i = 0; i < bar.length; ++i) - for (int j = 0; j < foo.length; ++j) - mod.addElement(foo[j] + bar[i]); - - list1.setCellRenderer(new LabelCellRenderer()); - list2.setCellRenderer(new CheckCellRenderer()); - - JButton add = new JButton("add element"); - add.addActionListener(new ActionListener() - { - int i = 0; - public void actionPerformed(ActionEvent e) - { - mod.addElement("new element " + i); - ++i; - } - }); - - JButton del = new JButton("delete selected"); - del.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - for (int i = 0; i < mod.getSize(); ++i) - if (list1.isSelectedIndex(i)) - mod.remove(i); - } - }); - - - JSplitPane splitter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); - splitter.add(new JScrollPane(list1), JSplitPane.LEFT); - splitter.add(new JScrollPane(list2), JSplitPane.RIGHT); - - setLayout(new BorderLayout()); - JPanel p2 = new JPanel(); - p2.setLayout(new GridLayout(1, 2)); - p2.add(add); - p2.add(del); - - add(p2, BorderLayout.NORTH); - add(splitter, BorderLayout.CENTER); - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - ListDemo app = new ListDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("List Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a ListDemo. - * - * @return a DemoFactory that creates a ListDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new ListDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java b/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java deleted file mode 100644 index 1360f9b..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java +++ /dev/null @@ -1,585 +0,0 @@ -/* MetalThemeEditor.java -- Edit themes using this application - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import gnu.javax.swing.plaf.metal.CustomizableTheme; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Graphics; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.Window; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.Writer; - -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JColorChooser; -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; -import javax.swing.plaf.metal.MetalLookAndFeel; - -/** - * This application serves two purposes: 1. demonstrate the color chooser - * component, 2. make creating new Metal themes as easy as possible. - * - * @author Roman Kennke (kennke@aicas.com) - */ -public class MetalThemeEditor - extends JPanel -{ - /** - * An icon to display a chosen color in a button. - */ - private class ColorIcon implements Icon - { - /** - * The color to be shown on the icon. - */ - Color color; - - /** - * Creates a new ColorIcon. - * - * @param c the color to be displayed - */ - ColorIcon(Color c) - { - color = c; - } - - /** - * Returns the icon height, which is 10. - * - * @return 10 - */ - public int getIconHeight() - { - return 10; - } - - /** - * Returns the icon width, which is 30. - * - * @return 30 - */ - public int getIconWidth() - { - return 30; - } - - /** - * Paints the icon. - * - * @param c the component to paint on - * @param g the graphics to use - * @param x the x location - * @param y the y location - */ - public void paintIcon(Component c, Graphics g, int x, int y) - { - g.setColor(color); - g.fillRect(x, y, 30, 10); - } - - } - - /** - * Opens up a color chooser and lets the user select a color for the theme. - */ - private class ChooseColorAction implements ActionListener - { - - /** - * The button that will get updated when a new color is selected. - */ - private JButton button; - - /** - * Specifies which color of the theme should be updated. See constants in - * the MetalThemeEditor class. - */ - private int colorType; - - /** - * Creates a new ChooseColorAction. The specified button will have its - * icon updated to the new color if appropriate. - * - * @param b the button to update - * @param type the color type to update - */ - ChooseColorAction(JButton b, int type) - { - button = b; - colorType = type; - } - - /** - * Opens a color chooser and lets the user select a color. - */ - public void actionPerformed(ActionEvent event) - { - Color c = JColorChooser.showDialog(button, "Choose a color", - getColor(colorType)); - if (c != null) - { - setColor(colorType, c); - button.setIcon(new ColorIcon(c)); - } - } - } - - /** - * Denotes the primary1 color of the theme. - */ - private static final int PRIMARY1 = 0; - - /** - * Denotes the primary2 color of the theme. - */ - private static final int PRIMARY2 = 1; - - /** - * Denotes the primary3 color of the theme. - */ - private static final int PRIMARY3 = 2; - - /** - * Denotes the secondary1 color of the theme. - */ - private static final int SECONDARY1 = 3; - - /** - * Denotes the secondary2 color of the theme. - */ - private static final int SECONDARY2 = 4; - - /** - * Denotes the secondary3 color of the theme. - */ - private static final int SECONDARY3 = 5; - - /** - * The theme that is edited. - */ - CustomizableTheme theme; - - /** - * Creates a new instance of the MetalThemeEditor. - */ - MetalThemeEditor() - { - theme = new CustomizableTheme(); - setBorder(BorderFactory.createEmptyBorder(12, 12, 11, 11)); - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - add(createConfigurationPanel()); - add(Box.createVerticalStrut(17)); - add(createButtonPanel()); - } - - /** - * Creates the main panel of the MetalThemeEditor. This is the upper - * area where the colors can be selected. - * - * @return the main panel - */ - private JPanel createConfigurationPanel() - { - JPanel p = new JPanel(); - p.setLayout(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - c.weightx = 1; - c.weighty = 0; - c.fill = GridBagConstraints.HORIZONTAL; - Insets labelInsets = new Insets(0, 0, 11, 6); - Insets buttonInsets = new Insets(0, 0, 11, 0); - - // Primary 1 - JLabel primary1Label = new JLabel("Primary 1:"); - c.gridx = 0; - c.gridy = 0; - c.insets = labelInsets; - p.add(primary1Label, c); - - Icon p1Icon = new ColorIcon(theme.getPrimary1()); - JButton primary1Button = new JButton(p1Icon); - primary1Button.addActionListener(new ChooseColorAction(primary1Button, - PRIMARY1)); - //c.weightx = 0; - c.gridx = 1; - c.insets = buttonInsets; - p.add(primary1Button, c); - primary1Label.setLabelFor(primary1Button); - - // Primary 2 - JLabel primary2Label = new JLabel("Primary 2:"); - c.gridx = 0; - c.gridy = 1; - c.insets = labelInsets; - p.add(primary2Label, c); - - Icon p2Icon = new ColorIcon(theme.getPrimary2()); - JButton primary2Button = new JButton(p2Icon); - primary2Button.addActionListener(new ChooseColorAction(primary2Button, - PRIMARY2)); - c.gridx = 1; - c.insets = buttonInsets; - p.add(primary2Button, c); - primary2Label.setLabelFor(primary2Button); - - // Primary 3 - JLabel primary3Label = new JLabel("Primary 3:"); - c.gridx = 0; - c.gridy = 2; - c.insets = labelInsets; - p.add(primary3Label, c); - - Icon p3Icon = new ColorIcon(theme.getPrimary3()); - JButton primary3Button = new JButton(p3Icon); - primary3Button.addActionListener(new ChooseColorAction(primary3Button, - PRIMARY3)); - c.gridx = 1; - c.insets = buttonInsets; - p.add(primary3Button, c); - primary3Label.setLabelFor(primary3Button); - - // Secondary 1 - JLabel secondary1Label = new JLabel("Secondary 1:"); - c.gridx = 0; - c.gridy = 3; - c.insets = labelInsets; - p.add(secondary1Label, c); - - Icon s1Icon = new ColorIcon(theme.getSecondary1()); - JButton secondary1Button = new JButton(s1Icon); - secondary1Button.addActionListener(new ChooseColorAction(secondary1Button, - SECONDARY1)); - c.gridx = 1; - c.insets = buttonInsets; - p.add(secondary1Button, c); - secondary1Label.setLabelFor(secondary1Button); - - // Secondary 2 - JLabel secondary2Label = new JLabel("Secondary 2:"); - c.gridx = 0; - c.gridy = 4; - c.insets = labelInsets; - p.add(secondary2Label, c); - - Icon s2Icon = new ColorIcon(theme.getSecondary2()); - JButton secondary2Button = new JButton(s2Icon); - secondary2Button.addActionListener(new ChooseColorAction(secondary2Button, - SECONDARY2)); - c.gridx = 1; - c.insets = buttonInsets; - p.add(secondary2Button, c); - secondary2Label.setLabelFor(secondary2Button); - - // Secondary 3 - JLabel secondary3Label = new JLabel("Secondary 3:"); - c.gridx = 0; - c.gridy = 5; - c.insets = labelInsets; - p.add(secondary3Label, c); - - Icon s3Icon = new ColorIcon(theme.getSecondary3()); - JButton secondary3Button = new JButton(s3Icon); - secondary3Button.addActionListener(new ChooseColorAction(secondary3Button, - SECONDARY3)); - c.gridx = 1; - c.insets = buttonInsets; - p.add(secondary3Button, c); - secondary3Label.setLabelFor(secondary3Button); - - return p; - } - - /** - * Creates the button panel at the bottom of the MetalThemeEditor. - * - * @return the button panel - */ - private JPanel createButtonPanel() - { - JPanel p = new JPanel(); - p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); - p.add(Box.createHorizontalGlue()); - - JButton applyButton = new JButton("Apply"); - applyButton.addActionListener - (new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - try - { - CustomizableTheme copy = (CustomizableTheme) theme.clone(); - MetalLookAndFeel.setCurrentTheme(copy); - UIManager.setLookAndFeel(new MetalLookAndFeel()); - Window w = SwingUtilities.getWindowAncestor(MetalThemeEditor.this); - SwingUtilities.updateComponentTreeUI(w); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - }); - p.add(applyButton); - - p.add(Box.createHorizontalStrut(5)); - - JButton exportButton = new JButton("Export as Java File"); - exportButton.addActionListener - (new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - export(); - } - }); - p.add(exportButton); - - return p; - } - - /** - * Exports the current theme as Java source file. This will prompt the user - * to choose a filename. - */ - void export() - { - JFileChooser chooser = new JFileChooser(); - int confirm = chooser.showSaveDialog(this); - if (confirm == JFileChooser.APPROVE_OPTION) - exportToFile(chooser.getSelectedFile()); - } - - /** - * Writes out the current configured Metal theme as Java source file. - * - * @param file the file to write into - */ - void exportToFile(File file) - { - String fileName = file.getName(); - if (! fileName.endsWith(".java")) - { - JOptionPane.showMessageDialog(this, - "Filename does not denote a Java source file", - "Invalid filename", - JOptionPane.ERROR_MESSAGE); - return; - } - - String className = fileName.substring(0, fileName.length() - 5); - Color p1 = theme.getPrimary1(); - Color p2 = theme.getPrimary2(); - Color p3 = theme.getPrimary3(); - Color s1 = theme.getSecondary1(); - Color s2 = theme.getSecondary2(); - Color s3 = theme.getSecondary3(); - - try - { - FileOutputStream out = new FileOutputStream(file); - Writer writer = new OutputStreamWriter(out); - writer.write("import javax.swing.plaf.ColorUIResource;\n"); - writer.write("import javax.swing.plaf.metal.DefaultMetalTheme;\n"); - writer.write("public class " + className + " extends DefaultMetalTheme\n"); - writer.write("{\n"); - writer.write(" protected ColorUIResource getPrimary1()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + p1.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write(" protected ColorUIResource getPrimary2()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + p2.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write(" protected ColorUIResource getPrimary3()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + p3.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write(" protected ColorUIResource getSecondary1()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + s1.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write(" protected ColorUIResource getSecondary2()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + s2.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write(" protected ColorUIResource getSecondary3()\n"); - writer.write(" {\n"); - writer.write(" return new ColorUIResource(" + s3.getRGB() + ");\n"); - writer.write(" }\n"); - writer.write("}\n"); - writer.close(); - out.close(); - } - catch (FileNotFoundException ex) - { - ex.printStackTrace(); - } - catch (IOException ex) - { - ex.printStackTrace(); - } - - } - - /** - * Returns the color of the theme with the specified type. For the possible - * types see the constants of this class. - * - * @param colorType the color type to fetch from the theme - * - * @return the current color of the specified type - * - * @throws IllegalArgumentException for illegal color types - */ - Color getColor(int colorType) - { - Color color = null; - switch (colorType) - { - case PRIMARY1: - color = theme.getPrimary1(); - break; - case PRIMARY2: - color = theme.getPrimary2(); - break; - case PRIMARY3: - color = theme.getPrimary3(); - break; - case SECONDARY1: - color = theme.getSecondary1(); - break; - case SECONDARY2: - color = theme.getSecondary2(); - break; - case SECONDARY3: - color = theme.getSecondary3(); - break; - default: - throw new IllegalArgumentException("Unknown color type: " + colorType); - } - return color; - } - - /** - * Sets the color of the specified type in the current theme. - * - * @param colorType the color type - * @param color the color to set - * - * @throws IllegalArgumentException for illegal color types - */ - void setColor(int colorType, Color color) - { - switch (colorType) - { - case PRIMARY1: - theme.setPrimary1(color); - break; - case PRIMARY2: - theme.setPrimary2(color); - break; - case PRIMARY3: - theme.setPrimary3(color); - break; - case SECONDARY1: - theme.setSecondary1(color); - break; - case SECONDARY2: - theme.setSecondary2(color); - break; - case SECONDARY3: - theme.setSecondary3(color); - break; - default: - throw new IllegalArgumentException("Illegal color type: " + colorType); - } - } - - /** - * The entry point to the application. - * - * @param args ignored - */ - public static void main(String[] args) - { - JFrame f = new JFrame("MetalThemeEditor"); - f.setContentPane(new MetalThemeEditor()); - f.pack(); - f.setVisible(true); - } - - /** - * Returns a DemoFactory that creates a MetalThemeEditor. - * - * @return a DemoFactory that creates a MetalThemeEditor - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new MetalThemeEditor(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java deleted file mode 100644 index aa84248..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java +++ /dev/null @@ -1,233 +0,0 @@ -/* MiniDemo.java -- A Swing demo suitable for embedded environments - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Font; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JFrame; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; -import javax.swing.plaf.metal.DefaultMetalTheme; -import javax.swing.plaf.metal.MetalIconFactory; -import javax.swing.plaf.metal.MetalLookAndFeel; - -/** - * A Swing demo suitable for embedded environments (e.g. small display, - * b/w graphics etc). - * - * @author Roman Kennke (kennke@aicas.com) - */ -public class MiniDemo extends JFrame -{ - - /** - * Creates a new MiniDemo instance. - */ - MiniDemo() - { - createGUI(); - } - - private void createGUI() - { - JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP, - JTabbedPane.SCROLL_TAB_LAYOUT); - - // Setup scrolling list in first tab. - Object[] listData = new Object[]{"Milk", "Beer", "Wine", "Water", - "Orange juice", "Tea", "Coffee", "Whiskey", - "Lemonade", "Apple juice", "Gin Tonic", - "Pangalactic Garleblaster", "Coke"}; - JList list = new JList(listData); - JScrollPane sp = new JScrollPane(list); - tabPane.addTab("List", sp); - - // Setup some buttons in the second tab. - JPanel buttonPanel = new JPanel(); - buttonPanel.setLayout(new GridLayout(4, 1)); - // JButtons - JPanel jButtonPanel = new JPanel(); - jButtonPanel.setLayout(new BorderLayout()); - final JCheckBox buttonState1 = new JCheckBox("Enabled", true); - jButtonPanel.add(buttonState1, BorderLayout.EAST); - JPanel jButtonContainer = new JPanel(); - final JButton jButton1 = new JButton("JButton"); - final JButton jButton2 = - new JButton(MetalIconFactory.getInternalFrameDefaultMenuIcon()); - jButtonContainer.add(jButton1); - jButtonContainer.add(jButton2); - jButtonPanel.add(jButtonContainer, BorderLayout.CENTER); - buttonState1.addActionListener( - new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - boolean enabled = buttonState1.isSelected(); - jButton1.setEnabled(enabled); - jButton2.setEnabled(enabled); - } - }); - buttonPanel.add(jButtonPanel); - // JToggleButtons - JPanel jToggleButtonPanel = new JPanel(); - jToggleButtonPanel.setLayout(new BorderLayout()); - final JCheckBox buttonState2 = new JCheckBox("Enabled", true); - jToggleButtonPanel.add(buttonState2, BorderLayout.EAST); - JPanel jToggleButtonContainer = new JPanel(); - final JButton jToggleButton1 = new JButton("JToggleButton"); - final JButton jToggleButton2 = - new JButton(MetalIconFactory.getInternalFrameDefaultMenuIcon()); - jToggleButtonContainer.add(jToggleButton1); - jToggleButtonContainer.add(jToggleButton2); - jToggleButtonPanel.add(jToggleButtonContainer, BorderLayout.CENTER); - buttonState2.addActionListener( - new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - boolean enabled = buttonState2.isSelected(); - jToggleButton1.setEnabled(enabled); - jToggleButton2.setEnabled(enabled); - } - }); - buttonPanel.add(jToggleButtonPanel); - tabPane.addTab("Buttons", buttonPanel); - - // ComboBoxes - JPanel comboBoxPanel = new JPanel(); - JComboBox comboBox = new JComboBox(listData); - comboBoxPanel.add(comboBox); - tabPane.add("ComboBox", comboBoxPanel); - - // TextFields - JPanel textFieldPanel = new JPanel(); - textFieldPanel.setLayout(new BoxLayout(textFieldPanel, BoxLayout.Y_AXIS)); - textFieldPanel.add(Box.createVerticalStrut(70)); - JPanel leftAlignedPanel = new JPanel(new BorderLayout()); - JPanel textFieldPanel1 = new JPanel(); - textFieldPanel1.setLayout(new BoxLayout(textFieldPanel1, - BoxLayout.X_AXIS)); - final JTextField textfield1 = new JTextField("Hello World!"); - textfield1.setHorizontalAlignment(JTextField.LEFT); - textfield1.setFont(new Font("Dialog", Font.PLAIN, 8)); - textFieldPanel1.add(textfield1); - final JTextField textfield2 = new JTextField("Hello World!"); - textfield2.setHorizontalAlignment(JTextField.LEFT); - textfield2.setFont(new Font("Dialog", Font.ITALIC, 12)); - textFieldPanel1.add(textfield2); - final JTextField textfield3 = new JTextField("Hello World!"); - textfield3.setHorizontalAlignment(JTextField.LEFT); - textfield3.setFont(new Font("Dialog", Font.BOLD, 14)); - textFieldPanel1.add(textfield3); - leftAlignedPanel.add(textFieldPanel1); - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - final JCheckBox enabled1 = new JCheckBox("enabled"); - enabled1.setSelected(true); - enabled1.addActionListener( - new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - boolean enabled = enabled1.isSelected(); - textfield1.setEnabled(enabled); - textfield2.setEnabled(enabled); - textfield3.setEnabled(enabled); - } - }); - statePanel.add(enabled1); - final JCheckBox editable1 = new JCheckBox("editable"); - editable1.setSelected(true); - editable1.addActionListener( - new ActionListener() - { - public void actionPerformed(ActionEvent ev) - { - boolean editable = editable1.isSelected(); - textfield1.setEditable(editable); - textfield2.setEditable(editable); - textfield3.setEditable(editable); - } - }); - statePanel.add(editable1); - statePanel.add(Box.createVerticalGlue()); - leftAlignedPanel.add(statePanel, BorderLayout.EAST); - textFieldPanel.add(leftAlignedPanel); - System.err.println(leftAlignedPanel.getPreferredSize()); - textFieldPanel.add(Box.createVerticalStrut(70)); - //panel.add(rightAlignedPanel); - tabPane.add("TextField", textFieldPanel); - setContentPane(tabPane); - } - - /** - * Starts the demo application. - * - * @param args the command line arguments (ignored) - */ - public static void main(String[] args) - { - SwingUtilities.invokeLater(new Runnable() { - public void run() - { - MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); - MiniDemo demo = new MiniDemo(); - demo.setSize(320, 200); - demo.setUndecorated(true); - demo.setVisible(true); - demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - } - }); - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java deleted file mode 100644 index 761c575..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java +++ /dev/null @@ -1,205 +0,0 @@ -/* NavigationFilterDemo.java -- An example for the NavigationFilter class. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JTextArea; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; -import javax.swing.text.BadLocationException; -import javax.swing.text.JTextComponent; -import javax.swing.text.NavigationFilter; -import javax.swing.text.Position; -import javax.swing.text.Utilities; - -/** - * A demonstration of the <code>javax.swing.text.NavigationFilter</code> class. - * - * <p>It shows a NavigationFilter which lets you walk word-wise - * through a text.</p> - * - * @author Robert Schuster - */ -public class NavigationFilterDemo - extends JPanel - implements ActionListener -{ - - JTextArea textArea; - - /** - * Creates a new demo instance. - */ - public NavigationFilterDemo() - { - createContent(); - // initFrameContent() is only called (from main) when running this app - // standalone - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - private void createContent() - { - setLayout(new BorderLayout()); - - add(textArea = new JTextArea(10, 20)); - - textArea.setWrapStyleWord(true); - - textArea.setLineWrap(true); - - textArea.setNavigationFilter(new WordFilter()); - - textArea.setText("GNU Classpath, Essential Libraries for Java, " + - "is a GNU project to create free core class " + - "libraries for use with virtual machines and " + - "compilers for the java programming language."); - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - System.exit(0); - - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - NavigationFilterDemo app = new NavigationFilterDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("NavigationFilterDemo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - } - }); - } - - /** - * Returns a DemoFactory that creates a NavigationFilterDemo. - * - * @return a DemoFactory that creates a NavigationFilterDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new NavigationFilterDemo(); - } - }; - } - - class WordFilter extends NavigationFilter - { - public int getNextVisualPositionFrom(JTextComponent text, - int pos, - Position.Bias bias, - int direction, - Position.Bias[] biasRet) - throws BadLocationException - { - Point pt; - - int newpos = pos; - switch (direction) - { - case SwingConstants.NORTH: - // Find out where the caret want to be positioned ideally. - pt = text.getCaret().getMagicCaretPosition(); - - // Calculate its position above. - newpos = Utilities.getPositionAbove(text, pos, (pt != null) ? pt.x : 0); - - // If we have a valid position, then calculate the next word start - // from there. - if (newpos != -1) - return Utilities.getWordStart(text, newpos); - else - return pos; - case SwingConstants.SOUTH: - // Find out where the caret want to be positioned ideally. - pt = text.getCaret().getMagicCaretPosition(); - - // Calculate its position below. - newpos = Utilities.getPositionBelow(text, pos, (pt != null) ? pt.x : 0); - - // If we have a valid position, then calculate the next word start - // from there. - if (newpos != -1) - return Utilities.getWordStart(text, newpos); - else - return pos; - case SwingConstants.WEST: - // Calculate the next word start. - newpos = Utilities.getWordStart(text, newpos); - - // If that means that the caret will not move, return - // the start of the previous word. - if (newpos != pos) - return newpos; - else - return Utilities.getPreviousWord(text, newpos); - case SwingConstants.EAST: - return Utilities.getNextWord(text, newpos); - default: - // Do whatever the super implementation did. - return super.getNextVisualPositionFrom(text, pos, bias, - direction, biasRet); - } - } - - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ProgressBarDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ProgressBarDemo.java deleted file mode 100644 index 1391a00..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/ProgressBarDemo.java +++ /dev/null @@ -1,239 +0,0 @@ -/* ProgressBarDemo.java -- A demonstration of JProgressBars - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.JSlider; -import javax.swing.SwingUtilities; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -public class ProgressBarDemo - extends JPanel - implements ActionListener -{ - - /** - * Creates a new ProgressBarDemo window with the specified title. - */ - ProgressBarDemo() - { - super(); - createContent(); - } - - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel); - } - - private void createContent() - { - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - JPanel horizontalProgressBar = createHorizontalProgressBar(); - add(horizontalProgressBar); - add(Box.createVerticalStrut(10)); - JPanel verticalProgressBar = createVerticalProgressBar(); - add(verticalProgressBar); - } - - private static JPanel createHorizontalProgressBar() - { - JPanel panel = new JPanel(); - panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - - // Plain progress bar. - final JProgressBar hor1 = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); - panel.add(hor1); - final JSlider slider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 0); - slider1.addChangeListener(new ChangeListener() - { - public void stateChanged(ChangeEvent event) - { - hor1.setValue(slider1.getValue()); - } - }); - panel.add(slider1); - - panel.add(Box.createVerticalStrut(5)); - - // Plain progress bar with some text. - final JProgressBar hor2 = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); - hor2.setString("ProgressBar Demo"); - hor2.setStringPainted(true); - panel.add(hor2); - final JSlider slider2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 0); - slider2.addChangeListener(new ChangeListener() - { - public void stateChanged(ChangeEvent event) - { - hor2.setValue(slider2.getValue()); - } - }); - panel.add(slider2); - - panel.add(Box.createVerticalStrut(5)); - - // Indeterminate progress bar. - final JProgressBar hor3 = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); - hor3.setIndeterminate(true); - panel.add(hor3); - - panel.add(Box.createVerticalStrut(5)); - - // Indeterminate progress bar with text. - final JProgressBar hor4 = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); - hor4.setIndeterminate(true); - hor4.setString("Indeterminate ProgressBar"); - hor4.setStringPainted(true); - panel.add(hor4); - - return panel; - } - - private static JPanel createVerticalProgressBar() - { - JPanel panel = new JPanel(); - panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); - final JProgressBar vert = new JProgressBar(JProgressBar.VERTICAL, 0, 100); - panel.add(vert); - final JSlider slider = new JSlider(JSlider.VERTICAL, 0, 100, 0); - slider.addChangeListener(new ChangeListener() - { - public void stateChanged(ChangeEvent event) - { - vert.setValue(slider.getValue()); - } - }); - panel.add(slider); - - panel.add(Box.createHorizontalStrut(5)); - - final JProgressBar vert2 = new JProgressBar(JProgressBar.VERTICAL, 0, 100); - vert2.setString("ProgressBar Demo"); - panel.add(vert2); - vert2.setStringPainted(true); - final JSlider slider2 = new JSlider(JSlider.VERTICAL, 0, 100, 0); - slider2.addChangeListener(new ChangeListener() - { - public void stateChanged(ChangeEvent event) - { - vert2.setValue(slider2.getValue()); - } - }); - panel.add(slider2); - - panel.add(Box.createHorizontalStrut(5)); - - // Indeterminate progress bar. - final JProgressBar vert3 = new JProgressBar(JProgressBar.VERTICAL, 0, 100); - vert3.setIndeterminate(true); - panel.add(vert3); - - panel.add(Box.createHorizontalStrut(5)); - - // Indeterminate progress bar with text. - final JProgressBar vert4 = new JProgressBar(JProgressBar.VERTICAL, 0, 100); - vert4.setIndeterminate(true); - vert4.setString("Indeterminate ProgressBar"); - vert4.setStringPainted(true); - panel.add(vert4); - return panel; - } - - public void actionPerformed(ActionEvent event) - { - if (event.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - /** - * The entry point when running as a standalone program. - * - * @param args command line arguments - */ - public static void main(String[] args) - { - SwingUtilities.invokeLater( - new Runnable() - { - public void run() - { - ProgressBarDemo app = new ProgressBarDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("ProgressBar Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a ProgressBarDemo. - * - * @return a DemoFactory that creates a ProgressBarDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new ProgressBarDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java deleted file mode 100644 index ac500d6..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java +++ /dev/null @@ -1,174 +0,0 @@ -/* ScrollBarDemo.java -- An example showing scroll bars in Swing. - Copyright (C) 2005, 2006, Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollBar; -import javax.swing.SwingUtilities; - -/** - * A simple scroll bar demo showing various scroll bars in different states. - */ -public class ScrollBarDemo - extends JPanel - implements ActionListener -{ - - /** - * Creates a new demo instance. - */ - public ScrollBarDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = createScrollBarPanel(); - add(panel); - } - - private JPanel createScrollBarPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - - JPanel horizontalPanel = new JPanel(); - - JScrollBar scroll1a = new JScrollBar(JScrollBar.HORIZONTAL); - JScrollBar scroll1b = new JScrollBar(JScrollBar.HORIZONTAL); - scroll1b.setEnabled(false); - JScrollBar scroll1c = new JScrollBar(JScrollBar.HORIZONTAL); - scroll1c.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); - JScrollBar scroll1d = new JScrollBar(JScrollBar.HORIZONTAL); - scroll1d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); - scroll1d.setEnabled(false); - horizontalPanel.add(scroll1a); - horizontalPanel.add(scroll1b); - horizontalPanel.add(scroll1c); - horizontalPanel.add(scroll1d); - - panel.add(horizontalPanel, BorderLayout.NORTH); - - JPanel verticalPanel = new JPanel(); - verticalPanel.setLayout(new GridLayout(1, 7)); - - JScrollBar scroll2a = new JScrollBar(JScrollBar.VERTICAL); - JScrollBar scroll2b = new JScrollBar(JScrollBar.VERTICAL); - scroll2b.setEnabled(false); - JScrollBar scroll2c = new JScrollBar(JScrollBar.VERTICAL); - scroll2c.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); - JScrollBar scroll2d = new JScrollBar(JScrollBar.VERTICAL); - scroll2d.setEnabled(false); - scroll2d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); - - verticalPanel.add(scroll2a); - verticalPanel.add(new JPanel()); - verticalPanel.add(scroll2b); - verticalPanel.add(new JPanel()); - verticalPanel.add(scroll2c); - verticalPanel.add(new JPanel()); - verticalPanel.add(scroll2d); - - panel.add(verticalPanel, BorderLayout.EAST); - - JPanel centerPanel = new JPanel(new GridLayout(1, 2)); - centerPanel.add(new JScrollBar(JScrollBar.HORIZONTAL)); - centerPanel.add(new JScrollBar(JScrollBar.VERTICAL)); - panel.add(centerPanel); - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - ScrollBarDemo app = new ScrollBarDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("ScrollBar Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - }}); - } - - /** - * Returns a DemoFactory that creates a ScrollBarDemo. - * - * @return a DemoFactory that creates a ScrollBarDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new ScrollBarDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java deleted file mode 100644 index 76d68c9..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java +++ /dev/null @@ -1,287 +0,0 @@ -/* SliderDemo.java -- An example showing JSlider in various configurations. - Copyright (C) 2005, 2006, Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JSlider; -import javax.swing.SwingUtilities; - -public class SliderDemo - extends JPanel - implements ActionListener -{ - - JSlider hslider1; - JSlider hslider2; - JSlider hslider3; - JSlider hslider4; - JSlider hslider5; - JSlider hslider6; - JSlider hslider7; - JSlider hslider8; - - JSlider vslider1; - JSlider vslider2; - JSlider vslider3; - JSlider vslider4; - JSlider vslider5; - JSlider vslider6; - JSlider vslider7; - JSlider vslider8; - - JCheckBox enabledCheckBox; - - public SliderDemo() - { - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = new JPanel(new GridLayout(1, 2)); - panel.add(createHorizontalPanel()); - panel.add(createVerticalPanel()); - enabledCheckBox = new JCheckBox("Enabled"); - enabledCheckBox.setSelected(true); - enabledCheckBox.setActionCommand("TOGGLE_ENABLED"); - enabledCheckBox.addActionListener(this); - JPanel checkBoxPanel = new JPanel(); - checkBoxPanel.add(enabledCheckBox); - JPanel panel2 = new JPanel(new BorderLayout()); - panel2.add(panel); - panel2.add(checkBoxPanel, BorderLayout.SOUTH); - add(panel2); - } - - private JPanel createHorizontalPanel() - { - JPanel panel = new JPanel(new GridLayout(8, 1)); - - hslider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - panel.add(hslider1); - - hslider2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider2.setMajorTickSpacing(20); - hslider2.setMinorTickSpacing(5); - hslider2.setPaintTicks(true); - panel.add(hslider2); - - hslider3 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider3.setMajorTickSpacing(20); - hslider3.setMinorTickSpacing(5); - hslider3.setPaintLabels(true); - hslider3.setPaintTicks(true); - panel.add(hslider3); - - hslider4 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider4.putClientProperty("JSlider.isFilled", Boolean.TRUE); - hslider4.setMajorTickSpacing(20); - hslider4.setMinorTickSpacing(5); - hslider4.setPaintLabels(true); - hslider4.setPaintTicks(true); - panel.add(hslider4); - - hslider5 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider5.setInverted(true); - panel.add(hslider5); - - hslider6 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider6.setInverted(true); - hslider6.setMajorTickSpacing(20); - hslider6.setMinorTickSpacing(5); - hslider6.setPaintTicks(true); - panel.add(hslider6); - - hslider7 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider7.setInverted(true); - hslider7.setMajorTickSpacing(20); - hslider7.setMinorTickSpacing(5); - hslider7.setPaintLabels(true); - hslider7.setPaintTicks(true); - panel.add(hslider7); - - hslider8 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); - hslider8.putClientProperty("JSlider.isFilled", Boolean.TRUE); - hslider8.setInverted(true); - hslider8.setMajorTickSpacing(20); - hslider8.setMinorTickSpacing(5); - hslider8.setPaintLabels(true); - hslider8.setPaintTicks(true); - panel.add(hslider8); - - return panel; - } - - private JPanel createVerticalPanel() - { - JPanel panel = new JPanel(new GridLayout(1, 8)); - - vslider1 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - panel.add(vslider1); - - vslider2 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider2.setMajorTickSpacing(20); - vslider2.setMinorTickSpacing(5); - vslider2.setPaintTicks(true); - panel.add(vslider2); - - vslider3 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider3.setMajorTickSpacing(20); - vslider3.setMinorTickSpacing(5); - vslider3.setPaintLabels(true); - vslider3.setPaintTicks(true); - panel.add(vslider3); - - vslider4 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider4.putClientProperty("JSlider.isFilled", Boolean.TRUE); - vslider4.setMajorTickSpacing(20); - vslider4.setMinorTickSpacing(5); - vslider4.setPaintLabels(true); - vslider4.setPaintTicks(true); - panel.add(vslider4); - - vslider5 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider5.setInverted(true); - panel.add(vslider5); - - vslider6 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider6.setInverted(true); - vslider6.setMajorTickSpacing(20); - vslider6.setMinorTickSpacing(5); - vslider6.setPaintTicks(true); - panel.add(vslider6); - - vslider7 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider7.setInverted(true); - vslider7.setMajorTickSpacing(20); - vslider7.setMinorTickSpacing(5); - vslider7.setPaintLabels(true); - vslider7.setPaintTicks(true); - panel.add(vslider7); - - vslider8 = new JSlider(JSlider.VERTICAL, 0, 100, 35); - vslider8.putClientProperty("JSlider.isFilled", Boolean.TRUE); - vslider8.setInverted(true); - vslider8.setMajorTickSpacing(20); - vslider8.setMinorTickSpacing(5); - vslider8.setPaintLabels(true); - vslider8.setPaintTicks(true); - panel.add(vslider8); - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - else if (e.getActionCommand().equals("TOGGLE_ENABLED")) - { - boolean enabled = enabledCheckBox.isSelected(); - hslider1.setEnabled(enabled); - hslider2.setEnabled(enabled); - hslider3.setEnabled(enabled); - hslider4.setEnabled(enabled); - hslider5.setEnabled(enabled); - hslider6.setEnabled(enabled); - hslider7.setEnabled(enabled); - hslider8.setEnabled(enabled); - vslider1.setEnabled(enabled); - vslider2.setEnabled(enabled); - vslider3.setEnabled(enabled); - vslider4.setEnabled(enabled); - vslider5.setEnabled(enabled); - vslider6.setEnabled(enabled); - vslider7.setEnabled(enabled); - vslider8.setEnabled(enabled); - } - } - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - SliderDemo app = new SliderDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("Slider Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - - /** - * Returns a DemoFactory that creates a SliderDemo. - * - * @return a DemoFactory that creates a SliderDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new SliderDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java deleted file mode 100644 index abf72bc..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java +++ /dev/null @@ -1,235 +0,0 @@ -/* SpinnerDemo.java -- An example showing various spinners in Swing. - Copyright (C) 2006, Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Font; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Calendar; -import java.util.Date; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JSpinner; -import javax.swing.SpinnerDateModel; -import javax.swing.SpinnerListModel; -import javax.swing.SpinnerNumberModel; -import javax.swing.SwingUtilities; - -/** - * A simple demo showing various spinners in different states. - */ -public class SpinnerDemo - extends JPanel - implements ActionListener -{ - private JCheckBox spinnerState1; - private JSpinner spinner1; - private JSpinner spinner2; - - private JCheckBox spinnerState2; - private JSpinner spinner3; - private JSpinner spinner4; - - private JCheckBox spinnerState3; - private JSpinner spinner5; - private JSpinner spinner6; - - /** - * Creates a new demo instance. - */ - public SpinnerDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = new JPanel(new GridLayout(3, 1)); - panel.add(createPanel1()); - panel.add(createPanel2()); - panel.add(createPanel3()); - add(panel); - } - - private JPanel createPanel1() - { - JPanel panel = new JPanel(new BorderLayout()); - this.spinnerState1 = new JCheckBox("Enabled", true); - this.spinnerState1.setActionCommand("COMBO_STATE1"); - this.spinnerState1.addActionListener(this); - panel.add(this.spinnerState1, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder( - "Number Spinner: ")); - this.spinner1 = new JSpinner(new SpinnerNumberModel(5.0, 0.0, 10.0, 0.5)); - this.spinner2 = new JSpinner(new SpinnerNumberModel(50, 0, 100, 5)); - this.spinner2.setFont(new Font("Dialog", Font.PLAIN, 20)); - controlPanel.add(this.spinner1); - controlPanel.add(this.spinner2); - - panel.add(controlPanel); - - return panel; - } - - private JPanel createPanel2() - { - JPanel panel = new JPanel(new BorderLayout()); - this.spinnerState2 = new JCheckBox("Enabled", true); - this.spinnerState2.setActionCommand("COMBO_STATE2"); - this.spinnerState2.addActionListener(this); - panel.add(this.spinnerState2, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("Date Spinner: ")); - this.spinner3 = new JSpinner(new SpinnerDateModel(new Date(), null, null, - Calendar.DATE)); - - this.spinner4 = new JSpinner(new SpinnerDateModel(new Date(), null, null, - Calendar.YEAR)); - this.spinner4.setFont(new Font("Dialog", Font.PLAIN, 20)); - - controlPanel.add(this.spinner3); - controlPanel.add(this.spinner4); - - panel.add(controlPanel); - - return panel; - } - - private JPanel createPanel3() - { - JPanel panel = new JPanel(new BorderLayout()); - this.spinnerState3 = new JCheckBox("Enabled", true); - this.spinnerState3.setActionCommand("COMBO_STATE3"); - this.spinnerState3.addActionListener(this); - panel.add(this.spinnerState3, BorderLayout.EAST); - - JPanel controlPanel = new JPanel(); - controlPanel.setBorder(BorderFactory.createTitledBorder("List Spinner: ")); - this.spinner5 = new JSpinner(new SpinnerListModel(new Object[] {"Red", - "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); - - this.spinner6 = new JSpinner(new SpinnerListModel(new Object[] {"Red", - "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); - this.spinner6.setValue("Yellow"); - this.spinner6.setFont(new Font("Dialog", Font.PLAIN, 20)); - - controlPanel.add(this.spinner5); - controlPanel.add(this.spinner6); - - panel.add(controlPanel); - - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("COMBO_STATE1")) - { - spinner1.setEnabled(spinnerState1.isSelected()); - spinner2.setEnabled(spinnerState1.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE2")) - { - spinner3.setEnabled(spinnerState2.isSelected()); - spinner4.setEnabled(spinnerState2.isSelected()); - } - else if (e.getActionCommand().equals("COMBO_STATE3")) - { - spinner5.setEnabled(spinnerState3.isSelected()); - spinner6.setEnabled(spinnerState3.isSelected()); - } - else if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - SpinnerDemo app = new SpinnerDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("Spinner Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a SpinnerDemo. - * - * @return a DemoFactory that creates a SpinnerDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new SpinnerDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java deleted file mode 100644 index 7cf02ce..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java +++ /dev/null @@ -1,256 +0,0 @@ -/* TabbedPaneDemo.java -- Demonstrates JTabbedPane - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextArea; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; - -public class TabbedPaneDemo - extends JPanel - implements ActionListener -{ - static Color[] colors = { Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, - Color.MAGENTA, Color.ORANGE, Color.PINK, - Color.ORANGE, Color.RED, Color.BLUE, Color.YELLOW - }; - TabbedPaneDemo() - { - super(); - createContent(); - } - - private void createContent() - { - JPanel p = new JPanel(); - p.setLayout(new GridLayout(1, 1)); - - int COUNT = 25; - JTabbedPane tp = createTabbedPane(SwingConstants.TOP, "tab", COUNT); - p.add(tp); - - final JPopupMenu popup = new JPopupMenu(); - - JMenu menu = new JMenu("tab placement"); - menu.add(createPlacementChangingMenuItem("top", - SwingConstants.TOP, - tp)); - - menu.add(createPlacementChangingMenuItem("bottom", - SwingConstants.BOTTOM, - tp)); - - menu.add(createPlacementChangingMenuItem("left", - SwingConstants.LEFT, - tp)); - - menu.add(createPlacementChangingMenuItem("right", - SwingConstants.RIGHT, - tp)); - popup.add(menu); - - menu = new JMenu("tab layout"); - menu.add(createLayoutPolicyChangingMenuItem("wrapping tabs", - JTabbedPane.WRAP_TAB_LAYOUT, - tp)); - - menu.add(createLayoutPolicyChangingMenuItem("scrolling tabs", - JTabbedPane.SCROLL_TAB_LAYOUT, - tp)); - popup.add(menu); - - tp.addMouseListener(new MouseAdapter() - { - public void mousePressed(MouseEvent e) { - showPopup(e); - } - - public void mouseReleased(MouseEvent e) { - showPopup(e); - } - - void showPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - popup.show(e.getComponent(), e.getX(), e.getY()); - } - } - }); - - setLayout(new BorderLayout()); - add(p, BorderLayout.CENTER); - - } - - private JMenuItem createPlacementChangingMenuItem(String t, - final int v, - final JTabbedPane dst) - { - JMenuItem item = new JMenuItem(t); - - item.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - dst.setTabPlacement(v); - } - }); - - return item; - } - - private JMenuItem createLayoutPolicyChangingMenuItem(String t, - final int v, - final JTabbedPane dst) - { - JMenuItem item = new JMenuItem(t); - - item.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent ae) - { - dst.setTabLayoutPolicy(v); - } - }); - - return item; - } - - private JTabbedPane createTabbedPane(int direction, String name, int count) - { - JTabbedPane pane = new JTabbedPane(direction); - - for(int i = 0; i< count; i++) - { - pane.addTab(name + " " + i, createTabContent(name + " " + i)); - if (Math.random() >= 0.75) - pane.setEnabledAt(i, false); - } - - return pane; - } - - private JPanel createTabContent(String name) - { - JTextArea ta; - JPanel panel = new JPanel(); - panel.add(new JLabel(name)); - panel.add(new JButton(name)); - panel.add(new JScrollPane(ta = new JTextArea(5, 5))); - - ta.setBackground(colors[(int) (Math.random() * colors.length)]); - - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - TabbedPaneDemo app = new TabbedPaneDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("TabbedPane Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a TabbedPaneDemo. - * - * @return a DemoFactory that creates a TabbedPaneDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new TabbedPaneDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java deleted file mode 100644 index 6aa9ba5..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java +++ /dev/null @@ -1,410 +0,0 @@ -/* TableDemo.java -- Demonstrates the use of JTable. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import javax.swing.AbstractCellEditor; -import javax.swing.BorderFactory; -import javax.swing.DefaultCellEditor; -import javax.swing.Icon; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollBar; -import javax.swing.JScrollPane; -import javax.swing.JSlider; -import javax.swing.JTable; -import javax.swing.SwingUtilities; -import javax.swing.border.Border; -import javax.swing.plaf.metal.MetalIconFactory; -import javax.swing.table.DefaultTableColumnModel; -import javax.swing.table.DefaultTableModel; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; - -/** - * Displays the editable table. The first column consists of check boxes. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class TableDemo extends JPanel -{ - /** - * The initial row count for this table. - */ - static int rows = 32; - - /** - * The initial column count for this table. - */ - static int cols = 7; - - - /** - * The table model. - */ - class TModel extends DefaultTableModel - { - - /** - * All cells are editable in our table. - */ - public boolean isCellEditable(int row, int column) - { - return true; - } - - /** - * Get the number of the table rows. - */ - public int getRowCount() - { - return rows; - } - - /** - * Get the number of the table columns. - */ - public int getColumnCount() - { - return cols; - } - - /** - * Set the value at the given position - */ - public void setValueAt(Object aValue, int aRow, int aColumn) - { - values[aRow][aColumn] = aValue; - } - - /** - * Get the value at the given position. - */ - public Object getValueAt(int aRow, int aColumn) - { - return values[aRow][aColumn]; - } - - /** - * The column name, as suggested by model. This header should not be - * visible, as it is overridden by setting the header name with - * {@link TableColumn#setHeaderValue} in {@link TableDemo#createContent}. - */ - public String getColumnName(int column) - { - return "Error "+column; - } - - /** - * The first column contains booleans, the second - icons, - * others - default class. - */ - public Class getColumnClass(int column) - { - if (column == 0) - return Boolean.class; - else if (column == 1) - return Icon.class; - else - return super.getColumnClass(column); - } - } - - /** - * The scroll bar renderer. - */ - class SliderCell - extends AbstractCellEditor - implements TableCellEditor, TableCellRenderer - { - /** - * The editor bar. - */ - JSlider bar; - - /** - * The renderer bar. - */ - JSlider rendererBar; - - /** - * The border around the bar, if required. - */ - Border border = BorderFactory.createLineBorder(table.getGridColor()); - - SliderCell() - { - bar = new JSlider(); - bar.setOrientation(JScrollBar.HORIZONTAL); - bar.setMinimum(0); - bar.setMaximum(rows); - bar.setBorder(border); - - rendererBar = new JSlider(); - rendererBar.setMinimum(0); - rendererBar.setMaximum(rows); - rendererBar.setEnabled(false); - } - - /** - * Get the editor. - */ - public Component getTableCellEditorComponent(JTable table, Object value, - boolean isSelected, int row, - int column) - { - if (value instanceof Integer) - bar.setValue(((Integer) value).intValue()); - return bar; - } - - /** - * Get the renderer. - */ - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, - boolean hasFocus, int row, - int column) - { - rendererBar.setValue(((Integer) value).intValue()); - if (hasFocus) - rendererBar.setBorder(border); - else - rendererBar.setBorder(null); - return rendererBar; - } - - public Object getCellEditorValue() - { - return new Integer(bar.getValue()); - } - - } - - /** - * The table being displayed. - */ - JTable table = new JTable(); - - /** - * The table model. - */ - TModel model = new TModel(); - - /** - * The table value array. - */ - Object[][] values; - - /** - * The icons that appear in the icon column. - */ - Icon[] icons = new Icon[] - { - MetalIconFactory.getTreeComputerIcon(), - MetalIconFactory.getTreeHardDriveIcon(), - MetalIconFactory.getTreeFolderIcon(), - }; - - /** - * The choices in the combo boxes - */ - String [] sides = new String[] - { - "north", "south", "east", "west" - }; - - - /** - * Create the table demo with the given titel. - */ - public TableDemo() - { - super(); - createContent(); - } - - /** - * Returns a panel with the demo content. The panel uses a BorderLayout(), and - * the BorderLayout.SOUTH area is empty, to allow callers to add controls to - * the bottom of the panel if they want to (a close button is added if this - * demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - values = new Object[rows][]; - - for (int i = 0; i < values.length; i++) - { - values[i] = new Object[cols]; - for (int j = 3; j < cols; j++) - { - values[i][j] = "" + ((char) ('a' + j)) + i; - } - values [i][0] = i % 2 == 0? Boolean.TRUE : Boolean.FALSE; - values [i][1] = icons [ i % icons.length ]; - values [i][2] = sides [ i % sides.length ]; - values [i][4] = new Integer(i); - } - - table.setModel(model); - - // Make the columns with gradually increasing width: - DefaultTableColumnModel cm = new DefaultTableColumnModel(); - table.setColumnModel(cm); - - for (int i = 0; i < cols; i++) - { - TableColumn column = new TableColumn(i); - - // Showing the variable width columns. - int width = 100+10*i; - column.setPreferredWidth(width); - - // If we do not set the header value here, the value, returned - // by model, is used. - column.setHeaderValue("Width +"+(20*i)); - - cm.addColumn(column); - } - - setCustomEditors(); - setInformativeHeaders(); - - // Create the table, place it into scroll pane and place - // the pane into this frame. - JScrollPane scroll = new JScrollPane(); - - // The horizontal scroll bar is never needed. - scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - scroll.getViewport().add(table); - add(scroll, BorderLayout.CENTER); - - // Increase the row height to make the icons and sliders look better. - table.setRowHeight(table.getRowHeight()+2); - } - - /** - * Set the more informative column headers for specific columns. - */ - void setInformativeHeaders() - { - TableColumnModel cm = table.getColumnModel(); - - cm.getColumn(0).setHeaderValue("check"); - cm.getColumn(1).setHeaderValue("icon"); - cm.getColumn(2).setHeaderValue("combo"); - cm.getColumn(3).setHeaderValue("edit combo"); - cm.getColumn(4).setHeaderValue("slider"); - } - - /** - * Set the custom editors for combo boxes. This method also sets one - * custom renderer. - */ - void setCustomEditors() - { - TableColumnModel cm = table.getColumnModel(); - - // Set combo-box based editor for icons (note that no custom - // renderer is needed for JComboBox to work with icons. - JComboBox combo0 = new JComboBox(icons); - cm.getColumn(1).setCellEditor(new DefaultCellEditor(combo0)); - - // Set the simple combo box editor for the third column: - JComboBox combo1 = new JComboBox(sides); - cm.getColumn(2).setCellEditor(new DefaultCellEditor(combo1)); - - // Set the editable combo box for the forth column: - JComboBox combo2 = new JComboBox(sides); - combo2.setEditable(true); - cm.getColumn(3).setCellEditor(new DefaultCellEditor(combo2)); - - SliderCell scrollView = new SliderCell(); - cm.getColumn(4).setCellEditor(scrollView); - cm.getColumn(4).setCellRenderer(scrollView); - - table.setColumnModel(cm); - } - - /** - * The executable method to display the editable table. - * - * @param args - * unused. - */ - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - TableDemo demo = new TableDemo(); - JFrame frame = new JFrame(); - frame.getContentPane().add(demo); - frame.setSize(new Dimension(640, 100)); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a TableDemo. - * - * @return a DemoFactory that creates a TableDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new TableDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java deleted file mode 100644 index 5381f7e..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java +++ /dev/null @@ -1,620 +0,0 @@ -/* TextAreaDemo.java -- An example showing various textareas in Swing. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. - - This file is part of GNU Classpath examples. - - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.GridLayout; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextArea; -import javax.swing.SwingUtilities; -import javax.swing.text.BadLocationException; -import javax.swing.text.DefaultCaret; -import javax.swing.text.Highlighter; -import javax.swing.text.JTextComponent; -import javax.swing.text.View; -import javax.swing.text.LayeredHighlighter.LayerPainter; - -/** - * A simple textare demo showing various textareas in different states. - */ -public class TextAreaDemo - extends JPanel - implements ActionListener -{ - - /** - * A custom caret for demonstration purposes. This class is inspired by the - * CornerCaret from the OReilly Swing book. - * - * @author Roman Kennke (kennke@aicas.com) - */ - static class CornerCaret - extends DefaultCaret - { - public CornerCaret() - { - super(); - setBlinkRate(500); - } - - protected synchronized void damage(Rectangle r) - { - if (r == null) - return; - x = r.x; - y = r.y + (r.height * 4 / 5 - 3); - width = 5; - height = 5; - repaint(); - } - - public void paint(Graphics g) - { - JTextComponent comp = getComponent(); - if (comp == null) - return; - int dot = getDot(); - Rectangle r = null; - try - { - r = comp.modelToView(dot); - } - catch (BadLocationException e) - { - return; - } - if (r == null) - return; - int dist = r.height * 4 / 5 - 3; - if ((x != r.x) || (y != r.y + dist)) - { - repaint(); - x = r.x; - y = r.y + dist; - width = 5; - height = 5; - } - if (isVisible()) - { - g.drawLine(r.x, r.y + dist, r.x, r.y + dist + 4); - g.drawLine(r.x, r.y + dist + 4, r.x + 4, r.y + dist + 4); - } - } - } - - static class DemoHighlightPainter - extends LayerPainter - { - static DemoHighlightPainter INSTANCE = new DemoHighlightPainter(); - - static Color[] colors = { Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, - Color.MAGENTA, Color.ORANGE, Color.PINK, - Color.ORANGE, Color.RED, Color.BLUE, Color.YELLOW }; - - public DemoHighlightPainter() - { - super(); - } - - private void paintHighlight(Graphics g, Rectangle rect) - { - g.fillRect(rect.x, rect.y, rect.width, rect.height); - } - - public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent t) - { - try - { - - for (int i = p0; i < p1; i++) - { - Rectangle r = t.modelToView(i); - Point l1 = t.modelToView(i + 1).getLocation(); - - g.setColor(colors[(int) (Math.random() * colors.length)]); - g.fillOval(r.x, r.y, l1.x - r.x, r.height); - } - } - catch (BadLocationException ble) - { - } - - } - - public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, - JTextComponent c, View view) - { - paint(g, p0, p1, bounds, c); - - return bounds; - } - } - - /** - * The non wrapping text areas and state buttons. - */ - JTextArea textarea1; - - JTextArea textarea2; - - JTextArea textarea3; - - JCheckBox enabled1; - - JCheckBox editable1; - - JPanel panel1; - - /** - * The char wrapping textareas and state buttons. - */ - JTextArea textarea4; - - JTextArea textarea5; - - JTextArea textarea6; - - JCheckBox enabled2; - - JCheckBox editable2; - - /** - * The word wrapping textareas and state buttons. - */ - JTextArea textarea7; - - JTextArea textarea8; - - JTextArea textarea9; - - JCheckBox enabled3; - - JCheckBox editable3; - - /** - * The custom colored textareas and state buttons. - */ - JTextArea textarea10; - - JTextArea textarea11; - - JTextArea textarea12; - - JTextArea textarea13; - - JTextArea textarea14; - - JTextArea textarea14b; - - JCheckBox enabled4; - - JCheckBox editable4; - - /** - * Some miscellaneous textarea demos. - */ - JTextArea textarea15; - - JTextArea textarea16; - - JTextArea textarea17; - - JCheckBox enabled5; - - JCheckBox editable5; - - /** - * Creates a new demo instance. - */ - public TextAreaDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, only - * the demo content panel is used, the frame itself is never displayed, so we - * can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel uses a BorderLayout(), and - * the BorderLayout.SOUTH area is empty, to allow callers to add controls to - * the bottom of the panel if they want to (a close button is added if this - * demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JTabbedPane tabPane = new JTabbedPane(); - tabPane.addTab("Non-wrap", createNonWrapPanel()); - tabPane.addTab("Char-wrap", createCharWrapPanel()); - tabPane.addTab("Word-wrap", createWordWrapPanel()); - tabPane.addTab("Custom colors", createCustomColoredPanel()); - tabPane.addTab("Misc", createMiscPanel()); - add(tabPane); - } - - private JPanel createNonWrapPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(BorderFactory.createTitledBorder("Not wrapping")); - - panel1 = new JPanel(new GridLayout(2, 2)); - - textarea1 = new JTextArea("Hello World!"); - textarea1.setFont(new Font("Dialog", Font.PLAIN, 8)); - panel1.add(new JScrollPane(textarea1)); - - textarea2 = new JTextArea("Hello World!"); - textarea2.setFont(new Font("Dialog", Font.ITALIC, 12)); - panel1.add(new JScrollPane(textarea2)); - - textarea3 = new JTextArea("Hello World!"); - textarea3.setFont(new Font("Dialog", Font.BOLD, 14)); - panel1.add(new JScrollPane(textarea3)); - - panel.add(panel1); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - enabled1 = new JCheckBox("enabled"); - enabled1.setSelected(true); - enabled1.addActionListener(this); - enabled1.setActionCommand("ENABLED1"); - statePanel.add(enabled1); - editable1 = new JCheckBox("editable"); - editable1.setSelected(true); - editable1.addActionListener(this); - editable1.setActionCommand("EDITABLE1"); - statePanel.add(editable1); - statePanel.add(Box.createVerticalGlue()); - panel.add(statePanel, BorderLayout.EAST); - - return panel; - } - - private JPanel createCharWrapPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(BorderFactory.createTitledBorder("Wrap at char bounds")); - - JPanel innerPanel = new JPanel(new GridLayout(2, 2)); - - textarea4 = new JTextArea("Hello World!"); - textarea4.setLineWrap(true); - textarea4.setFont(new Font("Dialog", Font.PLAIN, 8)); - innerPanel.add(new JScrollPane(textarea4)); - - textarea5 = new JTextArea("Hello World!"); - textarea5.setLineWrap(true); - textarea5.setFont(new Font("Dialog", Font.ITALIC, 12)); - innerPanel.add(new JScrollPane(textarea5)); - - textarea6 = new JTextArea("Hello World!"); - textarea6.setLineWrap(true); - textarea6.setFont(new Font("Dialog", Font.BOLD, 14)); - innerPanel.add(new JScrollPane(textarea6)); - - panel.add(innerPanel); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - enabled2 = new JCheckBox("enabled"); - enabled2.setSelected(true); - enabled2.addActionListener(this); - enabled2.setActionCommand("ENABLED2"); - statePanel.add(enabled2); - editable2 = new JCheckBox("editable"); - editable2.setSelected(true); - editable2.addActionListener(this); - editable2.setActionCommand("EDITABLE2"); - statePanel.add(editable2); - statePanel.add(Box.createVerticalGlue()); - panel.add(statePanel, BorderLayout.EAST); - - return panel; - } - - private JPanel createWordWrapPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(BorderFactory.createTitledBorder("Wrap at word bounds")); - - JPanel innerPanel = new JPanel(new GridLayout(2, 2)); - - textarea7 = new JTextArea("Hello World!"); - textarea7.setWrapStyleWord(true); - textarea7.setLineWrap(true); - textarea7.setFont(new Font("Dialog", Font.PLAIN, 8)); - innerPanel.add(new JScrollPane(textarea7)); - - textarea8 = new JTextArea("Hello World!"); - textarea8.setWrapStyleWord(true); - textarea8.setLineWrap(true); - textarea8.setFont(new Font("Dialog", Font.ITALIC, 12)); - innerPanel.add(new JScrollPane(textarea8)); - - textarea9 = new JTextArea("Hello World!"); - textarea9.setWrapStyleWord(true); - textarea9.setLineWrap(true); - textarea9.setFont(new Font("Dialog", Font.BOLD, 14)); - innerPanel.add(new JScrollPane(textarea9)); - - panel.add(innerPanel); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - enabled3 = new JCheckBox("enabled"); - enabled3.setSelected(true); - enabled3.addActionListener(this); - enabled3.setActionCommand("ENABLED3"); - statePanel.add(enabled3); - editable3 = new JCheckBox("editable"); - editable3.setSelected(true); - editable3.addActionListener(this); - editable3.setActionCommand("EDITABLE3"); - statePanel.add(editable3); - statePanel.add(Box.createVerticalGlue()); - panel.add(statePanel, BorderLayout.EAST); - - return panel; - } - - private JPanel createCustomColoredPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - - JPanel innerPanel = new JPanel(new GridLayout(3, 2)); - panel.setBorder(BorderFactory.createTitledBorder("Custom colors")); - - textarea10 = new JTextArea("custom foreground", 10, 15); - textarea10.setForeground(Color.GREEN); - innerPanel.add(new JScrollPane(textarea10)); - - textarea11 = new JTextArea("custom background", 10, 15); - textarea11.setBackground(Color.YELLOW); - innerPanel.add(new JScrollPane(textarea11)); - - textarea12 = new JTextArea("custom disabled textcolor", 10, 15); - textarea12.setDisabledTextColor(Color.BLUE); - innerPanel.add(new JScrollPane(textarea12)); - - textarea13 = new JTextArea("custom selected text color", 10, 15); - textarea13.setSelectedTextColor(Color.RED); - innerPanel.add(new JScrollPane(textarea13)); - - textarea14 = new JTextArea("custom selection color", 10, 15); - textarea14.setSelectionColor(Color.RED); - innerPanel.add(new JScrollPane(textarea14)); - - textarea14b = new JTextArea("custom selection and selected text color", 10, 15); - textarea14b.setSelectedTextColor(Color.WHITE); - textarea14b.setSelectionColor(Color.BLACK); - innerPanel.add(new JScrollPane(textarea14b)); - - panel.add(innerPanel); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - enabled4 = new JCheckBox("enabled"); - enabled4.setSelected(true); - enabled4.addActionListener(this); - enabled4.setActionCommand("ENABLED4"); - statePanel.add(enabled4); - editable4 = new JCheckBox("editable"); - editable4.setSelected(true); - editable4.addActionListener(this); - editable4.setActionCommand("EDITABLE4"); - statePanel.add(editable4); - statePanel.add(Box.createVerticalGlue()); - panel.add(statePanel, BorderLayout.EAST); - - return panel; - } - - private JPanel createMiscPanel() - { - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(BorderFactory.createTitledBorder("Miscellaneous")); - - JPanel innerPanel = new JPanel(new GridLayout(2, 2)); - - textarea15 = new JTextArea("Custom Caret"); - textarea15.setCaret(new CornerCaret()); - innerPanel.add(new JScrollPane(textarea15)); - - textarea16 = new JTextArea("Custom Caret color"); - textarea16.setCaretColor(Color.MAGENTA); - innerPanel.add(new JScrollPane(textarea16)); - - textarea16 = new JTextArea("Custom Selection painter"); - textarea16.setFont(new Font("Dialog", Font.PLAIN, 24)); - textarea16.setCaret(new DefaultCaret() - { - public Highlighter.HighlightPainter getSelectionPainter() - { - return DemoHighlightPainter.INSTANCE; - } - }); - - innerPanel.add(new JScrollPane(textarea16)); - - panel.add(innerPanel); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - enabled5 = new JCheckBox("enabled"); - enabled5.setSelected(true); - enabled5.addActionListener(this); - enabled5.setActionCommand("ENABLED5"); - statePanel.add(enabled5); - editable5 = new JCheckBox("editable"); - editable5.setSelected(true); - editable5.addActionListener(this); - editable5.setActionCommand("EDITABLE5"); - statePanel.add(editable5); - statePanel.add(Box.createVerticalGlue()); - panel.add(statePanel, BorderLayout.EAST); - - return panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - else if (e.getActionCommand().equals("ENABLED1")) - { - boolean enabled = enabled1.isSelected(); - textarea1.setEnabled(enabled); - textarea2.setEnabled(enabled); - textarea3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE1")) - { - boolean editable = editable1.isSelected(); - textarea1.setEditable(editable); - textarea2.setEditable(editable); - textarea3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED2")) - { - boolean enabled = enabled2.isSelected(); - textarea4.setEnabled(enabled); - textarea5.setEnabled(enabled); - textarea6.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE2")) - { - boolean editable = editable2.isSelected(); - textarea4.setEditable(editable); - textarea5.setEditable(editable); - textarea6.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED3")) - { - boolean enabled = enabled3.isSelected(); - textarea7.setEnabled(enabled); - textarea8.setEnabled(enabled); - textarea9.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE3")) - { - boolean editable = editable3.isSelected(); - textarea7.setEditable(editable); - textarea8.setEditable(editable); - textarea9.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED4")) - { - boolean enabled = enabled4.isSelected(); - textarea10.setEnabled(enabled); - textarea11.setEnabled(enabled); - textarea12.setEnabled(enabled); - textarea13.setEnabled(enabled); - textarea14.setEnabled(enabled); - textarea14b.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE4")) - { - boolean editable = editable4.isSelected(); - textarea10.setEditable(editable); - textarea11.setEditable(editable); - textarea12.setEditable(editable); - textarea13.setEditable(editable); - textarea14.setEditable(editable); - textarea14b.setEditable(editable); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - TextAreaDemo app = new TextAreaDemo(); - app.initFrameContent(); - JFrame frame = new JFrame(); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a TextAreaDemo. - * - * @return a DemoFactory that creates a TextAreaDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new TextAreaDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java deleted file mode 100644 index e630228..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java +++ /dev/null @@ -1,594 +0,0 @@ -/* TextFieldDemo.java -- An example showing various textfields in Swing. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath examples. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. -*/ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.GridLayout; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; -import javax.swing.border.CompoundBorder; -import javax.swing.border.EmptyBorder; -import javax.swing.border.LineBorder; -import javax.swing.border.TitledBorder; -import javax.swing.text.BadLocationException; -import javax.swing.text.DefaultCaret; -import javax.swing.text.Highlighter; -import javax.swing.text.JTextComponent; -import javax.swing.text.View; -import javax.swing.text.LayeredHighlighter.LayerPainter; - -/** - * A simple textfield demo showing various textfields in different states. - */ -public class TextFieldDemo - extends JPanel - implements ActionListener -{ - - /** - * A custom caret for demonstration purposes. This class is inspired by the - * CornerCaret from the OReilly Swing book. - * - * @author Roman Kennke (kennke@aicas.com) - */ - static class CornerCaret extends DefaultCaret - { - public CornerCaret() - { - super(); - setBlinkRate(500); - } - - protected synchronized void damage(Rectangle r) - { - if (r == null) return; - x = r.x; - y = r.y + (r.height * 4 / 5 - 3); - width = 5; - height = 5; - repaint(); - } - - public void paint(Graphics g) - { - JTextComponent comp = getComponent(); - if (comp == null) return; - int dot = getDot(); - Rectangle r = null; - try - { - r = comp.modelToView(dot); - } - catch (BadLocationException e) - { - return; - } - if (r == null) return; - int dist = r.height * 4 / 5 - 3; - if ((x != r.x) || (y != r.y + dist)) - { - repaint(); - x = r.x; - y = r.y + dist; - width = 5; - height = 5; - } - if (isVisible()) - { - g.drawLine(r.x, r.y + dist, r.x, r.y + dist + 4); - g.drawLine(r.x, r.y + dist + 4, r.x + 4, r.y + dist + 4); - } - } - } - - static class DemoHighlightPainter - extends LayerPainter - { - - static DemoHighlightPainter INSTANCE = new DemoHighlightPainter(); - - - static Color[] colors = { Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, - Color.MAGENTA, Color.ORANGE, Color.PINK, - Color.ORANGE, Color.RED, Color.BLUE, Color.YELLOW }; - - - public DemoHighlightPainter() - { - super(); - } - - private void paintHighlight(Graphics g, Rectangle rect) - { - g.fillRect(rect.x, rect.y, rect.width, rect.height); - } - - public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent t) - { - try - { - - for (int i = p0; i < p1; i++) - { - Rectangle r = t.modelToView(i); - Point l1 = t.modelToView(i + 1).getLocation(); - - g.setColor(colors[(int) (Math.random() * colors.length)]); - g.fillOval(r.x, r.y, l1.x - r.x, r.height); - } - } - catch (BadLocationException ble) - { - } - } - - public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, - JTextComponent c, View view) - { - paint(g, p0, p1, bounds, c); - - return bounds; - } - - } - - /** - * The left aligned textfields and state buttons. - */ - Compound compound1; - - /** - * The right aligned textfields and state buttons. - */ - Compound compound2; - - /** - * The centered textfields and state buttons. - */ - Compound compound3; - - /** - * The custom colored textfields and state buttons. - */ - Compound compound4; - Compound compound5; - - /** - * Some miscellaneous textfield demos. - */ - Compound compound6; - - /** - * Some textfields with custom borders. - */ - Compound compound7; - - /** - * Creates a new demo instance. - */ - public TextFieldDemo() - { - super(); - createContent(); - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - /** - * Returns a panel with the demo content. The panel - * uses a BorderLayout(), and the BorderLayout.SOUTH area - * is empty, to allow callers to add controls to the - * bottom of the panel if they want to (a close button is - * added if this demo is being run as a standalone demo). - */ - private void createContent() - { - setLayout(new BorderLayout()); - JPanel panel = new JPanel(new GridLayout(7, 1)); - panel.add(createLeftAlignedPanel()); - panel.add(createRightAlignedPanel()); - panel.add(createCenteredPanel()); - panel.add(createCustomColorPanel1()); - panel.add(createCustomColorPanel2()); - panel.add(createCustomBordersPanel()); - panel.add(createMiscPanel()); - - // Put everything in a scroll pane to make it neccessary - // to reach the bottom inner panels if the screen is to small. - add(new JScrollPane(panel)); - } - - private JPanel createLeftAlignedPanel() - { - compound1 = createTextFieldCompound("Left aligned", 1); - - compound1.setupTextfields("Hello World!", - JTextField.LEFT, - new Font[] { new Font("Dialog", Font.PLAIN, 8), - new Font("Dialog", Font.ITALIC, 12), - new Font("Dialog", Font.BOLD, 14) - }); - - return compound1.panel; - } - - private Compound createTextFieldCompound(String title, int actionCommandNo) - { - Compound compound = new Compound(); - compound.panel = new JPanel(new BorderLayout()); - compound.panel.setBorder(BorderFactory.createTitledBorder(title)); - - compound.textFieldPanel = new JPanel(); - compound.textFieldPanel.setLayout(new BoxLayout(compound.textFieldPanel, BoxLayout.X_AXIS)); - - compound.panel.add(compound.textFieldPanel); - - JPanel statePanel = new JPanel(); - statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS)); - statePanel.add(Box.createVerticalGlue()); - compound.enabled = new JCheckBox("enabled"); - compound.enabled.setSelected(true); - compound.enabled.addActionListener(this); - compound.enabled.setActionCommand("ENABLED" + actionCommandNo); - statePanel.add(compound.enabled); - compound.editable = new JCheckBox("editable"); - compound.editable.setSelected(true); - compound.editable.addActionListener(this); - compound.editable.setActionCommand("EDITABLE" + actionCommandNo); - statePanel.add(compound.editable); - statePanel.add(Box.createVerticalGlue()); - compound.panel.add(statePanel, BorderLayout.EAST); - - return compound; - } - - private JPanel createRightAlignedPanel() - { - compound2 = createTextFieldCompound("Right aligned", 2); - - compound2.setupTextfields("Hello World!", - JTextField.RIGHT, - new Font[] { new Font("Dialog", Font.PLAIN, 8), - new Font("Dialog", Font.ITALIC, 12), - new Font("Dialog", Font.BOLD, 14) - }); - - return compound2.panel; - } - - private JPanel createCenteredPanel() - { - compound3 = createTextFieldCompound("Centered", 3); - - compound3.setupTextfields("Hello World!", - JTextField.CENTER, - new Font[] { new Font("Dialog", Font.PLAIN, 8), - new Font("Dialog", Font.ITALIC, 12), - new Font("Dialog", Font.BOLD, 14) - }); - - return compound3.panel; - } - - private JPanel createCustomColorPanel1() - { - compound4 = createTextFieldCompound("Custom colors I", 4); - - compound4.textfield1 = new JTextField("custom foreground"); - compound4.textfield1.setForeground(Color.RED); - compound4.textFieldPanel.add(compound4.textfield1); - - compound4.textfield2 = new JTextField("custom background"); - compound4.textfield2.setBackground(Color.YELLOW); - compound4.textFieldPanel.add(compound4.textfield2); - - compound4.textfield3 = new JTextField("custom foreground and background"); - compound4.textfield3.setForeground(Color.RED); - compound4.textfield3.setBackground(Color.YELLOW); - compound4.textFieldPanel.add(compound4.textfield3); - - return compound4.panel; - - } - - private JPanel createCustomColorPanel2() - { - compound5 = createTextFieldCompound("Custom colors II", 5); - - compound5.textfield1 = new JTextField("custom disabled textcolor"); - compound5.textfield1.setDisabledTextColor(Color.BLUE); - compound5.textFieldPanel.add(compound5.textfield1); - - compound5.textfield2 = new JTextField("custom selected text color"); - compound5.textfield2.setSelectedTextColor(Color.RED); - compound5.textFieldPanel.add(compound5.textfield2); - - compound5.textfield3 = new JTextField("custom selection color"); - compound5.textfield3.setSelectionColor(Color.BLACK); - compound5.textFieldPanel.add(compound5.textfield3); - - return compound5.panel; - - } - - private JPanel createMiscPanel() - { - compound6 = createTextFieldCompound("Miscellaneous", 6); - - compound6.textfield1 = new JTextField("Custom Caret"); - compound6.textfield1.setCaret(new CornerCaret()); - compound6.textFieldPanel.add(compound6.textfield1); - - compound6.textfield2 = new JTextField("Custom Caret color"); - compound6.textfield2.setForeground(Color.LIGHT_GRAY); - compound6.textfield2.setBackground(Color.BLACK); - compound6.textfield2.setSelectedTextColor(Color.BLACK); - compound6.textfield2.setCaretColor(Color.WHITE); - compound6.textfield2.setSelectionColor(Color.DARK_GRAY); - compound6.textFieldPanel.add(compound6.textfield2); - - compound6.textfield3 = new JTextField("Custom highlighter"); - compound6.textfield3.setCaret(new DefaultCaret() - { - public Highlighter.HighlightPainter getSelectionPainter() - { - return DemoHighlightPainter.INSTANCE; - } - }); - compound6.textFieldPanel.add(compound6.textfield3); - - return compound6.panel; - } - - private JPanel createCustomBordersPanel() - { - compound7 = createTextFieldCompound("Custom borders", 7); - - compound7.textfield1 = new JTextField("red 5 pixel lineborder"); - compound7.textfield1.setBorder(new LineBorder(Color.RED, 5)); - compound7.textFieldPanel.add(compound7.textfield1); - - compound7.textfield2 = new JTextField("complex irregular border"); - - CompoundBorder innerCompound = new CompoundBorder(new EmptyBorder(5, 40, 15, 10), new LineBorder(Color.BLACK)); - CompoundBorder outerCompound = new CompoundBorder(new LineBorder(Color.BLACK), innerCompound); - compound7.textfield2.setBorder(outerCompound); - compound7.textFieldPanel.add(compound7.textfield2); - - compound7.textfield3 = new JTextField("a titled border", 10); - compound7.textfield3.setBorder(new TitledBorder(null, "Freak Out Border", TitledBorder.CENTER, TitledBorder.LEFT)); - compound7.textFieldPanel.add(compound7.textfield3); - - return compound7.panel; - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - else if (e.getActionCommand().equals("ENABLED1")) - { - boolean enabled = compound1.enabled.isSelected(); - compound1.textfield1.setEnabled(enabled); - compound1.textfield2.setEnabled(enabled); - compound1.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE1")) - { - boolean editable = compound1.editable.isSelected(); - compound1.textfield1.setEditable(editable); - compound1.textfield2.setEditable(editable); - compound1.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED2")) - { - boolean enabled = compound2.enabled.isSelected(); - compound2.textfield1.setEnabled(enabled); - compound2.textfield2.setEnabled(enabled); - compound2.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE2")) - { - boolean editable = compound2.editable.isSelected(); - compound2.textfield1.setEditable(editable); - compound2.textfield2.setEditable(editable); - compound2.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED3")) - { - boolean enabled = compound3.enabled.isSelected(); - compound3.textfield1.setEnabled(enabled); - compound3.textfield2.setEnabled(enabled); - compound3.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE3")) - { - boolean editable = compound3.editable.isSelected(); - compound3.textfield1.setEditable(editable); - compound3.textfield2.setEditable(editable); - compound3.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED4")) - { - boolean enabled = compound4.enabled.isSelected(); - compound4.textfield1.setEnabled(enabled); - compound4.textfield2.setEnabled(enabled); - compound4.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE4")) - { - boolean editable = compound4.editable.isSelected(); - compound4.textfield1.setEditable(editable); - compound4.textfield2.setEditable(editable); - compound4.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED5")) - { - boolean enabled = compound5.enabled.isSelected(); - compound5.textfield1.setEnabled(enabled); - compound5.textfield2.setEnabled(enabled); - compound5.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE5")) - { - boolean editable = compound5.editable.isSelected(); - compound5.textfield1.setEditable(editable); - compound5.textfield2.setEditable(editable); - compound5.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED6")) - { - boolean enabled = compound6.enabled.isSelected(); - compound6.textfield1.setEnabled(enabled); - compound6.textfield2.setEnabled(enabled); - compound6.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE6")) - { - boolean editable = compound6.editable.isSelected(); - compound6.textfield1.setEditable(editable); - compound6.textfield2.setEditable(editable); - compound6.textfield3.setEditable(editable); - } - else if (e.getActionCommand().equals("ENABLED7")) - { - boolean enabled = compound7.enabled.isSelected(); - compound7.textfield1.setEnabled(enabled); - compound7.textfield2.setEnabled(enabled); - compound7.textfield3.setEnabled(enabled); - } - else if (e.getActionCommand().equals("EDITABLE7")) - { - boolean editable = compound7.editable.isSelected(); - compound7.textfield1.setEditable(editable); - compound7.textfield2.setEditable(editable); - compound7.textfield3.setEditable(editable); - } - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - TextFieldDemo app = new TextFieldDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("TextField demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a TextFieldDemo. - * - * @return a DemoFactory that creates a TextFieldDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new TextFieldDemo(); - } - }; - } - - static class Compound - { - JTextField textfield1; - JTextField textfield2; - JTextField textfield3; - JCheckBox enabled; - JCheckBox editable; - JPanel textFieldPanel; - JPanel panel; - - /** Creates and initializes the textfields with the same text and - * alignment but with a different font. - * - * @param title The text for the textfields. - * @param align The alignment for the textfields. - * @param fonts The fonts to be used for the textfields. - */ - void setupTextfields(String title, int align, Font[] fonts) - { - textfield1 = new JTextField(title); - textfield1.setHorizontalAlignment(align); - textfield1.setFont(fonts[0]); - textFieldPanel.add(textfield1); - - textfield2 = new JTextField(title); - textfield2.setHorizontalAlignment(align); - textfield2.setFont(fonts[1]); - textFieldPanel.add(textfield2); - - textfield3 = new JTextField(title); - textfield3.setHorizontalAlignment(align); - textfield3.setFont(fonts[2]); - textFieldPanel.add(textfield3); - } - - } - -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java deleted file mode 100644 index f8f7ae6..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java +++ /dev/null @@ -1,318 +0,0 @@ -/* TreeDemo.java -- Demostrates JTree - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.classpath.examples.swing; - -import java.awt.BorderLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.ButtonGroup; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JScrollPane; -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreePath; - -public class TreeDemo - extends JPanel - implements ActionListener -{ - - TreeDemo() - { - super(); - createContent(); - } - - private void createContent() - { - // non-leafs - DefaultMutableTreeNode root = new DefaultMutableTreeNode("Exotic Subsistence"); - DefaultMutableTreeNode fruit = new DefaultMutableTreeNode("Interesting Fruit"); - DefaultMutableTreeNode veg = new DefaultMutableTreeNode("Extraordinary Vegetables"); - DefaultMutableTreeNode liq = new DefaultMutableTreeNode("Peculiar Liquids"); - - // leafs - DefaultMutableTreeNode f1 = new DefaultMutableTreeNode("Abiu"); - DefaultMutableTreeNode f2 = new DefaultMutableTreeNode("Bamboo Shoots"); - DefaultMutableTreeNode f3 = new DefaultMutableTreeNode("Breadfruit"); - DefaultMutableTreeNode f4 = new DefaultMutableTreeNode("Canistel"); - DefaultMutableTreeNode f5 = new DefaultMutableTreeNode("Duku"); - DefaultMutableTreeNode f6 = new DefaultMutableTreeNode("Guava"); - DefaultMutableTreeNode f7 = new DefaultMutableTreeNode("Jakfruit"); - DefaultMutableTreeNode f8 = new DefaultMutableTreeNode("Quaribea"); - - DefaultMutableTreeNode v1 = new DefaultMutableTreeNode("Amaranth"); - DefaultMutableTreeNode v2 = new DefaultMutableTreeNode("Kiwano"); - DefaultMutableTreeNode v3 = new DefaultMutableTreeNode("Leeks"); - DefaultMutableTreeNode v4 = new DefaultMutableTreeNode("Luffa"); - DefaultMutableTreeNode v5 = new DefaultMutableTreeNode("Chayote"); - DefaultMutableTreeNode v6 = new DefaultMutableTreeNode("Jicama"); - DefaultMutableTreeNode v7 = new DefaultMutableTreeNode("Okra"); - - DefaultMutableTreeNode l1 = new DefaultMutableTreeNode("Alcoholic"); - DefaultMutableTreeNode l11 = new DefaultMutableTreeNode("Caipirinha"); - DefaultMutableTreeNode l21 = new DefaultMutableTreeNode("Mojito"); - DefaultMutableTreeNode l31 = new DefaultMutableTreeNode("Margarita"); - DefaultMutableTreeNode l41 = new DefaultMutableTreeNode("Martini"); - DefaultMutableTreeNode l5 = new DefaultMutableTreeNode("Non Alcoholic"); - DefaultMutableTreeNode l55 = new DefaultMutableTreeNode("Babaji"); - DefaultMutableTreeNode l65 = new DefaultMutableTreeNode("Chikita"); - - root.add(fruit); - root.add(veg); - root.add(liq); - fruit.add(f1); - fruit.add(f2); - fruit.add(f3); - fruit.add(f4); - fruit.add(f5); - fruit.add(f6); - fruit.add(f7); - fruit.add(f8); - veg.add(v1); - veg.add(v2); - veg.add(v3); - veg.add(v4); - veg.add(v5); - veg.add(v6); - veg.add(v7); - liq.add(l1); - l1.add(l11); - l1.add(l21); - l1.add(l31); - l1.add(l41); - liq.add(l5); - l5.add(l55); - l5.add(l65); - - final JTree tree = new JTree(root); - tree.setLargeModel(true); - tree.setEditable(true); - final DefaultTreeSelectionModel selModel = new DefaultTreeSelectionModel(); - selModel.setSelectionMode( - DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); - tree.setSelectionModel(selModel); - - // buttons to add and delete - JButton add = new JButton("add element"); - add.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - for (int i = 0; i < tree.getRowCount(); i++) - { - if (tree.isRowSelected(i)) - { - TreePath p = tree.getPathForRow(i); - DefaultMutableTreeNode n = (DefaultMutableTreeNode) p. - getLastPathComponent(); - n.add(new DefaultMutableTreeNode("New Element")); - - // The expansion state of the parent node does not change - // by default. We will expand it manually, to ensure that the - // added node is immediately visible. - tree.expandPath(p); - - // Refresh the tree (.repaint would be not enough both in - // Classpath and Sun implementations). - DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); - model.reload(n); - break; - } - } - } - }); - - // Demonstration of the various selection modes - final JCheckBox cbSingle = new JCheckBox("single selection"); - cbSingle.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - if (cbSingle.isSelected()) - selModel.setSelectionMode( - DefaultTreeSelectionModel.SINGLE_TREE_SELECTION); - else - selModel.setSelectionMode( - DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); - } - }); - - // Demonstration of the root visibility changes - final JCheckBox cbRoot = new JCheckBox("root"); - cbRoot.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - tree.setRootVisible(cbRoot.isSelected()); - } - }); - cbRoot.setSelected(true); - - // Demonstration of the tree selection listener. - final JLabel choice = new JLabel("Make a choice"); - tree.getSelectionModel().addTreeSelectionListener( - new TreeSelectionListener() - { - public void valueChanged(TreeSelectionEvent event) - { - TreePath was = event.getOldLeadSelectionPath(); - TreePath now = event.getNewLeadSelectionPath(); - String swas = - was == null ? "none":was.getLastPathComponent().toString(); - String snow = - now == null ? "none":now.getLastPathComponent().toString(); - choice.setText("From "+swas+" to "+snow); - } - } - ); - - setLayout(new BorderLayout()); - - JPanel p2 = new JPanel(); - p2.add(add); - p2.add(cbSingle); - p2.add(cbRoot); - - tree.getSelectionModel(). - setSelectionMode(DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); - - // Panel for selecting line style. - ActionListener l = new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - JRadioButton b = (JRadioButton) e.getSource(); - tree.putClientProperty("JTree.lineStyle", b.getText()); - tree.repaint(); - } - }; - JPanel lineStylePanel = new JPanel(); - ButtonGroup buttons = new ButtonGroup(); - lineStylePanel.add(new JLabel("Line style: ")); - JRadioButton none = new JRadioButton("None"); - lineStylePanel.add(none); - buttons.add(none); - none.addActionListener(l); - JRadioButton angled = new JRadioButton("Angled"); - lineStylePanel.add(angled); - buttons.add(angled); - angled.addActionListener(l); - JRadioButton horizontal = new JRadioButton("Horizontal"); - lineStylePanel.add(horizontal); - buttons.add(horizontal); - horizontal.addActionListener(l); - p2.add(lineStylePanel); - - add(p2, BorderLayout.NORTH); - - add(new JScrollPane(tree), BorderLayout.CENTER); - add(choice, BorderLayout.SOUTH); - } - - public void actionPerformed(ActionEvent e) - { - if (e.getActionCommand().equals("CLOSE")) - { - System.exit(0); - } - } - - /** - * When the demo is run independently, the frame is displayed, so we should - * initialise the content panel (including the demo content and a close - * button). But when the demo is run as part of the Swing activity board, - * only the demo content panel is used, the frame itself is never displayed, - * so we can avoid this step. - */ - void initFrameContent() - { - JPanel closePanel = new JPanel(); - JButton closeButton = new JButton("Close"); - closeButton.setActionCommand("CLOSE"); - closeButton.addActionListener(this); - closePanel.add(closeButton); - add(closePanel, BorderLayout.SOUTH); - } - - public static void main(String[] args) - { - SwingUtilities.invokeLater - (new Runnable() - { - public void run() - { - TreeDemo app = new TreeDemo(); - app.initFrameContent(); - JFrame frame = new JFrame("Tree Demo"); - frame.getContentPane().add(app); - frame.pack(); - frame.setVisible(true); - } - }); - } - - /** - * Returns a DemoFactory that creates a TreeDemo. - * - * @return a DemoFactory that creates a TreeDemo - */ - public static DemoFactory createDemoFactory() - { - return new DemoFactory() - { - public JComponent createDemo() - { - return new TreeDemo(); - } - }; - } -} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html b/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html deleted file mode 100644 index 010a94c..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html +++ /dev/null @@ -1,98 +0,0 @@ -<!-- welcome.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> - -<html> - - <head> - <title>HTML text styles</title> - </head> - <body> - <form> - <a href="welcome.html">Back to start page</a> - <h1>Some form elements</h1> - <h2>Textarea</h2> - <textarea cols="30" rows="5"> - Hello GNU Classpath world. This text should show up in a text area - that has a size of 30 columns and 5 rows - </textarea> - - <h2>Input fields</h2> - <p> - <input type="text" value="This is a normal textfield"> - <input type="password" value="secret password"> - </p> - - <h2>Buttons</h2> - <p> - <input type="submit"></input> - <input type="reset"></input> - <input type="button" value="Some button"></input> - </p> - - <h2>Checkboxes and Radiobuttons</h2> - <p> - <input type="checkbox" name="2">Check this!</input> - <input type="checkbox" name="2">Or this</input> - </p> - <p> - <input type="radio" name="1">A radio button</input> - <input type="radio" name="1">Another radio</input> - </p> - <h2>Select lists and combo boxes</h2> - <p> - <select> - <option>Value1</option> - <option>Value2</option> - <option>Value3</option> - <option label="Labeled value 4">Value4</option> - <option>Value5</option> - <option>Value6</option> - </select> - </p> - <p> - <select size="3"> - <option>Value1</option> - <option>Value2</option> - <option>Value3</option> - <option label="Labeled value 4">Value4</option> - <option>Value5</option> - <option>Value6</option> - </select> - </p> - </form> - </body> -</html>
\ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html deleted file mode 100644 index b9150592..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html +++ /dev/null @@ -1,41 +0,0 @@ -<!-- frame1.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> -<html> -<body> -<h1>Top Left Frame</h1> -</body> -</html> diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html deleted file mode 100644 index 9dbf33c..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html +++ /dev/null @@ -1,42 +0,0 @@ -<!-- frame2.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> -<html> -<body> -<h1>Top Right - Frame</h1> -</body> -</html> diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html deleted file mode 100644 index e677bd6..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html +++ /dev/null @@ -1,42 +0,0 @@ -<!-- frame3.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> -<html> -<body> -<h1>Bottom Left Frame</h1> -</body> -</html> - diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html deleted file mode 100644 index 1da53b1..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html +++ /dev/null @@ -1,41 +0,0 @@ -<!-- frame4.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> -<html> -<body> -<h1>Bottom Left Frame</h1> -</body> -</html> diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html deleted file mode 100644 index e7e2bf8..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html +++ /dev/null @@ -1,44 +0,0 @@ -<!-- frames.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> -<html> -<frameset cols="40%,60%" rows="20%,80%"> - <frame src="frame1.html"> - <frame src="frame2.html"> - <frame src="frame3.html"> - <frame src="frame4.html"> -</frameset> -</html>
\ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html b/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html deleted file mode 100644 index af908e1..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html +++ /dev/null @@ -1,66 +0,0 @@ -<!-- tables.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> - -<html> - -<head> - <title>HTML text styles</title> - </head> - <body> -<h1>Table examples</h1> -<h2>Table with grid and mixed rowspan/colspan</h2> - <table border="1"> - <tr> - <td width="30%" colspan="2">Spans two columns</td> - <td rowspan="3">Spans three rows</td> - </tr> - <tr> - <td rowspan="2">Spans two rows</td> - <td>This is the center</td> - </tr> - <tr> - <td>This should be in the middle of row number 3</td> - </tr> - <tr> - <td>A small one cell box</td> - <td colspan="2" rowspan="2">Spans two x two cells</td> - </tr> - <tr> - <td>Another small one cell box</td> - </tr> - </table> -</body></html> diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html b/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html deleted file mode 100644 index 786e18b..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html +++ /dev/null @@ -1,78 +0,0 @@ -<!-- welcome.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> - -<html> - - <head> - <title>HTML text styles</title> - </head> - <body> - <a href="welcome.html">Back to start page</a> - <h1>Colors</h1> - <p>The following are the 16 named colors in HTML. Of course you can also - use all RGB colors by specifying a value in the <code>#RRGGBB</code> - notation.</p> - <p> - <font color="black">Black</font>, <font color="gray">Gray</font>, - <font color="maroon">Maroon</font>, <font color="red">Red</font>, - <font color="green">Green</font>, <font color="lime">Lime</font>, - <font color="olive">Olive</font>, <font color="yellow">Yellow</font>, - <font color="navy">Navy</font>, <font color="blue">Blue</font>, - <font color="purple">Purple</font>, <font color="fuchsia">Fuchsia</font>, - <font color="teal">Teal</font>, <font color="aque">Aqua</font>, - <font color="silver">Silver</font>, <font color="white">White</font></p> - <h1>Font styles</h1> - <p>The following lists the logical and physical font styles that can be set - by certain HTML tags</p> - <p> - <!--<abbr>Abbreviation</abbr>, <acronym>Acronym</acronym>,--> - <address>Address</address>, <b>Bold</b>, <big>Big</big>, - <cite>Citation</cite>, <code>Code</code>, <del>Deleted</del>, - <em>Emphasized<em>, <i>Italic</i>, <ins>Inserted</ins>, <q>Quote</q>, - <s>Stroke-Through</s>, <samp>Example</samp>, <small>Small</small>, - <strike>Strike</strike>, <strong>Strong</strong>, <sub>Subscript</sub>, - <sup>Superscript</sup>, <u>Underlined</u>, <var>Variable</var> - </p> - <h1>Header Level 1</h1> - <h2>Header Level 2</h2> - <h3>Header Level 3</h3> - <h4>Header Level 4</h4> - <h5>Header Level 5</h5> - <h6>Header Level 6</h6> - <center>Some centered Text</center> - </body> -</html>
\ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html b/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html deleted file mode 100644 index 8bc9874..0000000 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html +++ /dev/null @@ -1,63 +0,0 @@ -<!-- welcome.html -- Some HTML stuff to show Swing HTML - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> - -<html> - <head> - <title>GNU Classpath HTML Browser</title> - </head> - <body> - <img src="../icons/badge.png" width="100" height="100"> - <h1>Welcome to GNU Classpath</h1> - <h2>A couple of websites that you might want to try out</h2> - <ul> - <li><a href="http://www.gnu.org/software/classpath/">GNU Classpath homepage</a></li> - <li><a href="http://planet.classpath.org">Planet Classpath</a></li> - <li><a href="http://developer.classpath.org">GNU Classpath developer pages</a></li> - <li><a href="http://www.google.com">Google</a></li> - </ul> - - <h2>Testpages</h2> - <p>These few pages are here to demonstrate and test the HTML rendering - capabilities of GNU Classpath's Swing.</p> - <ul> - <li><a href="textstyles.html">Text styles</li> - <li><a href="forms.html">Form elements</li> - <li><a href="tables.html">Tables</li> - <li><a href="frames.html">Frames</li> - </ul> - </body> -</html>
\ No newline at end of file |