Blimp v.1.3.1 (2006-10-17)
Christian Heimke

Christian Heimke commited on 2011-07-15 09:23:00
Showing 9 changed files, with 86 additions and 23 deletions.

... ...
@@ -4,6 +4,10 @@ Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
4 4
 a blinkenarea.org project
5 5
 powered by eventphone.de
6 6
 
7
+version 1.3.1 date 2006-10-17
8
+-----------------------------
9
+ - specific file filters for *.blm, *.bmm, *.bml, *.bmbm
10
+
7 11
 version 1.3 date 2006-10-10
8 12
 ---------------------------
9 13
  - added support for aspect ratio
... ...
@@ -1,5 +1,5 @@
1 1
 # BlinkenLightsInteractiveMovieProgram
2
-# version 1.3 date 2006-10-10
2
+# version 1.3.1 date 2006-10-17
3 3
 # Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
 # Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
 # a blinkenarea.org project
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -147,6 +147,21 @@ public class Blimp extends JApplet
147 147
     return false;
148 148
   }
149 149
 
150
+  //set file filters for file chooser
151
+  private void setFileFilters( JFileChooser fileChooser )
152
+  {
153
+    javax.swing.filechooser.FileFilter fileFilters[ ] = fileChooser.getChoosableFileFilters( );
154
+    for( int i = 0; i < fileFilters.length; i++ )
155
+      fileChooser.removeChoosableFileFilter( fileFilters[i] );
156
+    javax.swing.filechooser.FileFilter blinkenFileFilter = new BlinkenFileFilter( );
157
+    fileChooser.addChoosableFileFilter( blinkenFileFilter );
158
+    fileChooser.addChoosableFileFilter( new BlinkenFileFilter( "blm" ) );
159
+    fileChooser.addChoosableFileFilter( new BlinkenFileFilter( "bmm" ) );
160
+    fileChooser.addChoosableFileFilter( new BlinkenFileFilter( "bml" ) );
161
+    fileChooser.addChoosableFileFilter( new BlinkenFileFilter( "bbm" ) );
162
+    fileChooser.setFileFilter( blinkenFileFilter );
163
+  }
164
+
150 165
   //"File New" was chosen from menu
151 166
   private void actionFileNew( )
152 167
   {
... ...
@@ -160,7 +175,7 @@ public class Blimp extends JApplet
160 175
     labelStatus.setText( "new movie..." );
161 176
     curFile = null;
162 177
     curMovie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval );
163
-    curMovie.insertInfo( 0, "creator", "Blimp (version 1.3 date 2006-10-10)" );
178
+    curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.1 date 2006-10-17)" );
164 179
     curMovie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) );
165 180
     curMovieChanged = false;
166 181
 
... ...
@@ -205,7 +220,7 @@ public class Blimp extends JApplet
205 220
     //show file select dialog
206 221
     fileChooser = new JFileChooser( );
207 222
     fileChooser.setDialogTitle( "Blimp - Load..." );
208
-    fileChooser.setFileFilter( new BlinkenFileFilter( ) );
223
+    setFileFilters( fileChooser );
209 224
     if( curDir != null )
210 225
       fileChooser.setCurrentDirectory( curDir );
211 226
     if( fileChooser.showOpenDialog( dialogParent ) == JFileChooser.APPROVE_OPTION )
... ...
@@ -227,6 +242,21 @@ public class Blimp extends JApplet
227 242
       actionFileSaveAs( );
228 243
       return;
229 244
     }
