[snow-cvs] r80 - in trunk: . src/java/snow src/lisp/snow src/lisp/snow/showcase
Alessio Stalla
astalla at common-lisp.net
Sat Aug 7 20:35:19 UTC 2010
Author: astalla
Date: Sat Aug 7 16:35:19 2010
New Revision: 80
Log:
Small updates
Modified:
trunk/TODO
trunk/src/java/snow/Snow.java
trunk/src/lisp/snow/showcase/showcase.lisp
trunk/src/lisp/snow/widgets.lisp
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Sat Aug 7 16:35:19 2010
@@ -1,2 +1,4 @@
* improve error handling and reporting
* validation (JGoodies?)
+* top-level widgets implicit with-gui
+* jquery-like API
Modified: trunk/src/java/snow/Snow.java
==============================================================================
--- trunk/src/java/snow/Snow.java (original)
+++ trunk/src/java/snow/Snow.java Sat Aug 7 16:35:19 2010
@@ -85,66 +85,6 @@
baseDir = fixPath(url.toString(), pathSeparator);
baseDir = baseDir.substring(0, baseDir.length() - "snow/".length());
libDir = baseDir;
- /*ZipInputStream extractor = null;
- try {
- String tmpDir = System.getProperty("java.io.tmpdir");
- if(tmpDir != null && fileSeparator != null) {
- tmpDir = fixDirPath(tmpDir);
- String jarUrlStr = url.getPath();
- int bangPos = jarUrlStr.indexOf('!');
- if(bangPos >= 0) {
- jarUrlStr = jarUrlStr.substring(0, bangPos);
- }
- URL jarUrl = new URL(jarUrlStr);
- extractor = new ZipInputStream(jarUrl.openStream());
- int targetDirIndex = 0;
- File targetDir;
- do {
- targetDir = new File(tmpDir + "snow" + (targetDirIndex++));
- } while(targetDir.exists());
- targetDir.mkdir();
- targetDir.deleteOnExit();
- baseDir = targetDir.getAbsolutePath();
- baseDir = fixDirPath(baseDir);
- libDir = baseDir;
- for(ZipEntry entry = extractor.getNextEntry(); entry != null; entry = extractor.getNextEntry()) {
- File extracted = new File(baseDir + entry.getName());
- extracted.deleteOnExit();
- if(entry.isDirectory()) {
- extracted.mkdirs();
- } else {
- extracted.getParentFile().mkdirs();
- FileOutputStream fos = new FileOutputStream(extracted);
- byte[] buf = new byte[4096];
- while(true) {
- int read = extractor.read(buf);
- if(read != -1) {
- fos.write(buf, 0, read);
- } else {
- fos.flush();
- fos.close();
- break;
- }
- }
- }
- extracted.setLastModified(entry.getTime());
- System.out.println("Extracted " + extracted.getAbsolutePath());
- }
- } else {
- throw new RuntimeException("Cannot extract jar " + url + " - no temp dir or file separator defined");
- }
- } catch(Exception e) {
- throw new RuntimeException("Cannot extract jar " + url, e);
- } finally {
- if(extractor != null) {
- try {
- extractor.close();
- } catch (IOException e) {
- System.err.println("Couldn't close jar extractor: " + e.getMessage());
- e.printStackTrace();
- }
- }
- }*/
} else {
throw new RuntimeException("Unsupported URL for snow.asd: " + url +
" make sure it is a regular file or is in a jar.");
@@ -341,6 +281,19 @@
}
});
if(args.length == 0) { //Launch GUI REPL
+ Runnable r = new Runnable() {
+ public void run() {
+ try {
+ Interpreter interpreter = Interpreter.createDefaultInstance(args);
+ } catch(Throwable t) {
+ System.err.println("Caught error, exiting: " + t);
+ t.printStackTrace();
+ System.exit(1);
+ }
+ }
+ };
+ Thread t = new Thread(null, r, "interpreter", 4194304L);
+ t.start();
SplashScreen s = new SplashScreen();
s.setVisible(true);
init(s);
Modified: trunk/src/lisp/snow/showcase/showcase.lisp
==============================================================================
--- trunk/src/lisp/snow/showcase/showcase.lisp (original)
+++ trunk/src/lisp/snow/showcase/showcase.lisp Sat Aug 7 16:35:19 2010
@@ -109,13 +109,12 @@
(finish-output))))
(defun showcase (&optional exit-on-close-p)
- (with-gui ()
- (frame (:id frame :title "Snow Showcase" :visible-p t :size #C(800 600)
- :layout-manager '(:mig "fill")
- :on-close (when exit-on-close-p :exit))
- (tabs (:layout "grow")
- (dolist (x (reverse *examples*))
- (tab (car x) (funcall (cadr x))))))))
+ (frame (:id frame :title "Snow Showcase" :visible-p t :size #C(800 600)
+ :layout-manager '(:mig "fill")
+ :on-close (when exit-on-close-p :exit))
+ (tabs (:layout "grow")
+ (dolist (x (reverse *examples*))
+ (tab (car x) (funcall (cadr x)))))))
#||
(let ((fr (frame (:title "pippo" :visible-p t)
Modified: trunk/src/lisp/snow/widgets.lisp
==============================================================================
--- trunk/src/lisp/snow/widgets.lisp (original)
+++ trunk/src/lisp/snow/widgets.lisp Sat Aug 7 16:35:19 2010
@@ -55,7 +55,11 @@
nil nil on-close nil nil nil nil))))
f))
-(define-container-widget frame (menu-bar title on-close) make-frame)
+(define-container-widget %frame (menu-bar title on-close) make-frame)
+
+(defmacro frame (&rest args) ;;TODO actual args
+ `(with-gui ()
+ (%frame , at args)))
(defun make-dialog (&key parent title modal-p visible-p &allow-other-keys)
(let ((d (jnew "javax.swing.JDialog"
@@ -67,7 +71,7 @@
:title title)
d))
-(define-widget-macro dialog
+(define-widget-macro %dialog
((&rest args &key &common-widget-args
id layout-manager parent title modal-p visible-p)
&body body)
@@ -83,6 +87,10 @@
,@(generate-default-children-processing-code id body)
(setf (widget-visible-p self) ,visible-p)))
+(defmacro dialog (&rest args) ;;TODO actual args
+ `(with-gui ()
+ (%dialog , at args)))
+
(defun make-file-chooser (&key multi-selection-p &allow-other-keys)
(let ((c (jnew "javax.swing.JFileChooser")))
(jcall "setMultiSelectionEnabled" c (jbool multi-selection-p))
More information about the snow-cvs
mailing list