浏览代码

added sorting to the PLView columns, preparations for editor (not fully done yet)

git-svn-id: http://repo.nplusc.de/svn/iZink@311 8b19561d-0d00-6744-8ac1-9afc8f58a8aa
masterX244 10 年之前
父节点
当前提交
0c073e27ae

+ 8 - 2
iZpl/src/de/nplusc/izc/iZpl/GUI/PlayListManagingDefault.form

@@ -55,8 +55,9 @@
       <SubComponents>
         <Component class="javax.swing.JTable" name="tblPLE">
           <Properties>
-            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
-              <Table columnCount="3" rowCount="4">
+            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor" postCode="tblPLE.setColumnModel (new HidableTableColumnModel(tblPLE.getColumnModel()));&#xa;tblPLE.setAutoCreateRowSorter (true);">
+              <Table columnCount="4" rowCount="4">
+                <Column editable="false" title="ID" type="java.lang.Integer"/>
                 <Column editable="false" title="Element-Titel" type="java.lang.String"/>
                 <Column editable="true" title="# to Play" type="java.lang.Integer"/>
                 <Column editable="false" title="# Played" type="java.lang.Integer"/>
@@ -64,6 +65,11 @@
             </Property>
             <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
               <TableColumnModel selectionModel="0">
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="false">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
                 <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
                   <Title/>
                   <Editor/>

+ 40 - 24
iZpl/src/de/nplusc/izc/iZpl/GUI/PlayListManagingDefault.java

@@ -5,6 +5,7 @@
 package de.nplusc.izc.iZpl.GUI;
 
 import de.nplusc.izc.tools.UiToolz.TableCellListener;
+import de.nplusc.izc.tools.baseTools.HidableTableColumnModel;
 import de.nplusc.izc.tools.baseTools.Tools;
 import java.awt.event.ActionEvent;
 import javax.swing.AbstractAction;