245
+    //warn if selected format does not fully support current format
246
+    if( curFile.getPath( ).endsWith( ".blm" ) && (curMovie.getChannels( ) > 1 || curMovie.getMaxval( ) > 1) )
247
+    {
248
+      JOptionPane.showMessageDialog( dialogParent,
249
+                                     "The selected format \"BlinkenLights Movie (*.blm)\"\nonly supports one channel with two colors.\nFor not losing any information, please save\nyour movie as \"Blinkenlights Markup Language movie (*.bml)\"",
250
+                                     "Blimp - Save - Warning",
251
+                                     JOptionPane.WARNING_MESSAGE );
252
+    }
253
+    if( curFile.getPath( ).endsWith( ".bmm" ) && curMovie.getChannels( ) > 1 )
254
+    {
255
+      JOptionPane.showMessageDialog( dialogParent,
256
+                                     "The selected format \"BlinkenMini Movie (*.blm)\"\nonly supports one channel.\nFor not losing any information, please save\nyour movie as \"Blinkenlights Markup Language movie (*.bml)\"",
257
+                                     "Blimp - Save - Warning",
258
+                                     JOptionPane.WARNING_MESSAGE );
259
+    }
230 260
     //save file
231 261
     if( curMovie.save( curFile.getPath( ) ) )
