package jfconfig;
/**
* Created : Mar 7, 2012
*
* @author pquiring
*/
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javaforce.*;
import javaforce.linux.*;
public class ServersPanel extends javax.swing.JPanel implements ActionListener {
/**
* Creates new form ServersPanel
*/
public ServersPanel() {
initComponents();
initButtons();
updateInstallButtons();
}
/**
* 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();
back = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
config_apache = new javax.swing.JButton();
install_apache = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
config_tomcat = new javax.swing.JButton();
install_tomcat = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
install_mysql = new javax.swing.JButton();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
install_xrdp = new javax.swing.JButton();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
config_proxy = new javax.swing.JButton();
install_proxy = new javax.swing.JButton();
config_dhcp = new javax.swing.JButton();
install_dhcp = new javax.swing.JButton();
config_dns = new javax.swing.JButton();
install_dns = new javax.swing.JButton();
config_firewall = new javax.swing.JButton();
install_pop3 = new javax.swing.JButton();
install_smtp = new javax.swing.JButton();
install_imap = new javax.swing.JButton();
config_samba = new javax.swing.JButton();
jLabel21 = new javax.swing.JLabel();
install_ssh = new javax.swing.JButton();
jLabel22 = new javax.swing.JLabel();
install_php = new javax.swing.JButton();
jLabel19 = new javax.swing.JLabel();
config_vpn = new javax.swing.JButton();
install_vpn = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel20 = new javax.swing.JLabel();
jLabel23 = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();
config_j_dhcp = new javax.swing.JButton();
install_j_dhcp = new javax.swing.JButton();
config_j_dns = new javax.swing.JButton();
install_j_dns = new javax.swing.JButton();
config_j_proxy = new javax.swing.JButton();
install_j_proxy = new javax.swing.JButton();
jToolBar1.setFloatable(false);
jToolBar1.setRollover(true);
back.setText("<Back");
back.setFocusable(false);
back.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
back.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
back.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
backActionPerformed(evt);
}
});
jToolBar1.add(back);
jLabel1.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel1.setText("Web Servers:");
jLabel2.setText("Apache");
config_apache.setText("Config");
install_apache.setText("Install");
jLabel3.setText("Tomcat");
config_tomcat.setText("Config");
install_tomcat.setText("Install");
jLabel4.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel4.setText("Database Servers:");
jLabel5.setText("MySQL");
install_mysql.setText("Install");
jLabel6.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel6.setText("Remote Access Servers:");
jLabel7.setText("Remote Desktop");
install_xrdp.setText("Install");
jLabel8.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel8.setText("IP Servers:");
jLabel9.setText("DHCP");
jLabel10.setText("DNS");
jLabel11.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel11.setText("EMail Servers:");
jLabel12.setText("POP3");
jLabel13.setText("SMTP");
jLabel14.setText("IMAP");
jLabel15.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
jLabel15.setText("File Sharing/Active Directory Servers:");
jLabel16.setText("Samba");
jLabel17.setText("Proxy");
jLabel18.setText("Firewall");
config_proxy.setText("Config");
install_proxy.setText("Install");
config_dhcp.setText("Config");
install_dhcp.setText("Install");
config_dns.setText("Config");
install_dns.setText("Install");
config_firewall.setText("Config");
install_pop3.setText("Install");
install_smtp.setText("Install");
install_imap.setText("Install");
config_samba.setText("Config");
jLabel21.setText("SSH Server");
install_ssh.setText("Install");
jLabel22.setText("PHP");
install_php.setText("Install");
jLabel19.setText("VPN");
config_vpn.setText("Config");
install_vpn.setText("Install");
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Java Servers"));
jLabel20.setText("DHCP");
jLabel23.setText("DNS");
jLabel24.setText("Proxy");
config_j_dhcp.setText("Config");
install_j_dhcp.setText("Install");
config_j_dns.setText("Config");
install_j_dns.setText("Install");
config_j_proxy.setText("Config");
install_j_proxy.setText("Install");
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel20)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_j_dhcp)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_j_dhcp))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel23)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(config_j_dns)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_j_dns))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel24)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_j_proxy)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_j_proxy)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel20)
.addComponent(config_j_dhcp)
.addComponent(install_j_dhcp))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel23)
.addComponent(config_j_dns)
.addComponent(install_j_dns))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel24)
.addComponent(config_j_proxy)
.addComponent(install_j_proxy))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_apache))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_tomcat)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(install_tomcat)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(install_apache)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel22)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_php))))
.addComponent(jLabel4)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_mysql))
.addComponent(jLabel6)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_xrdp))
.addComponent(jLabel8)
.addComponent(jLabel11)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_pop3))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_smtp))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_imap))
.addComponent(jLabel15)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel16)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_samba))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel17)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_proxy)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_proxy))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel21)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_ssh))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_dhcp)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_dhcp))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_dns)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_dns))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel18)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_firewall))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel19)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(config_vpn)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(install_vpn)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(config_apache)
.addComponent(install_apache)
.addComponent(jLabel22)
.addComponent(install_php))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(config_tomcat)
.addComponent(install_tomcat))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel17)
.addComponent(config_proxy)
.addComponent(install_proxy))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(install_mysql))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(install_xrdp))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel21)
.addComponent(install_ssh))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(config_dhcp)
.addComponent(install_dhcp)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(config_dns)
.addComponent(install_dns)
.addComponent(jLabel10))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel19)
.addComponent(config_vpn)
.addComponent(install_vpn))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel18)
.addComponent(config_firewall)))
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(install_pop3)
.addComponent(jLabel12))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(install_smtp)
.addComponent(jLabel13))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(install_imap)
.addComponent(jLabel14))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel15)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(config_samba)
.addComponent(jLabel16))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jScrollPane1.setViewportView(jPanel1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1))
);
}// </editor-fold>//GEN-END:initComponents
private void backActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backActionPerformed
ConfigApp.This.setPanel(new MainPanel());
}//GEN-LAST:event_backActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton back;
private javax.swing.JButton config_apache;
private javax.swing.JButton config_dhcp;
private javax.swing.JButton config_dns;
private javax.swing.JButton config_firewall;
private javax.swing.JButton config_j_dhcp;
private javax.swing.JButton config_j_dns;
private javax.swing.JButton config_j_proxy;
private javax.swing.JButton config_proxy;
private javax.swing.JButton config_samba;
private javax.swing.JButton config_tomcat;
private javax.swing.JButton config_vpn;
private javax.swing.JButton install_apache;
private javax.swing.JButton install_dhcp;
private javax.swing.JButton install_dns;
private javax.swing.JButton install_imap;
private javax.swing.JButton install_j_dhcp;
private javax.swing.JButton install_j_dns;
private javax.swing.JButton install_j_proxy;
private javax.swing.JButton install_mysql;
private javax.swing.JButton install_php;
private javax.swing.JButton install_pop3;
private javax.swing.JButton install_proxy;
private javax.swing.JButton install_smtp;
private javax.swing.JButton install_ssh;
private javax.swing.JButton install_tomcat;
private javax.swing.JButton install_vpn;
private javax.swing.JButton install_xrdp;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JToolBar jToolBar1;
// End of variables declaration//GEN-END:variables
//configButton, installButton, configPanel, name/desc, deb_pkgName, [rpm_pkgName]
private Object servers[][];
private String dpkg[][];
private void initButtons() {
servers = new Object[][] {
{config_apache, install_apache, "ApachePanel", "Apache Web Server", "apache2", "httpd"},
{null, install_php, null, "PHP Scripting Plugin", "php5", "php"},
{config_tomcat, install_tomcat, "TomcatPanel", "Java Web Server", "tomcat7", "tomcat"},
{config_proxy, install_proxy, "ProxyPanel", "Proxy Server", "squid3", "squid"},
{null, install_mysql, "MySQLPanel", "MySQL Database Server", "mysql-server", "mysql-server"},
{null, install_xrdp, "RemoteDesktopPanel", "Remote Desktop Server", "xrdp", "xrdp"},
{null, install_ssh, null, "SSH Server", "openssh-server", "openssh-server"},
{config_dhcp, install_dhcp, "DHCPPanel", "DHCP Server", "isc-dhcp-server", "dhcp"},
{config_dns, install_dns, "DNSPanel", "DNS Server", "bind9", "bind"},
{config_vpn, install_vpn, "VPNServerPanel", "VPN Server", "pptpd", "pptpd"},
{config_firewall, null, "FirewallPanel", null, null},
{null, install_pop3, "Pop3Panel", "POP3 Server", "dovecot-pop3d", "dovecot"},
{null, install_smtp, "SMTPPanel", "SMTP Server", "sendmail", "sendmail"},
{null, install_imap, "IMAPPanel", "IMAP Server", "dovecot-imapd", "dovecot"},
{config_samba, null, "SambaPanel", "Samba Server", null, null},
{config_j_dhcp, install_j_dhcp, "JDHCPPanel", "DHCP Server", "jdhcp", "jdhcp"},
{config_j_dns, install_j_dns, "JDNSPanel", "DNS Server", "jdns", "jdns"},
{config_j_proxy, install_j_proxy, "JProxyPanel", "Proxy Server", "jproxy", "jproxy"},
// {config_asterisk, install_asterisk, "AsteriskPanel", "Asterisk VoIP Server", "asterisk"}
};
for(int a=0;a<servers.length;a++) {
if (servers[a][0] != null) ((JButton)servers[a][0]).addActionListener(this);
if (servers[a][1] != null) ((JButton)servers[a][1]).addActionListener(this);
}
}
private void updateInstallButtons() {
Linux.updateInstalled();
for(int a=0;a<servers.length;a++) {
if (Linux.isInstalled((String)servers[a][4])) {
if (servers[a][0] != null) ((JButton)servers[a][0]).setEnabled(true);
if (servers[a][1] != null) ((JButton)servers[a][1]).setText("Remove");
} else {
if (servers[a][0] != null) ((JButton)servers[a][0]).setEnabled(false);
if (servers[a][1] != null) ((JButton)servers[a][1]).setText("Install");
}
}
}
private void config(String panelName) {
try {
Class cls = Class.forName(panelName);
JPanel panel = (JPanel)cls.newInstance();
ConfigApp.This.setPanel(panel);
} catch (Exception e) {
JFLog.log(e);
}
}
private void install(String pkg, String name) {
ShellProcess.logPrompt = true; //testing
if (Linux.isInstalled(pkg)) {
if (!JF.showConfirm("Warning", "Are you sure you want to remove '" + name + "'?")) return;
Linux.removePackage(pkg, name);
} else {
if (!JF.showConfirm("Warning", "Are you sure you want to install '" + name + "'?")) return;
Linux.installPackage(pkg, name);
}
ShellProcess.logPrompt = false;
updateInstallButtons();
}
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
for(int a=0;a<servers.length;a++) {
if (servers[a][0] == button) {
config((String)servers[a][2]);
return;
}
if (servers[a][1] == button) {
install((String)servers[a][4], (String)servers[a][3]);
return;
}
}
}
}