@@ -19,13 +20,16 @@ import org.yaml.snakeyaml.Yaml;
 public class PlayListManagingDefault extends javax.swing.JFrame
 {
 
+    HidableTableColumnModel mdl;
+    
     /**
      * Creates new form PlayListManagingDefault
      */
     public PlayListManagingDefault()
     {
         initComponents();
-        
+        mdl=(HidableTableColumnModel) tblPLE.getColumnModel();
+        mdl.setColumnVisible(mdl.getColumn(0), false);
         Action action = new AbstractAction()
         {
             public void actionPerformed(ActionEvent e)
@@ -67,24 +71,24 @@ public class PlayListManagingDefault extends javax.swing.JFrame
         tblPLE.setModel(new javax.swing.table.DefaultTableModel(
             new Object [][]
             {
-                {null, null, null},
-                {null, null, null},
-                {null, null, null},
-                {null, null, null}
+                {null, null, null, null},
+                {null, null, null, null},
+                {null, null, null, null},
+                {null, null, null, null}
             },
             new String []
             {
-                "Element-Titel", "# to Play", "# Played"
+                "ID", "Element-Titel", "# to Play", "# Played"
             }
         )
         {
             Class[] types = new Class []
             {
-                java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class
+                java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class
             };
             boolean[] canEdit = new boolean []
             {
-                false, true, false
+                false, false, true, false
             };
 
             public Class getColumnClass(int columnIndex)
@@ -97,13 +101,19 @@ public class PlayListManagingDefault extends javax.swing.JFrame
                 return canEdit [columnIndex];
             }
         });
+        tblPLE.setColumnModel (new HidableTableColumnModel(tblPLE.getColumnModel()));
+        tblPLE.setAutoCreateRowSorter (true);
         jScrollPane1.setViewportView(tblPLE);
-        tblPLE.getColumnModel().getColumn(1).setMinWidth(80);
-        tblPLE.getColumnModel().getColumn(1).setPreferredWidth(80);
-        tblPLE.getColumnModel().getColumn(1).setMaxWidth(80);
-        tblPLE.getColumnModel().getColumn(2).setMinWidth(80);
-        tblPLE.getColumnModel().getColumn(2).setPreferredWidth(80);
-        tblPLE.getColumnModel().getColumn(2).setMaxWidth(80);
+        if (tblPLE.getColumnModel().getColumnCount() > 0)
+        {
+            tblPLE.getColumnModel().getColumn(0).setResizable(false);
+            tblPLE.getColumnModel().getColumn(2).setMinWidth(80);
+            tblPLE.getColumnModel().getColumn(2).setPreferredWidth(80);
+            tblPLE.getColumnModel().getColumn(2).setMaxWidth(80);
+            tblPLE.getColumnModel().getColumn(3).setMinWidth(80);
+            tblPLE.getColumnModel().getColumn(3).setPreferredWidth(80);
+            tblPLE.getColumnModel().getColumn(3).setMaxWidth(80);
+        }
 
         btnForce.setText("Als näxxtes setzen");
         btnForce.addActionListener(new java.awt.event.ActionListener()
@@ -192,7 +202,10 @@ public class PlayListManagingDefault extends javax.swing.JFrame
 
     private void btnForceActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnForceActionPerformed
     {//GEN-HEADEREND:event_btnForceActionPerformed
-       PlayListManagingBackend.forceElement(tblPLE.getSelectedRow());
+       int viewRow = tblPLE.getSelectedRow();
+        viewRow = tblPLE.convertRowIndexToModel(viewRow);
+        
+        PlayListManagingBackend.forceElement((Integer)((DefaultTableModel)tblPLE.getModel()).getValueAt(viewRow,0));
     }//GEN-LAST:event_btnForceActionPerformed
 
     /**
@@ -248,6 +261,7 @@ public class PlayListManagingDefault extends javax.swing.JFrame
     private void rebuildTable()
     {
         rebuilding = true;
+        //mdl.setAllColumnsVisible();
         PlayListManagingBackend.refreshKeyList();
         String[] titles = PlayListManagingBackend.getTrackTitles();
         //System.out.println("titles for tblrefresh"+new Yaml().dump(titles));
@@ -255,18 +269,20 @@ public class PlayListManagingDefault extends javax.swing.JFrame
 	{
 	    ((DefaultTableModel)tblPLE.getModel()).removeRow(i-1);
 	}
-        tblPLE.setValueAt(titles[0],0,0);
-        tblPLE.setValueAt(PlayListManagingBackend.getTargetPlayCount(0),0,1);
-        tblPLE.setValueAt(PlayListManagingBackend.getPlayCount(0),0,2);
-        
-        for (int i = 1; i < titles.length; i++)
+            tblPLE.getModel().setValueAt(0,0,0);
+            tblPLE.getModel().setValueAt(titles[0],0,1);
+            tblPLE.getModel().setValueAt(PlayListManagingBackend.getTargetPlayCount(0),0,2);
+            tblPLE.getModel().setValueAt(PlayListManagingBackend.getPlayCount(0),0,3);
+        for (int i = 0; i < titles.length; i++)
         {
-            ((DefaultTableModel)tblPLE.getModel()).addRow(new Object[]{null,null,null});
-            tblPLE.setValueAt(titles[i],i,0);
-            tblPLE.setValueAt(PlayListManagingBackend.getTargetPlayCount(i),i,1);
-            tblPLE.setValueAt(PlayListManagingBackend.getPlayCount(i),i,2);
+            ((DefaultTableModel)tblPLE.getModel()).addRow(new Object[]{null,null,null,null});
+            tblPLE.getModel().setValueAt(i,i,0);
+            tblPLE.getModel().setValueAt(titles[i],i,1);
+            tblPLE.getModel().setValueAt(PlayListManagingBackend.getTargetPlayCount(i),i,2);
+            tblPLE.getModel().setValueAt(PlayListManagingBackend.getPlayCount(i),i,3);
         }
         rebuilding=false;
+        //mdl.setColumnVisible(0, false);
     }
     
     

+ 20 - 0
iZpl/src/de/nplusc/izc/iZpl/GUI/iZplGUIBackend.java

@@ -4,11 +4,31 @@
  */
 package de.nplusc.izc.iZpl.GUI;
 
+import java.awt.Image;
+
 /**
  *
  * @author LH
  */
 public class iZplGUIBackend
 {
+    public void seek(int secs)
+    {
+        
+    }
+    
+    public int getPlayPosition()
+    {
+        return 0;
+    }
+    
+    public String getFilePath()
+    {
+        return "";
+    }
     
+    public Image getCoverImage()
+    {
+        return null;
+    }
 }

+ 12 - 0
iZpl/src/de/nplusc/izc/iZpl/MultiPlayListItem.java

@@ -164,6 +164,18 @@ public class MultiPlayListItem implements PlayListItem
     {
         this.src = src;
     }
+
+    @Override
+    public boolean isIncludeElement()
+    {
+        return false;
+    }
+
+    @Override
+    public boolean noexpandoninclude()
+    {
+        return false;
+    }
     
     
 }

+ 2 - 0
iZpl/src/de/nplusc/izc/iZpl/PlayListItem.java

@@ -15,4 +15,6 @@ public interface PlayListItem
     public void setTargetPlaycount(int playcount);
     public int getCountPlayed();
     public void setCountPlayed(int countPlayed);
+    public boolean isIncludeElement(); //erweiterung um daten durchzuschleusen für die TreeView
+    public boolean noexpandoninclude();
 }

+ 20 - 1
iZpl/src/de/nplusc/izc/iZpl/SinglePlayListItem.java

@@ -14,16 +14,23 @@ public class SinglePlayListItem implements PlayListItem
 {
     private String path,Title;
     private int targetplaycount,countPlayed;
-
+    private boolean include,noexpandoninclude;
     
     public SinglePlayListItem(){};
     
     public SinglePlayListItem(String path, String Title, int playcount)
+    {
+        this(path, Title, playcount, false,false);
+    }
+    
+    public SinglePlayListItem(String path, String Title, int playcount,boolean isInclude,boolean noexpandoninclude)
     {
         this.path = path;
         this.Title = Title;
         this.targetplaycount = playcount;
         countPlayed=0; //noch nie gespielt als default; bei reload wird anderweitig verglichen :P
+        include=isInclude;
+        this.noexpandoninclude=noexpandoninclude;
     }
 
     public String getPath()
@@ -103,4 +110,16 @@ public class SinglePlayListItem implements PlayListItem
         }
         return true;
     }
