Mercurial > octave-nkf
changeset 15805:420b5603cbbf
build: Move usejava.m from scripts/miscellaneous to scripts/java directory.
* scripts/java/module.mk: Add usejava.m to build system.
* scripts/java/usejava.m: Added m-file.
* scripts/miscellaneous/module.mk: Remove usejava from miscellaneous directory build.
* scripts/miscellaneous/usejava.m: Removed m-file.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 17 Dec 2012 10:16:08 -0800 |
parents | b15cfb7ed0eb |
children | 01d4f742d75d |
files | scripts/java/module.mk scripts/java/usejava.m scripts/miscellaneous/module.mk scripts/miscellaneous/usejava.m |
diffstat | 4 files changed, 93 insertions(+), 90 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/java/module.mk Mon Dec 17 09:19:27 2012 -0800 +++ b/scripts/java/module.mk Mon Dec 17 10:16:08 2012 -0800 @@ -13,6 +13,7 @@ java/listdlg.m \ java/msgbox.m \ java/questdlg.m \ + java/usejava.m \ java/warndlg.m FCN_FILES += $(java_FCN_FILES)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/java/usejava.m Mon Dec 17 10:16:08 2012 -0800 @@ -0,0 +1,92 @@ +## Copyright (C) 2012 Rik Wehbring +## Parts Copyright (C) 2012 Philip Nienhuis <prnienhuis@users.sf.net> +## +## This file is part of Octave. +## +## Octave 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 3 of the License, or (at +## your option) any later version. +## +## Octave 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 Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} usejava (@var{feature}) +## Return true if the Java element @var{feature} is available. +## +## Possible features are: +## +## @table @asis +## @item "awt" +## Abstract Window Toolkit for GUIs. +## +## @item "desktop" +## Interactive desktop is running. +## +## @item "jvm" +## Java Virtual Machine. +## +## @item "swing" +## Swing components for lightweight GUIs. +## @end table +## +## @code{usejava} determines if specific Java features are available in an +## Octave session. This function is provided for scripts which may alter +## their behavior based on the availability of Java. The feature "desktop" +## always returns @code{false} as Octave has no Java-based desktop. Other +## features may be available if Octave was compiled with the Java Interface +## and Java is installed. +## @end deftypefn + +function retval = usejava (feature) + + if (nargin != 1 || ! ischar (feature)) + print_usage (); + endif + + retval = false; + + switch feature + ## For each feature, try methods() on a Java class of a feature + case "awt" + try + dum = methods ("java.awt.Frame"); + retval = true; + end_try_catch + case "desktop" + ## Octave has no Java based GUI/desktop, leave retval = false + case "jvm" + try + dum = methods ("java.lang.Runtime"); + retval = true; + end_try_catch + case "swing" + try + dum = methods ("javax.swing.Popup"); + retval = true; + end_try_catch + otherwise + error ("usejava: unrecognized feature '%s'", feature); + endswitch + +endfunction + + +%!assert (usejava ("desktop"), false) + +%!testif HAVE_JAVA +%! assert (usejava ("jvm"), true); + +%% Test input validation +%!error usejava () +%!error usejava (1, 2) +%!error usejava (1) +%!error <unrecognized feature> usejava ("abc") +
--- a/scripts/miscellaneous/module.mk Mon Dec 17 09:19:27 2012 -0800 +++ b/scripts/miscellaneous/module.mk Mon Dec 17 10:16:08 2012 -0800 @@ -69,7 +69,6 @@ miscellaneous/unpack.m \ miscellaneous/untar.m \ miscellaneous/unzip.m \ - miscellaneous/usejava.m \ miscellaneous/ver.m \ miscellaneous/version.m \ miscellaneous/warning_ids.m \
--- a/scripts/miscellaneous/usejava.m Mon Dec 17 09:19:27 2012 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -## Copyright (C) 2012 Rik Wehbring -## Parts Copyright (C) 2012 Philip Nienhuis <prnienhuis@users.sf.net> -## -## This file is part of Octave. -## -## Octave 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 3 of the License, or (at -## your option) any later version. -## -## Octave 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 Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {} usejava (@var{feature}) -## Return true if the Java element @var{feature} is available. -## -## Possible features are: -## -## @table @asis -## @item "awt" -## Abstract Window Toolkit for GUIs. -## -## @item "desktop" -## Interactive desktop is running. -## -## @item "jvm" -## Java Virtual Machine. -## -## @item "swing" -## Swing components for lightweight GUIs. -## @end table -## -## @code{usejava} determines if specific Java features are available in an -## Octave session. This function is provided for compatibility with scripts -## which may alter their behavior based on the availability of Java. The -## feature "desktop" always returns @code{false} as Octave has no Java-based -## desktop. Other features may be available if the Octave-Forge Java package -## has been installed. -## @end deftypefn - -function retval = usejava (feature) - - if (nargin != 1 || ! ischar (feature)) - print_usage (); - endif - - retval = false; - - switch feature - ## For each feature, try javamethods() on a Java class of a feature - case "awt" - try - dum = javamethods ("java.awt.Frame"); - retval = true; - end_try_catch - case "desktop" - ## Octave has no Java based GUI/desktop, leave retval = false - case "jvm" - try - dum = javamethods ("java.lang.Runtime"); - retval = true; - end_try_catch - case "swing" - try - dum = javamethods ("javax.swing.Popup"); - retval = true; - end_try_catch - otherwise - error ("usejava: unrecognized feature '%s'", feature); - endswitch - -endfunction - - -%!assert (usejava ("desktop"), false) - -%% Test input validation -%!error usejava () -%!error usejava (1, 2) -%!error usejava (1) -%!error <unrecognized feature> usejava ("abc") -