/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package scriptbuilder.gui.panels;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import scriptbuilder.gui.IncidentPaletteFrame;
import scriptbuilder.structures.ELEMENT;
import scriptbuilder.structures.ScriptIncident;
import scriptbuilder.structures.XMLWriter;

/**
 *
 * @author Bryan McGuffin
 */
public class IncidentPaletteAddPanel extends javax.swing.JPanel
{

    /**
     * The script incident represented by this panel.
     */
    public ScriptIncident incident;

    IncidentPaletteFrame frame;

    /**
     * Create new IncidentPaletteAddPanel from the form.
     *
     * @param inc the incident to be represented in this panel.
     * @param frame the parent palette which holds this panel.
     */
    public IncidentPaletteAddPanel(ScriptIncident inc, IncidentPaletteFrame frame)
    {
        incident = inc;

        this.frame = frame;

        initComponents();

        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
        df.setTimeZone(TimeZone.getTimeZone("GMT"));
        String incLength = df.format(new Date(incident.length * 1000));

        labelIncidentTitle.setText(incident.number + ": " + incident.name);

        labelIncidentLength.setText("Length: " + incLength);

        labelIncidentEventCount.setText(incident.eventCount + " events");

        txtIncidentDescription.setText(incident.description);

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents()
    {

        labelIncidentTitle = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        btnAddIncident = new javax.swing.JButton();
        txtIncidentStart = new javax.swing.JTextField();
        labelIncidentLength = new javax.swing.JLabel();
        labelIncidentEventCount = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtIncidentDescription = new javax.swing.JTextArea();

        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setEnabled(false);
        setMaximumSize(new java.awt.Dimension(524, 143));

        jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);

        btnAddIncident.setText("Add");
        btnAddIncident.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                btnAddIncidentActionPerformed(evt);
            }
        });

        txtIncidentStart.setText("00:00:00");

        txtIncidentDescription.setEditable(false);
        txtIncidentDescription.setColumns(20);
        txtIncidentDescription.setLineWrap(true);
        txtIncidentDescription.setRows(5);
        txtIncidentDescription.setToolTipText("");
        txtIncidentDescription.setWrapStyleWord(true);
        txtIncidentDescription.setMaximumSize(new java.awt.Dimension(240, 80));
        txtIncidentDescription.setMinimumSize(new java.awt.Dimension(240, 80));
        jScrollPane1.setViewportView(txtIncidentDescription);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(labelIncidentLength, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                    .addComponent(labelIncidentTitle, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(labelIncidentEventCount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 13, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, 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.LEADING, false)
                    .addComponent(txtIncidentStart, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE)
                    .addComponent(btnAddIncident, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(labelIncidentTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(labelIncidentLength, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(labelIncidentEventCount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(btnAddIncident, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(15, 15, 15)
                        .addComponent(txtIncidentStart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    private void btnAddIncidentActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnAddIncidentActionPerformed
    {//GEN-HEADEREND:event_btnAddIncidentActionPerformed
        String[] tokens = txtIncidentStart.getText().split(":");

        int hrs = Integer.parseInt(tokens[0]);
        int mins = Integer.parseInt(tokens[1]);
        int secs = Integer.parseInt(tokens[2]);

        int duration = (3600 * hrs) + (60 * mins) + secs;

        incident.setOffset(duration);

        frame.addIncidentToScript(this);
    }//GEN-LAST:event_btnAddIncidentActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAddIncident;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JLabel labelIncidentEventCount;
    private javax.swing.JLabel labelIncidentLength;
    private javax.swing.JLabel labelIncidentTitle;
    private javax.swing.JTextArea txtIncidentDescription;
    private javax.swing.JTextField txtIncidentStart;
    // End of variables declaration//GEN-END:variables
}