+
+    @Override
+    public boolean isIncludeElement()
+    {
+        return include;
+    }
+
+    @Override
+    public boolean noexpandoninclude()
+    {
+        return noexpandoninclude;
+    }
 }

+ 46 - 15
iZpl/src/de/nplusc/izc/iZpl/Utils/PLReader.java

@@ -328,6 +328,16 @@ public class PLReader
     private static List<String[]> readListAlternativeAuxPrepare(String path)
     {
         String[] playListRaw = FileTK.fileload(path);//temporär ne bestimmte hardcoden
+        ArrayList<String> cleanup=new ArrayList<>();
+        for (String line : playListRaw)
+        {
+            if(line!=null&&!line.equals(""))
+            {
+                cleanup.add(line);
+            }
+        }
+        playListRaw=cleanup.toArray(playListRaw);
+        
         ArrayList<String[]> tempo=new ArrayList<>();
         if(playListRaw.length>=2 && playListRaw[0].equalsIgnoreCase("#EXTM3U")&&playListRaw[1].equalsIgnoreCase("#IZPL"))
         {
@@ -369,9 +379,12 @@ public class PLReader
         }
         return tempo;
     }
-    
-    
     public static HashMap<String,PlayListItem> readListAlternative(String path, int rd,int prioritybase)
