Преглед на файлове

continueing burnme installation;

git-svn-id: http://repo.nplusc.de/svn/iZink@112 8b19561d-0d00-6744-8ac1-9afc8f58a8aa
masterX244 преди 11 години
родител
ревизия
d1e951c261

+ 2 - 2
iZpl/src/de/nplusc/izc/iZpl/Builder.java

@@ -382,7 +382,7 @@ public class Builder extends javax.swing.JFrame
                     if (args.length > 1 && (args[0].equals("--burn")))
                     {
                         BurnMe.InitializeBurnDisc(args[1]);
-                        quickQuit();
+                        //quickQuit();
                     }
                     //BuilderGUI
                 }
@@ -390,7 +390,7 @@ public class Builder extends javax.swing.JFrame
         });
     }
     
-    private static void quickQuit()
+    public static void quickQuit()
     {
         String time2 = new Date(System.currentTimeMillis()).toString();
         System.err.println("IZPL-Core:SHitdown at:" + time2);

+ 118 - 2
iZpl/src/de/nplusc/izc/iZpl/BurnLiistManager.form

@@ -23,13 +23,129 @@
   <Layout>
     <DimensionLayout dim="0">
       <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="400" max="32767" attributes="0"/>
+          <Group type="102" alignment="1" attributes="0">
+              <Group type="103" groupAlignment="1" attributes="0">
+                  <Component id="btnKnistern" alignment="0" max="32767" attributes="0"/>
+                  <Group type="102" alignment="1" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jScrollPane1" pref="603" max="32767" attributes="0"/>
+                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                          <Component id="btnDelete" max="32767" attributes="0"/>
+                          <Component id="btnDown" max="32767" attributes="0"/>
+                          <Component id="btnUp" alignment="0" max="32767" attributes="0"/>
+                      </Group>
+                  </Group>
+              </Group>
+              <EmptySpace min="-2" pref="19" max="-2" attributes="0"/>
+          </Group>
       </Group>
     </DimensionLayout>
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="300" max="32767" attributes="0"/>
+          <Group type="102" alignment="0" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                      <Component id="btnUp" min="-2" pref="211" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="btnDown" min="-2" pref="193" max="-2" attributes="0"/>
+                      <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+                      <Component id="btnDelete" pref="82" max="32767" attributes="0"/>
+                  </Group>
+                  <Group type="102" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jScrollPane1" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="btnKnistern" min="-2" pref="31" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
       </Group>
     </DimensionLayout>
   </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JButton" name="btnUp">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Up"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUpActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JButton" name="btnDown">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="DoWn"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDownActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JButton" name="btnDelete">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Delete"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDeleteActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JButton" name="btnKnistern">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Burrrrrrrrrrrrrrrrrrrrrrrrrrn!"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnKnisternActionPerformed"/>
+      </Events>
+    </Component>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTable" name="tblData">
+          <Properties>
+            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+              <Table columnCount="4" rowCount="1">
+                <Column editable="false" title="File" type="java.lang.String"/>
+                <Column editable="false" title="Playlist-Gruppe" type="java.lang.String"/>
+                <Column editable="false" title="Dauer" type="java.lang.String"/>
+                <Column editable="false" title="Disk-#" type="java.lang.String"/>
+              </Table>
+            </Property>
+            <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
+              <TableColumnModel selectionModel="1">
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+              </TableColumnModel>
+            </Property>
+            <Property name="columnSelectionAllowed" type="boolean" value="true"/>
+            <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
+              <TableHeader reorderingAllowed="false" resizingAllowed="true"/>
+            </Property>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+  </SubComponents>
 </Form>

+ 189 - 52
iZpl/src/de/nplusc/izc/iZpl/BurnLiistManager.java

@@ -4,21 +4,59 @@
  */
 package de.nplusc.izc.iZpl;
 
+import java.util.ArrayList;
+import java.util.List;
+import javax.swing.table.DefaultTableModel;
+
 /**
  *
  * @author LH
  */
 public class BurnLiistManager extends javax.swing.JFrame
 {
-
+    
+    
+    List<String[]> baseList;
     /**
      * Creates new form BurnLiistManager
      */
-    public BurnLiistManager()
+    public BurnLiistManager(List<String[]> data)
     {
+        //baseList=data;
+        baseList=data;
         initComponents();
-    }
+        //populateTables()
+        reBuildData();
 
+        
+    }
+    
+    private void reBuildData()
+    {
+        ((DefaultTableModel)tblData.getModel()).setNumRows(1);
+        int disknr=0;
+        int tr = 0;
+        int secondsFromStart=0;
+        int DiskMax = 70*60;
+        for (String[] dataset : baseList)
+        {
+            int secs = Integer.valueOf(dataset[2]);
+            secondsFromStart+=secs;
+            if(secondsFromStart>DiskMax)
+            {
+                disknr++;
+                secondsFromStart=secs;
+            }
+            tblData.getModel().setValueAt(dataset[0], tr, 0);
+            tblData.getModel().setValueAt(dataset[1], tr, 1);
+            tblData.getModel().setValueAt(dataset[2], tr, 2);
+            tblData.getModel().setValueAt(disknr, tr, 3);
+            ((DefaultTableModel)tblData.getModel()).addRow(new String[4]);
+            tr++;
+        }
+        
+    }
+    
     /**
      * This method is called from within the constructor to
      * initialize the form.
@@ -30,70 +68,169 @@ public class BurnLiistManager extends javax.swing.JFrame
     private void initComponents()
     {
 
+        btnUp = new javax.swing.JButton();
+        btnDown = new javax.swing.JButton();
+        btnDelete = new javax.swing.JButton();
+        btnKnistern = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        tblData = new javax.swing.JTable();
+
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
+        btnUp.setText("Up");
+        btnUp.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnUpActionPerformed(evt);
+            }
+        });
+
+        btnDown.setText("DoWn");
+        btnDown.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnDownActionPerformed(evt);
+            }
+        });
+
+        btnDelete.setText("Delete");
+        btnDelete.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnDeleteActionPerformed(evt);
+            }
+        });
+
+        btnKnistern.setText("Burrrrrrrrrrrrrrrrrrrrrrrrrrn!");
+        btnKnistern.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnKnisternActionPerformed(evt);
+            }
+        });
+
+        tblData.setModel(new javax.swing.table.DefaultTableModel(
+            new Object [][]
+            {
+                {null, null, null, null}
+            },
+            new String []
+            {
+                "File", "Playlist-Gruppe", "Dauer", "Disk-#"
+            }
+        )
+        {
+            Class[] types = new Class []
+            {
+                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
+            };
+            boolean[] canEdit = new boolean []
+            {
+                false, false, false, false
+            };
+
+            public Class getColumnClass(int columnIndex)
+            {
+                return types [columnIndex];
+            }
+
+            public boolean isCellEditable(int rowIndex, int columnIndex)
+            {
+                return canEdit [columnIndex];
+            }
+        });
+        tblData.setColumnSelectionAllowed(true);
+        tblData.getTableHeader().setReorderingAllowed(false);
+        jScrollPane1.setViewportView(tblData);
+        tblData.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 400, Short.MAX_VALUE)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(btnKnistern, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addGroup(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 603, Short.MAX_VALUE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                            .addComponent(btnDelete, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(btnDown, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(btnUp, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+                .addGap(19, 19, 19))
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 300, Short.MAX_VALUE)
+            .addGroup(layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGap(22, 22, 22)
+                        .addComponent(btnUp, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(btnDown, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(17, 17, 17)
+                        .addComponent(btnDelete, javax.swing.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE))
+                    .addGroup(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .addComponent(jScrollPane1)))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnKnistern, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap())
         );
 
         pack();
     }// </editor-fold>//GEN-END:initComponents
 
-    /**
-     * @param args the command line arguments
-     */
-    public static void main(String args[])
-    {
-        /* Set the Nimbus look and feel */
-        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
-        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
-         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
-         */
-        try
-        {
-            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
-            {
-                if ("Nimbus".equals(info.getName()))
-                {
-                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
-                    break;
-                }
-            }
-        }
-        catch (ClassNotFoundException ex)
-        {
-            java.util.logging.Logger.getLogger(BurnLiistManager.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        }
-        catch (InstantiationException ex)
-        {
-            java.util.logging.Logger.getLogger(BurnLiistManager.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        }
-        catch (IllegalAccessException ex)
-        {
-            java.util.logging.Logger.getLogger(BurnLiistManager.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        }
-        catch (javax.swing.UnsupportedLookAndFeelException ex)
-        {
-            java.util.logging.Logger.getLogger(BurnLiistManager.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
-        }
-        //</editor-fold>
+    private void btnUpActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnUpActionPerformed
+    {//GEN-HEADEREND:event_btnUpActionPerformed
+        
+        int i = tblData.getSelectedRow();
+        if(i<1)
+            return;
+        String[] d1 = baseList.get(i);
+        baseList.remove(i);
+        baseList.add(i-1, d1);
+        tblData.setRowSelectionInterval(i-1, i-1);
+        
+        reBuildData();
+    }//GEN-LAST:event_btnUpActionPerformed
+
+    private void btnDownActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnDownActionPerformed
+    {//GEN-HEADEREND:event_btnDownActionPerformed
+        int i = tblData.getSelectedRow();
+        if(i>baseList.size()-2)
+           return;
+        String[] d1 = baseList.get(i+1);
+        baseList.remove(i+1);
+        baseList.add(i, d1);
+        tblData.setRowSelectionInterval(i+1, i+1);
+        reBuildData();
+    }//GEN-LAST:event_btnDownActionPerformed
+
+    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnDeleteActionPerformed
+    {//GEN-HEADEREND:event_btnDeleteActionPerformed
+        int i = tblData.getSelectedRow();
+        baseList.remove(i);
+        reBuildData();
+    }//GEN-LAST:event_btnDeleteActionPerformed
+
+    private void btnKnisternActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnKnisternActionPerformed
+    {//GEN-HEADEREND:event_btnKnisternActionPerformed
+        BurnMe.burnDisk(baseList);
+    }//GEN-LAST:event_btnKnisternActionPerformed
 
-        /* Create and display the form */
-        java.awt.EventQueue.invokeLater(new Runnable()
-        {
-            public void run()
-            {
-                new BurnLiistManager().setVisible(true);
-            }
-        });
-    }
     // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnDelete;
+    private javax.swing.JButton btnDown;
+    private javax.swing.JButton btnKnistern;
+    private javax.swing.JButton btnUp;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JTable tblData;
     // End of variables declaration//GEN-END:variables
 }

+ 57 - 2
iZpl/src/de/nplusc/izc/iZpl/BurnMe.java

@@ -21,6 +21,7 @@ import javax.sound.sampled.AudioInputStream;
 import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.UnsupportedAudioFileException;
 import javax.swing.JFrame;
+import javax.swing.JProgressBar;
 import javax.swing.JTextArea;
 
 /**
@@ -32,7 +33,6 @@ public class BurnMe
     
     private static String burnprogP;
     private static String devideID;
-    
     public static void Configure()
     {
         String cdrpath = Preferences.userRoot().get("izpl.cdrpath", "...");
@@ -85,11 +85,13 @@ public class BurnMe
                 try
                 {
                     String path = element.split("\\n")[1];
+                    //if(path)
                     String ext = FileTK.getFileExt(path).toLowerCase();
                     int lengthInSec = 0;
                     String[] dataset = new String[3];
                     dataset[0] = path;
                     File audio = new File(path);
+                    System.err.println(path);
                     switch (ext)
                     {
                         case "mp3"://falltrhu intended
@@ -144,8 +146,61 @@ public class BurnMe
             }
             tGID++;
         }
+        if(rawList.size()==0)
+            return; //nicht weitermachen bei leerer liste
+        //handing over to stage 2 aka the Ordering
+        new BurnLiistManager(rawList).setVisible(true);   
+    }
+    private static BurnProgressGUI bpg;
+    private static List<List<String[]>> disks;
+    public static void burnDisk(List<String[]> tracks)
+    {
+        
+        List<String[]> disk= new ArrayList<>();
+        disks = new ArrayList<>();
+        int secondsFromStart=0;
+        int DiskMax = 70*60;
+        for (String[] dataset : tracks)
+        {
+            int secs = Integer.valueOf(dataset[2]);
+            secondsFromStart+=secs;
+            if(secondsFromStart>DiskMax)
+            {
+                disks.add(disk);
+                disk = new ArrayList<>();
+                secondsFromStart=secs;
+            }
+        disk.add(dataset);
+        }
+        disks.add(disk);
+        
+        bpg = new BurnProgressGUI();
+        bpg.setVisible(true);
+        
+        new Thread(
+            new Runnable()
+            {
+
+                @Override
+                public void run()
+                {
+                    //manage Burrn itself
+                    int disksToDo = disks.size();
+                    int done =0;
+                    JProgressBar status = bpg.getDiskProgress();
+                    status.setMaximum(disksToDo);
+                    JTextArea logg = bpg.getLogPane();
+                    for (List<String[]> list : disks)
+                    {
+                        Tools.runSingleCmd(true, true, true, true, logg, new String[]{"ping","google.de"});
+                        done++;
+                        status.setValue(done);
+                    }
+                }
+            }
+        ).start();
         
+        //ffmpeg -i input.xxx -acodec pcm_s16le -ac 2 -f wav output.wav
         
     }
-    //handing over to stage 2 aka the Ordering
 }

+ 75 - 0
iZpl/src/de/nplusc/izc/iZpl/BurnProgressGUI.form

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+  </SyntheticProperties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Component id="jScrollPane1" max="32767" attributes="0"/>
+          <Group type="102" alignment="0" attributes="0">
+              <Component id="pbarDisksDone" min="-2" pref="734" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="btnCancel" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Component id="jScrollPane1" min="-2" pref="223" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="pbarDisksDone" max="32767" attributes="0"/>
+                  <Component id="btnCancel" pref="34" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTextArea" name="txaLog">
+          <Properties>
+            <Property name="columns" type="int" value="20"/>
+            <Property name="rows" type="int" value="5"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JProgressBar" name="pbarDisksDone">
+    </Component>
+    <Component class="javax.swing.JButton" name="btnCancel">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="XXXXXXX"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCancelActionPerformed"/>
+      </Events>
+    </Component>
+  </SubComponents>
+</Form>

+ 102 - 0
iZpl/src/de/nplusc/izc/iZpl/BurnProgressGUI.java

@@ -0,0 +1,102 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.iZpl;
+
+import de.nplusc.izc.tools.baseTools.Tools;
+import javax.swing.JProgressBar;
+import javax.swing.JTextArea;
+
+/**
+ *
+ * @author LH
+ */
+public class BurnProgressGUI extends javax.swing.JFrame
+{
+
+    /**
+     * Creates new form BurnProgressGUI
+     */
+    public BurnProgressGUI()
+    {
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        jScrollPane1 = new javax.swing.JScrollPane();
+        txaLog = new javax.swing.JTextArea();
+        pbarDisksDone = new javax.swing.JProgressBar();
+        btnCancel = new javax.swing.JButton();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+
+        txaLog.setColumns(20);
+        txaLog.setRows(5);
+        jScrollPane1.setViewportView(txaLog);
+
+        btnCancel.setText("XXXXXXX");
+        btnCancel.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnCancelActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addComponent(jScrollPane1)
+            .addGroup(layout.createSequentialGroup()
+                .addComponent(pbarDisksDone, javax.swing.GroupLayout.PREFERRED_SIZE, 734, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnCancel)
+                .addGap(0, 0, Short.MAX_VALUE))
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(pbarDisksDone, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addComponent(btnCancel, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)))
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+    public JTextArea getLogPane()
+    {
+        return txaLog;
+    }
+    
+    
+    public JProgressBar getDiskProgress()
+    {
+        return pbarDisksDone;
+    }
+    private void btnCancelActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnCancelActionPerformed
+    {//GEN-HEADEREND:event_btnCancelActionPerformed
+        if(Tools.dlg(true, "Wirklich abbrechen", "Cancel?"))
+            Builder.quickQuit();//footer des Logs
+    }//GEN-LAST:event_btnCancelActionPerformed
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnCancel;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JProgressBar pbarDisksDone;
+    private javax.swing.JTextArea txaLog;
+    // End of variables declaration//GEN-END:variables
+}