package de.jgsoftwares.guiserverpanel.frames;

import javax.swing.tree.DefaultMutableTreeNode;
import java.io.*;
import java.util.HashMap;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.UIManager;


public class MainPanel extends javax.swing.JFrame {

    
    public static DefaultMutableTreeNode rootNode;

    public static DefaultMutableTreeNode dockerimages;
    public static DefaultMutableTreeNode dockercontainers;


    Process process;
    BufferedReader reader;
    
    HashMap dockercontainerhashmap;

    /**
     * Creates new form MainPanel
     */
    public MainPanel() {
    
              
        dockercontainerhashmap = new HashMap();
        
        rootNode = new DefaultMutableTreeNode("Docker Client");
        dockerimages = new DefaultMutableTreeNode("Images");
        dockercontainers = new DefaultMutableTreeNode("Containers");
        initComponents();  
        
        
        
        //this.pack();
        
        
    
    }

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

        jToolBar1 = new javax.swing.JToolBar();
        jButton1 = new javax.swing.JButton();
        jComboBox1 = new javax.swing.JComboBox<>();
        jButton2 = new javax.swing.JButton();
        jSplitPane1 = new javax.swing.JSplitPane();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTree1 = new javax.swing.JTree(rootNode);
        jTabbedPane1 = new javax.swing.JTabbedPane();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jToolBar1.setRollover(true);

        jButton1.setText("list running containers");
        jButton1.setFocusable(false);
        jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton1);

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "NimROD", "Nimbus", "Metal" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });
        jToolBar1.add(jComboBox1);

        jButton2.setText("help");
        jButton2.setFocusable(false);
        jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton2);

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

        //jTree1 = new JTree(rootNode);
        rootNode.add(dockerimages);
        rootNode.add(dockercontainers);
        jScrollPane1.setViewportView(jTree1);

        jSplitPane1.setLeftComponent(jScrollPane1);

        //de.jgsoftwares.guiserverpanel.frames.DNSPanel dnspanel = new de.jgsoftwares.guiserverpanel.frames.DNSPanel();

        de.jgsoftwares.guiserverpanel.frames.OpenWrt openwrt = new de.jgsoftwares.guiserverpanel.frames.OpenWrt();
        de.jgsoftwares.guiserverpanel.frames.Databases databases = new de.jgsoftwares.guiserverpanel.frames.Databases();
        de.jgsoftwares.guiserverpanel.frames.Docker dockerpanel = new de.jgsoftwares.guiserverpanel.frames.Docker();

        de.jgsoftwares.guiserverpanel.frames.ConfigPanel configpanel = new de.jgsoftwares.guiserverpanel.frames.ConfigPanel();

        // Config Panel
        jTabbedPane1.add(configpanel, "Config Panel");

        // Docker Panel
        jTabbedPane1.add(dockerpanel, "Docker Panel");

        // OpenWrt Panel
        jTabbedPane1.add(openwrt, "OpenWrt -BackFire");

        // Databases - DerbyDB - H2 - MYSql
        jTabbedPane1.add(databases, "Databases");

        // DNS Server Panel
        //jTabbedPane1.add(dnspanel, "DNS Panel");

        //JRemoteDesktop jremotedesktop = new JRemoteDesktop();
        //jTabbedPane1.add(jremotedesktop, "JRemoteDesktop");

        Landingpage landingpage = new Landingpage();
        jTabbedPane1.add(landingpage, "Landingapge");

        LanServerTCP lanservertcp = new LanServerTCP();
        jTabbedPane1.add(lanservertcp, "LanServerTCP");

        //Ebay ebaypanel = new Ebay();
        //jTabbedPane1.add(ebaypanel, "Ebay");

        jSplitPane1.setRightComponent(jTabbedPane1);

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

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

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        de.jgsoftwares.guiserverpanel.dao.dockerclient dclient = new de.jgsoftwares.guiserverpanel.dao.dockerclient();
        dclient.startdockerclient();
        
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
        // TODO add your handling code here:
        
        String selectedLookAndFeel = (String) jComboBox1.getSelectedItem();
        
        de.jgsoftwares.guiserverpanel.config.LookAndFeel lookandfeel = new de.jgsoftwares.guiserverpanel.config.LookAndFeel();
        
        switch (selectedLookAndFeel) {
            case "NimROD":
                lookandfeel.setNimRODLookAndFeel();
                break;
            case "Nimbus":
                lookandfeel.setNimbusLookAndFeel();
                break;
            case "Metal":
                lookandfeel.setMetalLookAndFeel();
                break;
            default:
                break;
        }
       
    }//GEN-LAST:event_jComboBox1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
        
        JFrame helpframe = new JFrame("Help Docker ");
        
        JEditorPane htmlPane = new JEditorPane();
        String description = ""
                + "<html>"
                + "<body>"
                + "<tr>"
                + "<p>Docker compose</p>" + "</br>"
                + "<p>Docker compose files are available on </p>" + "</br>"
                + "<p>http://demogitjava.ddns.net:8000/docker/compose-files/</p>" + "</br>"
                + "<p>to run the composefile donwload the compose file to your device </p>" + "</br>"
                + "<p>run command </p>" + "</br>"
                + "<p>docker compose up -d --build</p>" + "</br>"
                + "</br>"
                + "<p>repository on </p>" + "</br>"
                + "<p>https://hub.docker.com/search?q=jgsoftwares</p>" + "</br>"
                + "</body></html>";
                htmlPane.setContentType("text/html");
                htmlPane.setText(description);
                System.out.println(htmlPane.getText());
               
        helpframe.add(htmlPane);        
        
        helpframe.setSize(600,400);
        helpframe.setVisible(true);
    }//GEN-LAST:event_jButton2ActionPerformed

   
  


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JComboBox<String> jComboBox1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JTree jTree1;
    // End of variables declaration//GEN-END:variables
}