+    {
+        return readListAlternative(path, rd, prioritybase, false);
+    }
+    
+    public static HashMap<String,PlayListItem> readListAlternative(String path, int rd,int prioritybase,boolean unexpandedIncludes)
     {
         HashMap<String,PlayListItem> retval = new HashMap<>();
         if(rd<0)//zählt runter um beliebigen startwert z erlauben :P
@@ -409,31 +422,41 @@ public class PLReader
                     System.out.println("Includebranch");                    
                     if(metadata[2].equalsIgnoreCase("EXPAND"))
                     {
-                        HashMap<String,PlayListItem> recurseret = readListAlternative(elements[0], rd-1, Integer.valueOf(metadata[1].trim()));//nätig in beiden fällen
-                        Set<String> keys= recurseret.keySet();
-                        for (String itemkey : keys)
+                        if(!unexpandedIncludes)
                         {
-                            PlayListItem pli = recurseret.get(itemkey);
-                            if(pli instanceof SinglePlayListItem)//multiitems instapasthru
+                            HashMap<String,PlayListItem> recurseret = readListAlternative(elements[0], rd-1, Integer.valueOf(metadata[1].trim()));//nätig in beiden fällen
+                            Set<String> keys= recurseret.keySet();
+                            for (String itemkey : keys)
                             {
-                                if(retval.containsKey(pli+""))
+                                PlayListItem pli = recurseret.get(itemkey);
+                                if(pli instanceof SinglePlayListItem)//multiitems instapasthru
                                 {
-                                    PlayListItem tpli = retval.get(pli+"");
-                                    tpli.setTargetPlaycount(tpli.getTargetPlaycount()+prioritybase*pli.getTargetPlaycount());
+                                    if(retval.containsKey(pli+""))
+                                    {
+                                        PlayListItem tpli = retval.get(pli+"");
+                                        tpli.setTargetPlaycount(tpli.getTargetPlaycount()+prioritybase*pli.getTargetPlaycount());
+                                    }
+                                    else
+                                    {
+                                        retval.put(pli+"",pli);
+                                    }
                                 }
                                 else
                                 {
                                     retval.put(pli+"",pli);
-                                }
+                                }    
                             }
-                            else
-                            {
-                                retval.put(pli+"",pli);
-                            }    
+                        }
+                        else
+                        {
+                            SinglePlayListItem includeList = new SinglePlayListItem(elements[0], FileTK.getFileName(elements[0]), Integer.valueOf(metadata[1].trim()), true,false);
+                            retval.put(includeList+"",includeList);
                         }
                     }
                     else
                     {
+                        if(!unexpandedIncludes)
+                        {
                         MultiPlayListItem pli = new MultiPlayListItem(new String[]{}, new String[]{}, Integer.valueOf(metadata[1].trim())*prioritybase);
                         //target der liste :P
                         List<String[]> listraw = readListAlternativeNoexpandAux(elements[0], rd-1);
@@ -443,6 +466,12 @@ public class PLReader
                         }
                         pli.setSrc("Block from: "+elements[0]);
                          retval.put(pli+"", pli);//multiItems sind nicht mit pfad referenziert...
+                        }
+                        else
+                        {
+                            SinglePlayListItem includeList = new SinglePlayListItem(elements[0], FileTK.getFileName(elements[0]), Integer.valueOf(metadata[1].trim()), true,true);
+                            retval.put(includeList+"",includeList);
+                        }
                     }
                     
                 }
