Bläddra i källkod

Editor working with existing RootFile, also little fixxes

LH 10 år sedan
förälder
incheckning
5aa55a6a3f

+ 6 - 0
iZpl/src/main/java/de/nplusc/izc/iZpl/API/IZPLApi.java

@@ -165,4 +165,10 @@ public class IZPLApi
         return Main.getSelectedFeaturePlugin();
     }
     
+    public static void saveFile(PlayListFile f)
+    {
+        PLFileIO.writePLFile(f);
+    }
+    
+    
 }

+ 2 - 4
iZplPlugins/Editor/src/main/java/de/nplusc/izc/izpl/plugins/editor/PlayListFile.java → iZpl/src/main/java/de/nplusc/izc/iZpl/API/PlayListFile.java

@@ -4,10 +4,8 @@
  * and open the template in the editor.
  */
 
-package de.nplusc.izc.izpl.plugins.editor;
+package de.nplusc.izc.iZpl.API;
 
-
-import de.nplusc.izc.iZpl.API.SinglePlayListItem;
 import java.util.List;
 import java.util.Objects;
 
@@ -94,4 +92,4 @@ public class PlayListFile
     
     
     
-}
+}

+ 22 - 1
iZpl/src/main/java/de/nplusc/izc/iZpl/Utils/PLFileIO.java

@@ -8,6 +8,7 @@ package de.nplusc.izc.iZpl.Utils;
 
 import de.nplusc.izc.iZpl.API.InvalidPlayListFileException;
 import de.nplusc.izc.iZpl.API.MultiPlayListItem;
+import de.nplusc.izc.iZpl.API.PlayListFile;
 import de.nplusc.izc.iZpl.API.PlayListItem;
 import de.nplusc.izc.iZpl.API.SinglePlayListItem;
 import de.nplusc.izc.iZpl.Main;
@@ -290,7 +291,27 @@ public class PLFileIO
         }
         return mi;
     }
-
+    
+    public static void writePLFile(PlayListFile f)
+    {
+        String fp = f.getPath();
+        String pld = "#EXTM3U\n#IZPL\n";
+        for (SinglePlayListItem pli : f.getEntries())
+        {
+            if(pli.isIncludeElement())
+            {
+                pld+="#IZPL:INCLUDE|"+pli.getTargetPlaycount()+"|"+(pli.noexpandoninclude()?"NOEXPAND":"EXPAND")+"\n"+pli.getPath()+"\n";
+            }
+            else
+            {
+                pld+=pli.getTitle()+"\n"+"#IZPL:"+pli.getTargetPlaycount()+"|"+pli.getGID()+"\n"+pli.getPath()+"\n";
+            }
+        }
+        FileTK.writeFile(pld, fp);
+    }
+    
+    
+    
     private PLFileIO()
     {
     }

+ 13 - 1
iZplPlugins/Editor/src/main/java/de/nplusc/izc/izpl/plugins/editor/Editor.java

@@ -9,6 +9,7 @@ package de.nplusc.izc.izpl.plugins.editor;
 import de.nplusc.izc.iZpl.API.FeaturePlugin;
 import de.nplusc.izc.iZpl.API.IZPLApi;
 import de.nplusc.izc.iZpl.API.InvalidPlayListFileException;
+import de.nplusc.izc.iZpl.API.PlayListFile;
 import de.nplusc.izc.iZpl.API.SinglePlayListItem;
 import de.schlichtherle.truezip.file.TFile;
 import java.awt.EventQueue;
@@ -228,6 +229,17 @@ public class Editor implements FeaturePlugin
     
     void saveAll()
     {
-        
+        saveInternal(rootFile);
+    }
+    
+    private void saveInternal(PlayListFile f)
+    {
+        l.trace("saving file:"+f);
+        IZPLApi.saveFile(f);
+        Set<DefaultEdge> oe = new HashSet<>(parseGraph.outgoingEdgesOf(f));
+        for (DefaultEdge defaultEdge : oe)
+        {
+            saveInternal(parseGraph.getEdgeTarget(defaultEdge));
+        }
     }
 }

+ 3 - 0
iZplPlugins/Editor/src/main/java/de/nplusc/izc/izpl/plugins/editor/EditorUICommon.form

@@ -57,6 +57,9 @@
       <Properties>
         <Property name="text" type="java.lang.String" value="Save"/>
       </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnSaveActionPerformed"/>
+      </Events>
     </Component>
     <Component class="javax.swing.JButton" name="btnLoad">
       <Properties>

+ 13 - 0
iZplPlugins/Editor/src/main/java/de/nplusc/izc/izpl/plugins/editor/EditorUICommon.java

@@ -6,6 +6,7 @@
 
 package de.nplusc.izc.izpl.plugins.editor;
 
+import de.nplusc.izc.iZpl.API.PlayListFile;
 import de.nplusc.izc.iZpl.API.SinglePlayListItem;
 import de.nplusc.izc.tools.IOtools.FileTK;
 import java.util.Collection;
@@ -113,6 +114,13 @@ public class EditorUICommon extends javax.swing.JFrame
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
         btnSave.setText("Save");
+        btnSave.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnSaveActionPerformed(evt);
+            }
+        });
 
         btnLoad.setText("Load");
         btnLoad.addActionListener(new java.awt.event.ActionListener()
@@ -158,6 +166,11 @@ public class EditorUICommon extends javax.swing.JFrame
         // TODO add your handling code here:
     }//GEN-LAST:event_btnLoadActionPerformed
 
+    private void btnSaveActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnSaveActionPerformed
+    {//GEN-HEADEREND:event_btnSaveActionPerformed
+        e.saveAll();
+    }//GEN-LAST:event_btnSaveActionPerformed
+
     
     
     

+ 3 - 2
iZplPlugins/Editor/src/main/java/de/nplusc/izc/izpl/plugins/editor/EditorUIFileWise.java

@@ -8,6 +8,7 @@ package de.nplusc.izc.izpl.plugins.editor;
 
 import de.nplusc.izc.iZpl.API.IZPLApi;
 import de.nplusc.izc.iZpl.API.InvalidPlayListFileException;
+import de.nplusc.izc.iZpl.API.PlayListFile;
 import de.nplusc.izc.iZpl.API.SinglePlayListItem;
 import de.nplusc.izc.tools.IOtools.FileTK;
 import de.nplusc.izc.tools.baseTools.Tools;
@@ -540,8 +541,8 @@ public class EditorUIFileWise extends javax.swing.JPanel
         int lsm=lm.getSize();
         pnlEdit.setVisible(lsi!=-1);
         btnZapElement.setEnabled(lsi!=-1);
-        btnUp.setEnabled(lsi!=-1&&lsi<lsm-1);
-        btnDown.setEnabled(lsi!=-1&&lsi>0);
+        btnDown.setEnabled(lsi!=-1&&lsi<lsm-1);
+        btnUp.setEnabled(lsi!=-1&&lsi>0);
     }
 
     private void btnUpActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnUpActionPerformed