/*
 * 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 smsui;

import fungsi.koneksiDB;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import smsobj.Status;
import smsservice.SMSReadService;

/**
 *
 * @author khanzasoft
 */
public class frmSmsView extends javax.swing.JFrame {
    private final Status status;
    private Connection koneksi = null;
    private final DlgPesanMasuk dlgPesan = new DlgPesanMasuk(null,true);
    /**
     * Creates new form frmSmsViewe
     */
    public frmSmsView() {
        initComponents();
        setIconImage(new ImageIcon(super.getClass().getResource("/picture/addressbook-edit24.png")).getImage());
        this.setLocation(10,10);
        setSize(552,638);
        status = new Status();
        dlgPesan.setLocationRelativeTo(null);
    }

    /**
     * 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() {

        panelJudul1 = new widget.PanelJudul();
        jLabel2 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        panel1 = new widget.Panel();
        jLabel5 = new javax.swing.JLabel();
        internalFrame1 = new widget.InternalFrame();
        panelIndikator1 = new smsui.PanelIndikator();
        panelStatus1 = new smsui.PanelStatus();
        scrollPane1 = new widget.ScrollPane();
        logArea = new widget.TextArea();
        jPanel1 = new javax.swing.JPanel();
        BtnService = new widget.Button();
        BtnPesan = new widget.Button();
        BtnKeluar = new widget.Button();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("::[ SMS Gateway KhanzaHMS ]::");

        panelJudul1.setPreferredSize(new java.awt.Dimension(440, 40));
        panelJudul1.setLayout(new java.awt.BorderLayout());

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/smsimage/phone.png"))); // NOI18N
        panelJudul1.add(jLabel2, java.awt.BorderLayout.WEST);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(240, 250, 230));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText(":: CONTROL PANEL SMS ::        ");
        jLabel1.setIconTextGap(2);
        panelJudul1.add(jLabel1, java.awt.BorderLayout.CENTER);

        getContentPane().add(panelJudul1, java.awt.BorderLayout.PAGE_START);

        panel1.setPreferredSize(new java.awt.Dimension(440, 25));
        panel1.setLayout(new java.awt.BorderLayout());

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setForeground(new java.awt.Color(240, 250, 230));
        jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel5.setText(":: SMS Center ::");
        panel1.add(jLabel5, java.awt.BorderLayout.CENTER);

        getContentPane().add(panel1, java.awt.BorderLayout.PAGE_END);

        internalFrame1.setBorder(null);
        internalFrame1.setLayout(null);
        internalFrame1.add(panelIndikator1);
        panelIndikator1.setBounds(0, 1, 417, 160);
        internalFrame1.add(panelStatus1);
        panelStatus1.setBounds(2, 495, 540, 32);

        scrollPane1.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(237, 242, 232), 1, true), "Log SMS Masuk", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 2, 11), new java.awt.Color(50,50,50))); // NOI18N

        logArea.setBorder(null);
        logArea.setColumns(20);
        logArea.setRows(5);
        scrollPane1.setViewportView(logArea);

        internalFrame1.add(scrollPane1);
        scrollPane1.setBounds(0, 159, 544, 332);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(237, 242, 232), 1, true), "Action", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 2, 11), new java.awt.Color(50,50,50))); // NOI18N
        jPanel1.setOpaque(false);
        jPanel1.setLayout(null);

        BtnService.setIcon(new javax.swing.ImageIcon(getClass().getResource("/smsimage/control.png"))); // NOI18N
        BtnService.setMnemonic('S');
        BtnService.setText("Service");
        BtnService.setToolTipText("Alt+S");
        BtnService.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        BtnService.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        BtnService.setIconTextGap(2);
        BtnService.setMargin(new java.awt.Insets(2, 5, 2, 5));
        BtnService.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BtnServiceActionPerformed(evt);
            }
        });
        jPanel1.add(BtnService);
        BtnService.setBounds(12, 25, 100, 30);

        BtnPesan.setIcon(new javax.swing.ImageIcon(getClass().getResource("/smsimage/pesan.png"))); // NOI18N
        BtnPesan.setMnemonic('P');
        BtnPesan.setText("Pesan");
        BtnPesan.setToolTipText("Alt+P");
        BtnPesan.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        BtnPesan.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        BtnPesan.setIconTextGap(2);
        BtnPesan.setMargin(new java.awt.Insets(2, 5, 2, 5));
        BtnPesan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BtnPesanActionPerformed(evt);
            }
        });
        jPanel1.add(BtnPesan);
        BtnPesan.setBounds(12, 65, 100, 30);

        BtnKeluar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/smsimage/control_power.png"))); // NOI18N
        BtnKeluar.setMnemonic('K');
        BtnKeluar.setText("Keluar");
        BtnKeluar.setToolTipText("Alt+K");
        BtnKeluar.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        BtnKeluar.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        BtnKeluar.setIconTextGap(2);
        BtnKeluar.setMargin(new java.awt.Insets(2, 5, 2, 5));
        BtnKeluar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BtnKeluarActionPerformed(evt);
            }
        });
        jPanel1.add(BtnKeluar);
        BtnKeluar.setBounds(12, 105, 100, 30);

        internalFrame1.add(jPanel1);
        jPanel1.setBounds(419, 1, 125, 160);

        getContentPane().add(internalFrame1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void BtnServiceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BtnServiceActionPerformed
        try {
            koneksi = koneksiDB.condb();
        } catch (Exception e) {
            panelStatus1.setStatusKoneksi(PanelStatus.KONEKSI_Catatan,"Catatan saat Koneksi ke database");
            return;
        }

        if(koneksi == null){
            return;
        }

        SMSReadService smsService = new SMSReadService( koneksi,logArea);
        smsService.setStatus(status);
        try {
            smsService.startService();
            panelIndikator1.setStatus(status);
            panelStatus1.setStatusKoneksi(PanelStatus.TERSAMBUNG,"Service tersedia");
        } catch (Exception ex) {
            panelStatus1.setStatusKoneksi(PanelStatus.TERSAMBUNG,"Catatan saat mulai Service");
            System.out.println("Notifikasi : "+ex);
        }

    }//GEN-LAST:event_BtnServiceActionPerformed

    Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();   
    private void BtnPesanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BtnPesanActionPerformed
        if(koneksi == null ){
            JOptionPane.showMessageDialog(this, "Start Service terlebih dahulu!!");
        }else{
            dlgPesan.setSize(screen.width-100,screen.height-100);
            dlgPesan.setLocationRelativeTo(null);
            dlgPesan.setVisible(true);            
        }
    }//GEN-LAST:event_BtnPesanActionPerformed

    private void BtnKeluarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BtnKeluarActionPerformed
        dispose();
    }//GEN-LAST:event_BtnKeluarActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* 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(frmSmsView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(frmSmsView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(frmSmsView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(frmSmsView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new frmSmsView().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private widget.Button BtnKeluar;
    private widget.Button BtnPesan;
    private widget.Button BtnService;
    private widget.InternalFrame internalFrame1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private widget.TextArea logArea;
    private widget.Panel panel1;
    private smsui.PanelIndikator panelIndikator1;
    private widget.PanelJudul panelJudul1;
    private smsui.PanelStatus panelStatus1;
    private widget.ScrollPane scrollPane1;
    // End of variables declaration//GEN-END:variables
}