@@ -452,6 +481,8 @@ public class PLReader
                     int gid = Integer.valueOf(metadata[1].trim());
                     if(gid>0)
                     {
+                        if(unexpandedIncludes)
+                            throw new UnsupportedOperationException("Anordnungsrelevante daten, kann nicht pasrsen fpür editor");
                         if(!groupprep.containsKey(gid))
                         {
                             groupprep.put(gid,new ArrayList<String[]>());

+ 0 - 5
iZpl/src/de/nplusc/izc/iZpl/extensions/AudioSurfCore.java

@@ -5,22 +5,17 @@
 package de.nplusc.izc.iZpl.extensions;
 
 import com.sun.jna.Native;
-import com.sun.jna.PointerType;
 import com.sun.jna.Structure;
 import com.sun.jna.WString;
-import com.sun.jna.platform.win32.User32;
 import com.sun.jna.platform.win32.WinDef.HWND;
-import com.sun.jna.platform.win32.WinUser.MSG;
 import de.nplusc.izc.tools.IOtools.FileTK;
 import de.nplusc.izc.tools.WinToolz.User32Extended;
 import de.nplusc.izc.tools.baseTools.Tools;
-import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.prefs.Preferences;
 import javax.swing.JFrame;
 import javax.swing.JTextArea;
-import org.jawin.COMException;
 //import org.jawin.donated.win32.MiscellaneousConstants;
 //import org.jawin.donated.win32.User32;
 //import org.jawin.donated.win32.W32Process;

+ 212 - 50
iZpl/src/de/nplusc/izc/iZpl/extensions/Converter.form

@@ -25,71 +25,183 @@
       <Group type="103" groupAlignment="0" attributes="0">
           <Group type="102" attributes="0">
               <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
-                      <Component id="jScrollPane1" min="-2" pref="313" max="-2" attributes="0"/>
-                  </Group>
-                  <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace min="-2" pref="106" max="-2" attributes="0"/>
-                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                      <Component id="btnLoad" alignment="0" pref="321" max="32767" attributes="0"/>
+                      <Component id="selDir" alignment="0" max="32767" attributes="0"/>
+                      <Component id="txfpath" alignment="0" max="32767" attributes="0"/>
+                      <Component id="jScrollPane1" max="32767" attributes="0"/>
                   </Group>
                   <Group type="102" alignment="0" attributes="0">
-                      <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
-                      <Component id="jButton1" min="-2" pref="152" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Component id="jButton5" min="-2" pref="162" max="-2" attributes="0"/>
+                          <Component id="btnAddList" min="-2" pref="162" max="-2" attributes="0"/>
+                      </Group>
                       <EmptySpace max="-2" attributes="0"/>
-                      <Component id="jButton2" min="-2" pref="153" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+                          <Component id="jButton2" min="-2" pref="153" max="-2" attributes="0"/>
+                          <Component id="jButton4" alignment="0" min="-2" pref="152" max="-2" attributes="0"/>
+                      </Group>
                   </Group>
-                  <Component id="btnLoad" alignment="0" max="32767" attributes="0"/>
-                  <Component id="selDir" alignment="0" max="32767" attributes="0"/>
-                  <Component id="txfpath" alignment="0" max="32767" attributes="0"/>
               </Group>
               <EmptySpace max="-2" attributes="0"/>
-              <Component id="jSeparator1" min="-2" pref="16" max="-2" attributes="0"/>
-              <EmptySpace pref="740" max="32767" attributes="0"/>
+              <Component id="jSeparator2" min="-2" max="-2" attributes="0"/>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="103" groupAlignment="0" attributes="0">
+                      <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
+                          <Component id="jButton1" alignment="0" max="32767" attributes="0"/>
+                          <Component id="jButton3" alignment="0" max="32767" attributes="0"/>
+                      </Group>
+                      <Group type="102" alignment="1" attributes="0">
+                          <Group type="103" groupAlignment="0" attributes="0">
+                              <Group type="103" alignment="1" groupAlignment="0" attributes="0">
+                                  <Group type="102" alignment="1" attributes="0">
+                                      <Group type="103" groupAlignment="1" max="-2" attributes="0">
+                                          <Component id="jLabel2" pref="68" max="32767" attributes="0"/>
+                                          <Component id="jLabel3" max="32767" attributes="0"/>
+                                      </Group>
+                                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                                  </Group>
+                                  <Group type="102" alignment="0" attributes="0">
+                                      <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
+                                      <EmptySpace min="-2" pref="40" max="-2" attributes="0"/>
+                                  </Group>
+                              </Group>
+                              <Group type="102" alignment="0" attributes="0">
+                                  <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                                  <EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                              <Component id="jTextField2" max="32767" attributes="0"/>
+                              <Component id="jTextField1" alignment="0" pref="291" max="32767" attributes="0"/>
+                              <Component id="jSpinner1" alignment="0" min="-2" pref="66" max="-2" attributes="0"/>
+                              <Component id="jSpinner2" alignment="0" min="-2" pref="66" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="1" attributes="0">
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="jLabel5" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="jLabel6" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace type="separate" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                          <Component id="jCheckBox1" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="jCheckBox2" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+              </Group>
+              <EmptySpace max="32767" attributes="0"/>
           </Group>
       </Group>
     </DimensionLayout>
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="1" attributes="0">
-              <EmptySpace min="-2" pref="16" max="-2" attributes="0"/>
-              <Component id="jScrollPane1" min="-2" pref="437" max="-2" attributes="0"/>
+          <Group type="102" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="1" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jScrollPane1" min="-2" pref="408" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="btnAddList" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                      <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="3" attributes="0">
+                          <Component id="jButton4" alignment="3" min="-2" max="-2" attributes="0"/>
+                          <Component id="jButton5" alignment="3" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="-2" pref="15" max="-2" attributes="0"/>
+                      <Component id="btnLoad" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="selDir" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
+                      <Component id="txfpath" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <Component id="jSeparator2" max="32767" attributes="0"/>
+              </Group>
               <EmptySpace max="-2" attributes="0"/>
+          </Group>
+          <Group type="102" alignment="1" attributes="0">
+              <EmptySpace min="-2" pref="71" max="-2" attributes="0"/>
               <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jButton1" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jTextField1" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jTextField2" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jLabel4" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSpinner1" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSpinner2" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jCheckBox1" min="-2" max="-2" attributes="0"/>
+                  <Component id="jLabel5" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jLabel6" min="-2" max="-2" attributes="0"/>
+                  <Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
               </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="btnLoad" min="-2" max="-2" attributes="0"/>
-              <EmptySpace pref="13" max="32767" attributes="0"/>
-              <Component id="selDir" min="-2" max="-2" attributes="0"/>
               <EmptySpace type="unrelated" max="-2" attributes="0"/>
-              <Component id="txfpath" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jButton3" min="-2" max="-2" attributes="0"/>
+              <EmptySpace type="unrelated" max="-2" attributes="0"/>
+              <Component id="jButton1" min="-2" max="-2" attributes="0"/>
+              <EmptySpace max="32767" attributes="0"/>
           </Group>
-          <Component id="jSeparator1" max="32767" attributes="0"/>
       </Group>
     </DimensionLayout>
   </Layout>
   <SubComponents>
     <Component class="javax.swing.JTextField" name="txfpath">
     </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator1">
+    <Component class="javax.swing.JButton" name="selDir">
       <Properties>
-        <Property name="orientation" type="int" value="1"/>
+        <Property name="text" type="java.lang.String" value="Liste speichern"/>
       </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="selDirActionPerformed"/>
+      </Events>
     </Component>
-    <Component class="javax.swing.JButton" name="selDir">
+    <Component class="javax.swing.JButton" name="btnLoad">
       <Properties>
-        <Property name="text" type="java.lang.String" value="Verzeichnis zum Speichern ausw&#xe4;hlen"/>
+        <Property name="text" type="java.lang.String" value="Startliste laden"/>
       </Properties>
       <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="selDirActionPerformed"/>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnLoadActionPerformed"/>
       </Events>
     </Component>
+    <Component class="javax.swing.JButton" name="btnAddList">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Liste hinzuf&#xfc;gen"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="jButton2">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Liste entfernen"/>
+      </Properties>
+    </Component>
     <Container class="javax.swing.JScrollPane" name="jScrollPane1">
       <AuxValues>
         <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
@@ -97,37 +209,87 @@
 
       <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
       <SubComponents>
-        <Component class="javax.swing.JList" name="lstFilesLoaded">
-          <Properties>
-            <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="new javax.swing.DefaultListModel&lt;String&gt;()&#xa;" type="code"/>
-            </Property>
-          </Properties>
+        <Component class="javax.swing.JTree" name="jTree1">
         </Component>
       </SubComponents>
     </Container>
-    <Component class="javax.swing.JButton" name="btnLoad">
+    <Component class="javax.swing.JSeparator" name="jSeparator2">
       <Properties>
-        <Property name="text" type="java.lang.String" value="Verzeichnis laden"/>
+        <Property name="orientation" type="int" value="1"/>
       </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnLoadActionPerformed"/>
-      </Events>
     </Component>
     <Component class="javax.swing.JButton" name="jButton1">
       <Properties>
-        <Property name="text" type="java.lang.String" value="Liste hinzuf&#xfc;gen"/>
+        <Property name="text" type="java.lang.String" value="Update"/>
       </Properties>
     </Component>
-    <Component class="javax.swing.JButton" name="jButton2">
+    <Component class="javax.swing.JTextField" name="jTextField1">
       <Properties>
-        <Property name="text" type="java.lang.String" value="Liste entfernen"/>
+        <Property name="text" type="java.lang.String" value="jTextField1"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JTextField" name="jTextField2">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="jTextField2"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel2">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Name"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel3">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Pfad"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel4">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Priorit&#xe4;t"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JCheckBox" name="jCheckBox1">
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel5">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Relativer Pfad"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JCheckBox" name="jCheckBox2">
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel6">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Expandieren"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSpinner" name="jSpinner1">
+    </Component>
+    <Component class="javax.swing.JButton" name="jButton3">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Load Media data from file"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel7">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="entfernt nur den include"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="jButton4">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Element entfernen"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="jButton5">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Element einf&#xfc;gen"/>
       </Properties>
     </Component>
     <Component class="javax.swing.JLabel" name="jLabel1">
       <Properties>
-        <Property name="text" type="java.lang.String" value="entfernt nicht die referenzierten elemente"/>
+        <Property name="text" type="java.lang.String" value="GruppenID"/>
       </Properties>
     </Component>
+    <Component class="javax.swing.JSpinner" name="jSpinner2">
+    </Component>
   </SubComponents>
 </Form>

+ 171 - 45
iZpl/src/de/nplusc/izc/iZpl/extensions/Converter.java

@@ -39,20 +39,34 @@ public class Converter extends javax.swing.JFrame
     {
 
         txfpath = new javax.swing.JTextField();
-        jSeparator1 = new javax.swing.JSeparator();
         selDir = new javax.swing.JButton();
-        jScrollPane1 = new javax.swing.JScrollPane();
-        lstFilesLoaded = new javax.swing.JList();
         btnLoad = new javax.swing.JButton();
-        jButton1 = new javax.swing.JButton();
+        btnAddList = new javax.swing.JButton();
         jButton2 = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jTree1 = new javax.swing.JTree();
+        jSeparator2 = new javax.swing.JSeparator();
+        jButton1 = new javax.swing.JButton();
+        jTextField1 = new javax.swing.JTextField();
+        jTextField2 = new javax.swing.JTextField();
+        jLabel2 = new javax.swing.JLabel();
+        jLabel3 = new javax.swing.JLabel();
+        jLabel4 = new javax.swing.JLabel();
+        jCheckBox1 = new javax.swing.JCheckBox();
+        jLabel5 = new javax.swing.JLabel();
+        jCheckBox2 = new javax.swing.JCheckBox();
+        jLabel6 = new javax.swing.JLabel();
+        jSpinner1 = new javax.swing.JSpinner();
+        jButton3 = new javax.swing.JButton();
+        jLabel7 = new javax.swing.JLabel();
+        jButton4 = new javax.swing.JButton();
+        jButton5 = new javax.swing.JButton();
         jLabel1 = new javax.swing.JLabel();
+        jSpinner2 = new javax.swing.JSpinner();
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
-        jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
-
-        selDir.setText("Verzeichnis zum Speichern auswählen");
+        selDir.setText("Liste speichern");
         selDir.addActionListener(new java.awt.event.ActionListener()
         {
             public void actionPerformed(java.awt.event.ActionEvent evt)
@@ -61,11 +75,7 @@ public class Converter extends javax.swing.JFrame
             }
         });
 
-        lstFilesLoaded.setModel(new javax.swing.DefaultListModel<String>()
-        );
-        jScrollPane1.setViewportView(lstFilesLoaded);
-
-        btnLoad.setText("Verzeichnis laden");
+        btnLoad.setText("Startliste laden");
         btnLoad.addActionListener(new java.awt.event.ActionListener()
         {
             public void actionPerformed(java.awt.event.ActionEvent evt)
@@ -74,11 +84,39 @@ public class Converter extends javax.swing.JFrame
             }
         });
 
-        jButton1.setText("Liste hinzufügen");
+        btnAddList.setText("Liste hinzufügen");
 
         jButton2.setText("Liste entfernen");
 
-        jLabel1.setText("entfernt nicht die referenzierten elemente");
+        jScrollPane1.setViewportView(jTree1);
+
+        jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
+
+        jButton1.setText("Update");
+
+        jTextField1.setText("jTextField1");
+
+        jTextField2.setText("jTextField2");
+
+        jLabel2.setText("Name");
+
+        jLabel3.setText("Pfad");
+
+        jLabel4.setText("Priorität");
+
+        jLabel5.setText("Relativer Pfad");
+
+        jLabel6.setText("Expandieren");
+
+        jButton3.setText("Load Media data from file");
+
+        jLabel7.setText("entfernt nur den include");
+
+        jButton4.setText("Element entfernen");
+
+        jButton5.setText("Element einfügen");
+
+        jLabel1.setText("GruppenID");
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
@@ -86,44 +124,116 @@ public class Converter extends javax.swing.JFrame
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(layout.createSequentialGroup()
                 .addContainerGap()
-                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-                    .addGroup(layout.createSequentialGroup()
-                        .addGap(7, 7, 7)
-                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE))
-                    .addGroup(layout.createSequentialGroup()
-                        .addGap(106, 106, 106)
-                        .addComponent(jLabel1))
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                        .addComponent(btnLoad, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
+                        .addComponent(selDir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(txfpath)
+                        .addComponent(jScrollPane1))
                     .addGroup(layout.createSequentialGroup()
-                        .addGap(10, 10, 10)
-                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(btnAddList, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE))
-                    .addComponent(btnLoad, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(selDir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(txfpath))
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(jLabel7)
+                            .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))))
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(740, Short.MAX_VALUE))
+                .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(18, 18, 18)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+                            .addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+                                            .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE)
+                                            .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
+                                    .addGroup(layout.createSequentialGroup()
+                                        .addComponent(jLabel4)
+                                        .addGap(40, 40, 40)))
+                                .addGroup(layout.createSequentialGroup()
+                                    .addComponent(jLabel1)
+                                    .addGap(26, 26, 26)))
+                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                                .addComponent(jTextField2)
+                                .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE)
+                                .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE))))
+                    .addGroup(layout.createSequentialGroup()
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                            .addGroup(layout.createSequentialGroup()
+                                .addComponent(jLabel5)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
+                            .addGroup(layout.createSequentialGroup()
+                                .addComponent(jLabel6)
+                                .addGap(18, 18, 18)))
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                            .addComponent(jCheckBox1)
+                            .addComponent(jCheckBox2))))
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                        .addContainerGap()
+                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 408, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                            .addComponent(btnAddList)
+                            .addComponent(jButton2))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                        .addComponent(jLabel7)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                            .addComponent(jButton4)
+                            .addComponent(jButton5))
+                        .addGap(15, 15, 15)
+                        .addComponent(btnLoad)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(selDir)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                        .addComponent(txfpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(jSeparator2))
+                .addContainerGap())
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                .addGap(16, 16, 16)
-                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 437, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGap(71, 71, 71)
                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-                    .addComponent(jButton1)
