|
@@ -6,7 +6,13 @@
|
|
|
|
|
|
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.SinglePlayListItem;
|
|
|
+import de.nplusc.izc.tools.IOtools.FileTK;
|
|
|
+import de.nplusc.izc.tools.baseTools.Tools;
|
|
|
+import java.io.File;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import javax.swing.DefaultListModel;
|
|
|
import javax.swing.event.ListSelectionEvent;
|
|
@@ -30,19 +36,37 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
backingFile=f;
|
|
|
paremtUI=ec;
|
|
|
initComponents();
|
|
|
- List<SinglePlayListItem> pld = backingFile.getEntries();
|
|
|
- for (SinglePlayListItem spli : pld)
|
|
|
- {
|
|
|
- lm.addElement(new PLIWrapper(spli));
|
|
|
- }
|
|
|
+ refresh();
|
|
|
lstElements.addListSelectionListener((ListSelectionEvent e) ->
|
|
|
{
|
|
|
- SinglePlayListItem itm = ((PLIWrapper)lstElements.getSelectedValue()).pli;
|
|
|
- select(itm);
|
|
|
+ PLIWrapper w = (PLIWrapper)lstElements.getSelectedValue();
|
|
|
+ if(w!=null)
|
|
|
+ {
|
|
|
+ SinglePlayListItem itm = (w).pli;
|
|
|
+
|
|
|
+ select(itm);
|
|
|
+ }
|
|
|
|
|
|
});
|
|
|
+ lstElements.setSelectedIndex(0);
|
|
|
+ recheckUIState();
|
|
|
}
|
|
|
|
|
|
+ private void refresh()
|
|
|
+ {
|
|
|
+ lm.clear();
|
|
|
+ List<SinglePlayListItem> pld = backingFile.getEntries();
|
|
|
+ for (SinglePlayListItem spli : pld)
|
|
|
+ {
|
|
|
+ lm.addElement(new PLIWrapper(spli));
|
|
|
+ }
|
|
|
+
|
|
|
+ recheckUIState();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
private void select(SinglePlayListItem i)
|
|
|
{
|
|
|
pnlInclude.setVisible(false);
|
|
@@ -70,11 +94,19 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
pnlGroup.setVisible(true);
|
|
|
iGroupNumber.setValue(i.getGID());
|
|
|
}
|
|
|
+ recheckUIState();
|
|
|
}
|
|
|
|
|
|
public void resyncPriority()
|
|
|
{
|
|
|
-
|
|
|
+ PLIWrapper w = (PLIWrapper)lstElements.getSelectedValue();
|
|
|
+ if(w!=null)
|
|
|
+ {
|
|
|
+ SinglePlayListItem itm = (w).pli;
|
|
|
+
|
|
|
+ select(itm);
|
|
|
+ }
|
|
|
+ recheckUIState();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -93,45 +125,142 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
bGInclude = new javax.swing.ButtonGroup();
|
|
|
jScrollPane1 = new javax.swing.JScrollPane();
|
|
|
lstElements = new javax.swing.JList();
|
|
|
- jLabel3 = new javax.swing.JLabel();
|
|
|
- iPath = new javax.swing.JTextField();
|
|
|
- pathSelect = new javax.swing.JButton();
|
|
|
jSeparator1 = new javax.swing.JSeparator();
|
|
|
jSeparator2 = new javax.swing.JSeparator();
|
|
|
- jButton2 = new javax.swing.JButton();
|
|
|
- jButton3 = new javax.swing.JButton();
|
|
|
- jButton4 = new javax.swing.JButton();
|
|
|
+ btnSublist = new javax.swing.JButton();
|
|
|
+ btnAddElement = new javax.swing.JButton();
|
|
|
+ btnZapElement = new javax.swing.JButton();
|
|
|
+ btnUp = new javax.swing.JButton();
|
|
|
+ btnDown = new javax.swing.JButton();
|
|
|
+ pnlEdit = new javax.swing.JPanel();
|
|
|
+ pathSelect = new javax.swing.JButton();
|
|
|
+ iPath = new javax.swing.JTextField();
|
|
|
+ pnlPrio = new javax.swing.JPanel();
|
|
|
+ oCalculatedPriority = new javax.swing.JLabel();
|
|
|
+ iPriority = new javax.swing.JSpinner();
|
|
|
+ jLabel2 = new javax.swing.JLabel();
|
|
|
+ pnlGroup = new javax.swing.JPanel();
|
|
|
+ iGroupNumber = new javax.swing.JSpinner();
|
|
|
+ jLabel4 = new javax.swing.JLabel();
|
|
|
pnlInclude = new javax.swing.JPanel();
|
|
|
jLabel5 = new javax.swing.JLabel();
|
|
|
rbtnIExpand = new javax.swing.JRadioButton();
|
|
|
rbtnINoexpand = new javax.swing.JRadioButton();
|
|
|
btnLoadForEdit = new javax.swing.JButton();
|
|
|
btnApply = new javax.swing.JButton();
|
|
|
- pnlGroup = new javax.swing.JPanel();
|
|
|
- iGroupNumber = new javax.swing.JSpinner();
|
|
|
- jLabel4 = new javax.swing.JLabel();
|
|
|
- pnlPrio = new javax.swing.JPanel();
|
|
|
- oCalculatedPriority = new javax.swing.JLabel();
|
|
|
- iPriority = new javax.swing.JSpinner();
|
|
|
- jLabel2 = new javax.swing.JLabel();
|
|
|
pnlTitel = new javax.swing.JPanel();
|
|
|
- iTitle = new javax.swing.JTextField();
|
|
|
jLabel1 = new javax.swing.JLabel();
|
|
|
+ iTitle = new javax.swing.JTextField();
|
|
|
+ jLabel3 = new javax.swing.JLabel();
|
|
|
|
|
|
lstElements.setModel(lm);
|
|
|
jScrollPane1.setViewportView(lstElements);
|
|
|
|
|
|
- jLabel3.setText("Datei");
|
|
|
+ jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
|
|
|
+
|
|
|
+ btnSublist.setText("Neue Sub-Liste");
|
|
|
+ btnSublist.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnSublistActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ btnAddElement.setText("Neues Element");
|
|
|
+ btnAddElement.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnAddElementActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ btnZapElement.setText("Element entfernen");
|
|
|
+ btnZapElement.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnZapElementActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ btnUp.setText("1 hoch");
|
|
|
+ btnUp.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnUpActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ btnDown.setText("1 runter");
|
|
|
+ btnDown.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnDownActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
pathSelect.setText("Durchsuchen");
|
|
|
+ pathSelect.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ pathSelectActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
|
|
|
+ oCalculatedPriority.setText("Berechnete Priorität: 0");
|
|
|
|
|
|
- jButton2.setText("Neue Sub-Liste");
|
|
|
+ jLabel2.setText("Priorität");
|
|
|
|
|
|
- jButton3.setText("Neues Element");
|
|
|
+ javax.swing.GroupLayout pnlPrioLayout = new javax.swing.GroupLayout(pnlPrio);
|
|
|
+ pnlPrio.setLayout(pnlPrioLayout);
|
|
|
+ pnlPrioLayout.setHorizontalGroup(
|
|
|
+ pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlPrioLayout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addComponent(jLabel2)
|
|
|
+ .addGap(30, 30, 30)
|
|
|
+ .addComponent(iPriority, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE)
|
|
|
+ .addComponent(oCalculatedPriority)
|
|
|
+ .addGap(32, 32, 32))
|
|
|
+ );
|
|
|
+ pnlPrioLayout.setVerticalGroup(
|
|
|
+ pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlPrioLayout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addGroup(pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
+ .addComponent(oCalculatedPriority)
|
|
|
+ .addComponent(iPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addComponent(jLabel2))
|
|
|
+ .addContainerGap(21, Short.MAX_VALUE))
|
|
|
+ );
|
|
|
+
|
|
|
+ jLabel4.setText("Group Number");
|
|
|
|
|
|
- jButton4.setText("Element entfernen");
|
|
|
+ javax.swing.GroupLayout pnlGroupLayout = new javax.swing.GroupLayout(pnlGroup);
|
|
|
+ pnlGroup.setLayout(pnlGroupLayout);
|
|
|
+ pnlGroupLayout.setHorizontalGroup(
|
|
|
+ pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlGroupLayout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addComponent(jLabel4)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
+ .addComponent(iGroupNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addContainerGap(42, Short.MAX_VALUE))
|
|
|
+ );
|
|
|
+ pnlGroupLayout.setVerticalGroup(
|
|
|
+ pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlGroupLayout.createSequentialGroup()
|
|
|
+ .addGap(0, 11, Short.MAX_VALUE)
|
|
|
+ .addGroup(pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
+ .addComponent(iGroupNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addComponent(jLabel4)))
|
|
|
+ );
|
|
|
|
|
|
jLabel5.setText("Include-Modus");
|
|
|
|
|
@@ -176,56 +305,13 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
);
|
|
|
|
|
|
btnApply.setText("Übernehmen");
|
|
|
-
|
|
|
- jLabel4.setText("Group Number");
|
|
|
-
|
|
|
- javax.swing.GroupLayout pnlGroupLayout = new javax.swing.GroupLayout(pnlGroup);
|
|
|
- pnlGroup.setLayout(pnlGroupLayout);
|
|
|
- pnlGroupLayout.setHorizontalGroup(
|
|
|
- pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlGroupLayout.createSequentialGroup()
|
|
|
- .addContainerGap()
|
|
|
- .addComponent(jLabel4)
|
|
|
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
- .addComponent(iGroupNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addContainerGap(42, Short.MAX_VALUE))
|
|
|
- );
|
|
|
- pnlGroupLayout.setVerticalGroup(
|
|
|
- pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlGroupLayout.createSequentialGroup()
|
|
|
- .addGap(0, 11, Short.MAX_VALUE)
|
|
|
- .addGroup(pnlGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
- .addComponent(iGroupNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addComponent(jLabel4)))
|
|
|
- );
|
|
|
-
|
|
|
- oCalculatedPriority.setText("Berechnete Priorität: 0");
|
|
|
-
|
|
|
- jLabel2.setText("Priorität");
|
|
|
-
|
|
|
- javax.swing.GroupLayout pnlPrioLayout = new javax.swing.GroupLayout(pnlPrio);
|
|
|
- pnlPrio.setLayout(pnlPrioLayout);
|
|
|
- pnlPrioLayout.setHorizontalGroup(
|
|
|
- pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlPrioLayout.createSequentialGroup()
|
|
|
- .addContainerGap()
|
|
|
- .addComponent(jLabel2)
|
|
|
- .addGap(30, 30, 30)
|
|
|
- .addComponent(iPriority, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE)
|
|
|
- .addComponent(oCalculatedPriority)
|
|
|
- .addGap(32, 32, 32))
|
|
|
- );
|
|
|
- pnlPrioLayout.setVerticalGroup(
|
|
|
- pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(pnlPrioLayout.createSequentialGroup()
|
|
|
- .addContainerGap()
|
|
|
- .addGroup(pnlPrioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
- .addComponent(oCalculatedPriority)
|
|
|
- .addComponent(iPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addComponent(jLabel2))
|
|
|
- .addContainerGap(21, Short.MAX_VALUE))
|
|
|
- );
|
|
|
+ btnApply.addActionListener(new java.awt.event.ActionListener()
|
|
|
+ {
|
|
|
+ public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
|
+ {
|
|
|
+ btnApplyActionPerformed(evt);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
jLabel1.setText("Titel");
|
|
|
|
|
@@ -237,62 +323,108 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
.addComponent(iTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 439, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addContainerGap(41, Short.MAX_VALUE))
|
|
|
+ .addContainerGap(64, Short.MAX_VALUE))
|
|
|
);
|
|
|
pnlTitelLayout.setVerticalGroup(
|
|
|
pnlTitelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlTitelLayout.createSequentialGroup()
|
|
|
- .addContainerGap(21, Short.MAX_VALUE)
|
|
|
+ .addContainerGap(25, Short.MAX_VALUE)
|
|
|
.addGroup(pnlTitelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
.addComponent(jLabel1)
|
|
|
.addComponent(iTitle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
.addContainerGap())
|
|
|
);
|
|
|
|
|
|
+ jLabel3.setText("Datei");
|
|
|
+
|
|
|
+ javax.swing.GroupLayout pnlEditLayout = new javax.swing.GroupLayout(pnlEdit);
|
|
|
+ pnlEdit.setLayout(pnlEditLayout);
|
|
|
+ pnlEditLayout.setHorizontalGroup(
|
|
|
+ pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGap(10, 10, 10)
|
|
|
+ .addComponent(pnlGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGap(0, 0, Short.MAX_VALUE)
|
|
|
+ .addComponent(pathSelect, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addComponent(pnlPrio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addGap(0, 0, Short.MAX_VALUE)))
|
|
|
+ .addContainerGap())
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addComponent(pnlInclude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addGap(0, 0, Short.MAX_VALUE))))
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGap(36, 36, 36)
|
|
|
+ .addComponent(btnApply))
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addGap(18, 18, 18)
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addComponent(jLabel3)
|
|
|
+ .addGap(18, 18, 18)
|
|
|
+ .addComponent(iPath, javax.swing.GroupLayout.PREFERRED_SIZE, 437, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
+ .addComponent(pnlTitel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
|
|
+ .addGap(0, 153, Short.MAX_VALUE))
|
|
|
+ );
|
|
|
+ pnlEditLayout.setVerticalGroup(
|
|
|
+ pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addComponent(pnlTitel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(pnlEditLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
+ .addComponent(pathSelect)
|
|
|
+ .addComponent(iPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
+ .addComponent(jLabel3))
|
|
|
+ .addGap(41, 41, 41)
|
|
|
+ .addComponent(pnlPrio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
|
+ .addComponent(pnlGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addGap(34, 34, 34)
|
|
|
+ .addComponent(pnlInclude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
+ .addComponent(btnApply)
|
|
|
+ .addGap(36, 36, 36))
|
|
|
+ );
|
|
|
+
|
|
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
|
|
this.setLayout(layout);
|
|
|
layout.setHorizontalGroup(
|
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
.addGroup(layout.createSequentialGroup()
|
|
|
- .addContainerGap()
|
|
|
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(layout.createSequentialGroup()
|
|
|
+ .addContainerGap()
|
|
|
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
+ .addGroup(layout.createSequentialGroup()
|
|
|
+ .addGap(64, 64, 64)
|
|
|
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
|
+ .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))))
|
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
|
.addGroup(layout.createSequentialGroup()
|
|
|
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
|
+ .addComponent(btnSublist, javax.swing.GroupLayout.DEFAULT_SIZE, 139, Short.MAX_VALUE)
|
|
|
+ .addComponent(btnAddElement, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
+ .addComponent(btnZapElement, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
+ .addGap(582, 582, 582))
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
|
|
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 223, Short.MAX_VALUE)
|
|
|
- .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 749, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addGap(21, 21, 21)
|
|
|
- .addComponent(jLabel3)
|
|
|
- .addGap(18, 18, 18)
|
|
|
- .addComponent(iPath)
|
|
|
- .addGap(12, 12, 12)
|
|
|
- .addComponent(pathSelect, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addGap(31, 31, 31)
|
|
|
- .addComponent(btnApply))
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addGap(18, 18, 18)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
|
- .addComponent(pnlPrio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
|
- .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 139, Short.MAX_VALUE)
|
|
|
- .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
- .addComponent(jButton4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
- .addComponent(pnlInclude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
|
- .addComponent(pnlGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
|
|
- .addGap(0, 0, Short.MAX_VALUE)))
|
|
|
- .addContainerGap())
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addGap(18, 18, 18)
|
|
|
- .addComponent(pnlTitel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addComponent(pnlEdit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 687, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
|
|
|
);
|
|
|
layout.setVerticalGroup(
|
|
@@ -302,31 +434,24 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
.addGroup(layout.createSequentialGroup()
|
|
|
.addContainerGap()
|
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
- .addComponent(jScrollPane1)
|
|
|
- .addComponent(jSeparator2)))
|
|
|
- .addGroup(layout.createSequentialGroup()
|
|
|
- .addComponent(pnlTitel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
|
- .addComponent(jLabel3)
|
|
|
- .addComponent(iPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addComponent(pathSelect))
|
|
|
- .addGap(69, 69, 69)
|
|
|
- .addComponent(pnlPrio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addComponent(jSeparator2)
|
|
|
+ .addGroup(layout.createSequentialGroup()
|
|
|
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 538, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
|
+ .addComponent(btnUp)
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
+ .addComponent(btnDown))))
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
|
|
+ .addGap(5, 5, 5)
|
|
|
+ .addComponent(pnlEdit, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
- .addComponent(pnlGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGap(23, 23, 23)
|
|
|
- .addComponent(pnlInclude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
- .addGap(72, 72, 72)
|
|
|
- .addComponent(btnApply)
|
|
|
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
|
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
.addGap(18, 18, 18)
|
|
|
- .addComponent(jButton2)
|
|
|
+ .addComponent(btnSublist)
|
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
|
- .addComponent(jButton3)
|
|
|
+ .addComponent(btnAddElement)
|
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
- .addComponent(jButton4)))
|
|
|
+ .addComponent(btnZapElement)))
|
|
|
.addContainerGap())
|
|
|
);
|
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
@@ -336,21 +461,147 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
SinglePlayListItem itm = ((PLIWrapper)lstElements.getSelectedValue()).pli;
|
|
|
paremtUI.openFileTab(itm);
|
|
|
}//GEN-LAST:event_btnLoadForEditActionPerformed
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ private void btnApplyActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnApplyActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnApplyActionPerformed
|
|
|
+ SinglePlayListItem i = ((PLIWrapper)lstElements.getSelectedValue()).pli;
|
|
|
+ boolean include = i.isIncludeElement();
|
|
|
+ if(include && !(FileTK.getFileExt(iPath.getText()).equalsIgnoreCase("izpl")))
|
|
|
+ {
|
|
|
+ i.setIncludeElements(false, false);
|
|
|
+ }
|
|
|
+ if(!include&&(FileTK.getFileExt(iPath.getText()).equalsIgnoreCase("izpl")))
|
|
|
+ {
|
|
|
+ i.setIncludeElements(true, rbtnINoexpand.isSelected());
|
|
|
+ }
|
|
|
+ include = i.isIncludeElement(); //resync
|
|
|
+ i.setTargetPlaycount(Integer.valueOf(iPriority.getValue()+""));
|
|
|
+ i.setPath(iPath.getText());
|
|
|
+ if(include)
|
|
|
+ {
|
|
|
+ i.setIncludeElements(true, rbtnINoexpand.isSelected());
|
|
|
+ paremtUI.recalculatePriorities(backingFile);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ i.setTitle(i.getTitle().split(",")[0]+","+iTitle.getText());
|
|
|
+ i.setGID(Integer.valueOf(iGroupNumber.getValue()+""));
|
|
|
+ select(i);
|
|
|
+ }
|
|
|
+ paremtUI.pack();
|
|
|
+ }//GEN-LAST:event_btnApplyActionPerformed
|
|
|
+
|
|
|
+ private void btnAddElementActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnAddElementActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnAddElementActionPerformed
|
|
|
+ SinglePlayListItem i = new SinglePlayListItem("C:\\test.mp3", "##EXTINF:0,Neues Element", 1);
|
|
|
+ backingFile.getEntries().add(i);
|
|
|
+ refresh();
|
|
|
+ lstElements.setSelectedValue(new PLIWrapper(i), true);
|
|
|
+ //select(i);
|
|
|
+ recheckUIState();
|
|
|
+ }//GEN-LAST:event_btnAddElementActionPerformed
|
|
|
+
|
|
|
+ private void pathSelectActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_pathSelectActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_pathSelectActionPerformed
|
|
|
+ String p = Tools.FileChooseDlg(paremtUI);
|
|
|
+ if(!p.equals(""))
|
|
|
+ {
|
|
|
+ iPath.setText(p);
|
|
|
+ }
|
|
|
+ }//GEN-LAST:event_pathSelectActionPerformed
|
|
|
+
|
|
|
+ private void btnZapElementActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnZapElementActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnZapElementActionPerformed
|
|
|
+ PLIWrapper w = (PLIWrapper)lstElements.getSelectedValue();
|
|
|
+ if(w!=null)
|
|
|
+ {
|
|
|
+ SinglePlayListItem itm = (w).pli;
|
|
|
+ if(itm.isIncludeElement())
|
|
|
+ {
|
|
|
+ paremtUI.zapFile(itm);
|
|
|
+ }
|
|
|
+ backingFile.getEntries().remove(itm);
|
|
|
+ refresh();
|
|
|
+ }
|
|
|
+ paremtUI.pack();
|
|
|
+ recheckUIState();
|
|
|
+ }//GEN-LAST:event_btnZapElementActionPerformed
|
|
|
+
|
|
|
+ private void recheckUIState()
|
|
|
+ {
|
|
|
+ int lsi=lstElements.getSelectedIndex();
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void btnUpActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnUpActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnUpActionPerformed
|
|
|
+ int si = lstElements.getSelectedIndex();
|
|
|
+ if(si>0)
|
|
|
+ {
|
|
|
+ List<SinglePlayListItem> data = backingFile.getEntries();
|
|
|
+ Collections.swap(data, si-1, si);
|
|
|
+ }
|
|
|
+ refresh();
|
|
|
+ }//GEN-LAST:event_btnUpActionPerformed
|
|
|
+
|
|
|
+ private void btnDownActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnDownActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnDownActionPerformed
|
|
|
+ int si = lstElements.getSelectedIndex();
|
|
|
+ if(si<lm.getSize()-1)
|
|
|
+ {
|
|
|
+ List<SinglePlayListItem> data = backingFile.getEntries();
|
|
|
+ Collections.swap(data, si, si+1);
|
|
|
+ }
|
|
|
+ refresh();
|
|
|
+ }//GEN-LAST:event_btnDownActionPerformed
|
|
|
+
|
|
|
+ private void btnSublistActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnSublistActionPerformed
|
|
|
+ {//GEN-HEADEREND:event_btnSublistActionPerformed
|
|
|
+ String fp = Tools.FileChooseDlg(paremtUI, true,false,new String[]{"izpl"});
|
|
|
+ if(!fp.equals(""))
|
|
|
+ {
|
|
|
+ if(new File(fp).exists())
|
|
|
+ {
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ ((Editor)IZPLApi.getSelectedFeature()).loadPlayListIntoGraph(fp, 20, backingFile);
|
|
|
+ ((Editor)IZPLApi.getSelectedFeature()).getParseGraph().generateLookupCache();
|
|
|
+ refresh();
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (InvalidPlayListFileException ex)
|
|
|
+ {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }//GEN-LAST:event_btnSublistActionPerformed
|
|
|
+
|
|
|
|
|
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
|
private javax.swing.ButtonGroup bGInclude;
|
|
|
+ private javax.swing.JButton btnAddElement;
|
|
|
private javax.swing.JButton btnApply;
|
|
|
+ private javax.swing.JButton btnDown;
|
|
|
private javax.swing.JButton btnLoadForEdit;
|
|
|
+ private javax.swing.JButton btnSublist;
|
|
|
+ private javax.swing.JButton btnUp;
|
|
|
+ private javax.swing.JButton btnZapElement;
|
|
|
private javax.swing.JSpinner iGroupNumber;
|
|
|
private javax.swing.JTextField iPath;
|
|
|
private javax.swing.JSpinner iPriority;
|
|
|
private javax.swing.JTextField iTitle;
|
|
|
- private javax.swing.JButton jButton2;
|
|
|
- private javax.swing.JButton jButton3;
|
|
|
- private javax.swing.JButton jButton4;
|
|
|
private javax.swing.JLabel jLabel1;
|
|
|
private javax.swing.JLabel jLabel2;
|
|
|
private javax.swing.JLabel jLabel3;
|
|
@@ -362,6 +613,7 @@ public class EditorUIFileWise extends javax.swing.JPanel
|
|
|
private javax.swing.JList lstElements;
|
|
|
private javax.swing.JLabel oCalculatedPriority;
|
|
|
private javax.swing.JButton pathSelect;
|
|
|
+ private javax.swing.JPanel pnlEdit;
|
|
|
private javax.swing.JPanel pnlGroup;
|
|
|
private javax.swing.JPanel pnlInclude;
|
|
|
private javax.swing.JPanel pnlPrio;
|