232 262
     {
... ...
@@ -249,7 +279,7 @@ public class Blimp extends JApplet
249 279
     //show file select dialog
250 280
     fileChooser = new JFileChooser( );
251 281
     fileChooser.setDialogTitle( "Blimp - Save as..." );
252
-    fileChooser.setFileFilter( new BlinkenFileFilter( ) );
282
+    setFileFilters( fileChooser );
253 283
     if( curDir != null )
254 284
       fileChooser.setCurrentDirectory( curDir );
255 285
     if( curFile != null )
... ...
@@ -638,12 +668,12 @@ public class Blimp extends JApplet
638 668
     JFileChooser fileChooser;
639 669
     BlinkenMovie movie;
640 670
     BlinkenFrame newFrame;
641
-    int frameCnt, frameNo, cnt, i;
671
+    int frameCnt, frameNo, cnt;
642 672
 
643 673
     //show file select dialog
644 674
     fileChooser = new JFileChooser( );
645 675
     fileChooser.setDialogTitle( "Blimp - Import Movie..." );
646
-    fileChooser.setFileFilter( new BlinkenFileFilter( ) );
676
+    setFileFilters( fileChooser );
647 677
     if( curDir != null )
648 678
       fileChooser.setCurrentDirectory( curDir );
649 679
     if( fileChooser.showOpenDialog( dialogParent ) != JFileChooser.APPROVE_OPTION ) //not successful
... ...
@@ -667,7 +697,7 @@ public class Blimp extends JApplet
667 697
     if( frameNo > frameCnt )
668 698
       frameNo = frameCnt;
669 699
     cnt = movie.getFrameCnt( );
670
-    for( i = 0; i < cnt; i++ )
700
+    for( int i = 0; i < cnt; i++ )
671 701
     {
672 702
       newFrame = new BlinkenFrame( movie.getFrame( i ) );
673 703
       curMovie.insertFrame( frameNo + i, newFrame ); //this resizes the frame to fit the movie dimensions
... ...
@@ -956,7 +986,7 @@ public class Blimp extends JApplet
956 986
   {
957 987
     JOptionPane.showMessageDialog( dialogParent,
958 988
                                    "BlinkenLightsInteractiveMovieProgram\n" +
959
-                                   "version 1.3 date 2006-10-10\n" +
989
+                                   "version 1.3.1 date 2006-10-17\n" +
960 990
                                    "Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>\n" +
961 991
                                    "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n" +
962 992
                                    "a blinkenarea.org project\n" +
... ...
@@ -1821,7 +1851,7 @@ public class Blimp extends JApplet
1821 1851
     //initialize current movie, frame
1822 1852
     curDir = new File( "." );
1823 1853
     curMovie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval );
1824
-    curMovie.insertInfo( 0, "creator", "Blimp (version 1.3 date 2006-10-10)" );
1854
+    curMovie.insertInfo( 0, "creator", "Blimp (version 1.3.1 date 2006-10-17)" );
1825 1855
     curMovie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) );
1826 1856
     curFrame = null;
1827 1857
 
... ...
@@ -2441,7 +2471,7 @@ public class Blimp extends JApplet
2441 2471
 
2442 2472
     //running as command line tool
2443 2473
     System.out.println( "BlinkenLightsInteractiveMovieProgram\n" +
2444
-                        "version 1.3 date 2006-10-10\n" +
2474
+                        "version 1.3.1 date 2006-10-17\n" +
2445 2475
                         "Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>\n" +
2446 2476
                         "Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html\n" +
2447 2477
                         "a blinkenarea.org project\n" +
... ...
@@ -2453,7 +2483,7 @@ public class Blimp extends JApplet
2453 2483
 
2454 2484
     //get initial movie
2455 2485
     movie = new BlinkenMovie( defHeight, defWidth, defChannels, defMaxval );
2456
-    movie.insertInfo( 0, "creator", "Blimp (version 1.3 date 2006-10-10)" );
2486
+    movie.insertInfo( 0, "creator", "Blimp (version 1.3.1 date 2006-10-17)" );
2457 2487
     movie.insertFrame( 0, new BlinkenFrame( defHeight, defWidth, defChannels, defMaxval, defDuration ) );
2458 2488
 
2459 2489
     //process parameters
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -12,19 +12,48 @@ import java.io.*;
12 12
 
13 13
 public class BlinkenFileFilter extends javax.swing.filechooser.FileFilter
14 14
 {
15
+  boolean m_use_blm = true, m_use_bmm = true, m_use_bml = true, m_use_bbm = true;
16
+  String m_def_ext = "bml";
17
+  String m_descr = "all Blimp movie files (*.blm, *.bmm, *.bml, *.bbm)";
18
+
19
+  public BlinkenFileFilter( )
20
+  {
21
+  }
22
+
23
+  public BlinkenFileFilter( String type )
24
+  {
25
+    if( type.equals( "blm" ) ) {
26
+      m_use_blm = true;
27
+      m_def_ext = "blm";
28
+      m_descr = "BlinkenLights Movie files (*.blm)";
29
+    } else if( type.equals( "bmm" ) ) {
30
+      m_use_bmm = true;
31
+      m_def_ext = "bmm";
32
+      m_descr = "BlinkenMini Movie files (*.bmm)";
33
+    } else if( type.equals( "bml" ) ) {
34
+      m_use_bml = true;
35
+      m_def_ext = "bml";
36
+      m_descr = "Blinkenlights Markup Language files (*.bml)";
37
+    } else if( type.equals( "bbm" ) ) {
38
+      m_use_bbm = true;
39
+      m_def_ext = "bbm";
40
+      m_descr = "Binary Blinken Movie files (*.bbm)";
41
+    }
42
+  }
43
+
15 44
   public boolean accept( File file )
16 45
   {
17 46
     if( file.isDirectory( ) )
18 47
       return true;
19 48
     String fileName = file.getPath( );
20
-    return fileName.endsWith( ".blm" ) ||
21
-           fileName.endsWith( ".bmm" ) ||
22
-           fileName.endsWith( ".bml" ) ||
23
-           fileName.endsWith( ".bbm" );
49
+    return (m_use_blm && fileName.endsWith( ".blm" )) ||
50
+           (m_use_bmm && fileName.endsWith( ".bmm" )) ||
51
+           (m_use_bml && fileName.endsWith( ".bml" )) ||
52
+           (m_use_bbm && fileName.endsWith( ".bbm" ));
24 53
   }
25 54
 
26 55
   public String getDescription( )
27 56
   {
28
-    return "BlinkenLights movie files (*.blm, *.bmm, *.bml, *.bbm)";
57
+    return m_descr;
29 58
   }
30 59
 }
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
... ...
@@ -1,5 +1,5 @@
1 1
 /* BlinkenLightsInteractiveMovieProgram
2
- * version 1.3 date 2006-10-10
2
+ * version 1.3.1 date 2006-10-17
3 3
  * Copyright (C) 2004-2006: Stefan Schuermans <1stein@schuermans.info>
4 4
  * Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
5 5
  * a blinkenarea.org project
6 6