-                    .addComponent(jButton2))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(jLabel1)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(btnLoad)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
-                .addComponent(selDir)
+                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jLabel2))
+                .addGap(18, 18, 18)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jLabel3))
+                .addGap(17, 17, 17)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jLabel4)
+                    .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(18, 18, 18)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jLabel1)
+                    .addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(18, 18, 18)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(jCheckBox1)
+                    .addComponent(jLabel5))
+                .addGap(10, 10, 10)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(jLabel6)
+                    .addComponent(jCheckBox2))
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                .addComponent(txfpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap())
-            .addComponent(jSeparator1)
+                .addComponent(jButton3)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                .addComponent(jButton1)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
         pack();
@@ -230,13 +340,29 @@ public class Converter extends javax.swing.JFrame
         });
     }
     // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnAddList;
     private javax.swing.JButton btnLoad;
     private javax.swing.JButton jButton1;
     private javax.swing.JButton jButton2;
+    private javax.swing.JButton jButton3;
+    private javax.swing.JButton jButton4;
+    private javax.swing.JButton jButton5;
+    private javax.swing.JCheckBox jCheckBox1;
+    private javax.swing.JCheckBox jCheckBox2;
     private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JLabel jLabel4;
+    private javax.swing.JLabel jLabel5;
+    private javax.swing.JLabel jLabel6;
+    private javax.swing.JLabel jLabel7;
     private javax.swing.JScrollPane jScrollPane1;
-    private javax.swing.JSeparator jSeparator1;
-    private javax.swing.JList lstFilesLoaded;
+    private javax.swing.JSeparator jSeparator2;
+    private javax.swing.JSpinner jSpinner1;
+    private javax.swing.JSpinner jSpinner2;
+    private javax.swing.JTextField jTextField1;
+    private javax.swing.JTextField jTextField2;
+    private javax.swing.JTree jTree1;
     private javax.swing.JButton selDir;
     private javax.swing.JTextField txfpath;
     // End of variables declaration//GEN-END:variables