/*
* Copyright (C) 2015 iZc
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package de.nplusc.izc.InstallPak.legacy;
import de.nplusc.izc.InstallPak.Definitions;
import de.nplusc.izc.InstallPak.Main;
import de.nplusc.izc.tools.baseTools.HidableTableColumnModel;
import de.nplusc.izc.tools.baseTools.Tools;
import java.awt.Point;
import javax.swing.table.DefaultTableModel;
/**
*
* @author LH
*/
public class PackagerGUI extends javax.swing.JFrame
{
/**
* Creates new form PackagerGUI
*/
private PackManager p;
public PackagerGUI()
{
initComponents();
updatePosition();
lblVID.setText(Definitions.VERSION_GUI_TXT);
packStatus.setVisible(false);
p = new PackManager();
p.loadPackageData(Main.filePath);
((HidableTableColumnModel)(tblSelector.getColumnModel())).setColumnVisible(0, false);
//^auskommentieren um id-spalte sichtbar zu bekommenTempcode fürs Testen
int rows=1;
String[] tablefill = p.getPackList();
for (int i = 0; i < tablefill.length; i++)
{
String GRP = tablefill[i];
String[] data = GRP.split("\\|");
if(i>=rows)
((DefaultTableModel)tblSelector.getModel()).addRow(new String[3]);
((DefaultTableModel)tblSelector.getModel()).setValueAt(data[0], i, 0);
((DefaultTableModel)tblSelector.getModel()).setValueAt(data[1], i, 1);
((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", i, 2);
if(p.packIsInstalled(data[0]))
{
((DefaultTableModel)tblSelector.getModel()).setValueAt("Bereits installiert", i, 2);
}
}
}
private void updatePosition()
{
Point p = new Point(Main.topleft_coords_x, Main.topleft_coords_y);
setLocation(p);
}
/**
* 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")
// //GEN-BEGIN:initComponents
private void initComponents()
{
jScrollPane1 = new javax.swing.JScrollPane();
tblSelector = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
packDesc = new javax.swing.JTextArea();
packTitle = new javax.swing.JLabel();
btnInstall = new javax.swing.JButton();
packStatus = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
lblVID = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jSeparator3 = new javax.swing.JSeparator();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addComponentListener(new java.awt.event.ComponentAdapter()
{
public void componentMoved(java.awt.event.ComponentEvent evt)
{
formComponentMoved(evt);
}
});
tblSelector.setModel(new javax.swing.table.DefaultTableModel(
new Object [][]
{
{null, null, null}
},
new String []
{
"meta:id", "Name", "Status"
}
)
{
boolean[] canEdit = new boolean []
{
false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return canEdit [columnIndex];
}
});
tblSelector.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
tblSelectorMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblSelector);
tblSelector.setColumnModel(new HidableTableColumnModel(tblSelector.getColumnModel()));
if (tblSelector.getColumnModel().getColumnCount() > 0)
{
tblSelector.getColumnModel().getColumn(0).setResizable(false);
tblSelector.getColumnModel().getColumn(0).setPreferredWidth(30);
tblSelector.getColumnModel().getColumn(1).setMinWidth(80);
tblSelector.getColumnModel().getColumn(1).setPreferredWidth(80);
tblSelector.getColumnModel().getColumn(1).setMaxWidth(80);
tblSelector.getColumnModel().getColumn(2).setPreferredWidth(80);
}
packDesc.setColumns(20);
packDesc.setRows(5);
packDesc.addComponentListener(new java.awt.event.ComponentAdapter()
{
public void componentMoved(java.awt.event.ComponentEvent evt)
{
packDescComponentMoved(evt);
}
});
jScrollPane2.setViewportView(packDesc);
packTitle.setText("{PackTitle}");
btnInstall.setText("Installation starten");
btnInstall.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btnInstallActionPerformed(evt);
}
});
packStatus.setText("{DepDetails}");
jLabel1.setText("Doppelklicken um Status zu ändern");
lblVID.setText("izSetup 1.0.0 (c) 2012 iZc");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(packStatus)
.addComponent(packTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 429, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 12, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 597, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 584, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(8, 8, 8))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblVID)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 642, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(10, 10, 10)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(packStatus))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(packTitle)
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblVID, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jSeparator3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
pack();
}// //GEN-END:initComponents
private void tblSelectorMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_tblSelectorMouseClicked
{//GEN-HEADEREND:event_tblSelectorMouseClicked
int x = tblSelector.getSelectedRow();
String packid=(String)((DefaultTableModel)tblSelector.getModel()).getValueAt(x, 0);
boolean sel = p.packIsScheduled(packid);
if(evt.getClickCount()==2)
{
if(sel==false&&p.packIsInstallable(packid))
{
sel=true;
}
else
{
sel=false;
}
p.setPackInstallState(packid, sel);
}
rebuildTable();
String _packTitle = p.getPackName(packid);
String packDescr = p.getPackDescription(packid);
packTitle.setText(_packTitle);
packDesc.setText(packDescr);
}//GEN-LAST:event_tblSelectorMouseClicked
private String[] handoverqueue;
private void btnInstallActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnInstallActionPerformed
{//GEN-HEADEREND:event_btnInstallActionPerformed
p.createQueue();
handoverqueue = p.getQueue();
new Thread(new Runnable()
{
@Override
@SuppressWarnings("SleepWhileInLoop")
public void run()
{
new InstallProgressGui(handoverqueue).setVisible(true);
}
}).start();
this.setVisible(false);
}//GEN-LAST:event_btnInstallActionPerformed
private void packDescComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_packDescComponentMoved
{//GEN-HEADEREND:event_packDescComponentMoved
//NOP
}//GEN-LAST:event_packDescComponentMoved
private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
{//GEN-HEADEREND:event_formComponentMoved
Main.topleft_coords_x = getLocation().x;
Main.topleft_coords_y = getLocation().x;
}//GEN-LAST:event_formComponentMoved
private void rebuildTable()
{
String[] tablefill = p.getPackList();
for (int i = 0; i < tablefill.length; i++)
{
String GRP = tablefill[i];
String[] data = GRP.split("\\|");
String packid = data[0];
((DefaultTableModel)tblSelector.getModel()).setValueAt(data[0], i, 0);
((DefaultTableModel)tblSelector.getModel()).setValueAt(data[1], i, 1);
((DefaultTableModel)tblSelector.getModel()).setValueAt("0xFA11", i, 2);
if(p.packIsScheduled(packid))
{
Tools.DebugHelperPrint(packid+"|sched", true, "iZsetup.enableFinerDebug");
((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", i, 2);
}
else
{
if(p.packIsInstalled(data[0]))
{
Tools.DebugHelperPrint(packid+"|exis", true, "iZsetup.enableFinerDebug");
((DefaultTableModel)tblSelector.getModel()).setValueAt("Bereits installiert", i, 2);
}
else
{
if(!p.packIsInstallable(packid))
{
String depName = "";
String depID = p.packDependency(data[0]);
try
{
depName = p.getPackName(depID);
}
catch(Exception e)
{
}
Tools.DebugHelperPrint(packid+"|reqdep:"+depID, true, "iZsetup.enableFinerDebug");
((DefaultTableModel)tblSelector.getModel()).setValueAt(depName+" benötigt", i, 2);
}
else
{
((DefaultTableModel)tblSelector.getModel()).setValueAt("Abgewählt", i, 2);
}
}
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[])
{
/* Set the Nimbus look and feel */
//
/* 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(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (InstantiationException ex)
{
java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (IllegalAccessException ex)
{
java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (javax.swing.UnsupportedLookAndFeelException ex)
{
java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new PackagerGUI().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnInstall;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JLabel lblVID;
private javax.swing.JTextArea packDesc;
private javax.swing.JLabel packStatus;
private javax.swing.JLabel packTitle;
private javax.swing.JTable tblSelector;
// End of variables declaration//GEN-END:variables
}